diff --git a/roms/migrations/0009_rom_download_count.py b/roms/migrations/0009_rom_download_count.py new file mode 100644 index 0000000..0df8c20 --- /dev/null +++ b/roms/migrations/0009_rom_download_count.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.5 on 2017-05-25 11:02 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('roms', '0008_auto_20170525_1256'), + ] + + operations = [ + migrations.AddField( + model_name='rom', + name='download_count', + field=models.IntegerField(default=0), + preserve_default=False, + ), + ] diff --git a/roms/models.py b/roms/models.py index 6699f12..1fcb6f5 100644 --- a/roms/models.py +++ b/roms/models.py @@ -33,6 +33,7 @@ class Rom(models.Model): approved = models.BooleanField("approved", default=False) tags = TaggableManager(blank = True) user = models.ForeignKey(User, blank=True, null=True) + download_count = models.IntegerField() creation_time = models.DateTimeField("creation time", auto_now_add = True) edit_time = models.DateTimeField("edit time", auto_now = True) @@ -51,6 +52,7 @@ class Rom(models.Model): 'tags' : self.tag_list(), 'low_binary' : self.low_binary.url, 'high_binary' : self.high_binary.url, + 'download_count' : self.download_count, 'creation_time' : self.creation_time, 'edit_time' : self.edit_time } diff --git a/roms/templates/roms/details.html b/roms/templates/roms/details.html index c06933f..7dc32ed 100644 --- a/roms/templates/roms/details.html +++ b/roms/templates/roms/details.html @@ -31,6 +31,7 @@ {% endif %} am {{rom.creation_time}}. Zuletzt geupdated am {{rom.edit_time}}
+ Bisher wurde dieses Rom {{rom.download_count}} heruntergeladen.
{% for tag in rom.tags.all %} {{tag.name}} diff --git a/roms/views.py b/roms/views.py index 321bbd5..0f6d654 100644 --- a/roms/views.py +++ b/roms/views.py @@ -21,7 +21,7 @@ class RomList(ListView): def get_queryset(self): tag = self.kwargs.get('tag', None) - queryset = Rom.objects.all().filter(approved = True) + queryset = Rom.objects.all().filter(approved = True).order_by('-download_count') if tag != None: queryset = queryset.filter(tags__slug = tag) @@ -90,7 +90,7 @@ class RomListJson(ListView): def get_queryset(self): tag = self.kwargs.get('tag', None) - queryset = Rom.objects.all().filter(approved = True) + queryset = Rom.objects.all().filter(approved = True).order_by('-download_count') if tag != None: queryset = queryset.filter(tags__slug = tag) @@ -127,5 +127,8 @@ class RomDetailViewJson(DetailView): def render_to_response(self, context, **response_kwargs): rom = self.get_object() + rom.download_count += 1 + rom.save() + response_kwargs['safe'] = False return JsonResponse(rom.to_json(), **response_kwargs)