Added download counter to store

This commit is contained in:
Sebastian 2017-05-25 13:11:05 +02:00
parent 01cb0ed7da
commit 10cd04cbb0
4 changed files with 29 additions and 2 deletions

View File

@ -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,
),
]

View File

@ -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
}

View File

@ -31,6 +31,7 @@
{% endif %}
am {{rom.creation_time}}.
Zuletzt geupdated am {{rom.edit_time}}<br/>
Bisher wurde dieses Rom {{rom.download_count}} heruntergeladen.</br>
{% for tag in rom.tags.all %}
<a href="{% url 'romlist' tag=tag.slug %}"><span class="tag is-medium categorie is-primary">{{tag.name}}</span></a>

View File

@ -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)