]> gitweb.fperrin.net Git - djsite.git/commitdiff
Add a simple display counter
authorFrédéric Perrin <frederic.perrin@resel.fr>
Tue, 1 Nov 2016 01:37:51 +0000 (01:37 +0000)
committerFrédéric Perrin <frederic.perrin@resel.fr>
Tue, 1 Nov 2016 01:37:51 +0000 (01:37 +0000)
quotes/admin.py
quotes/migrations/0003_auto_20161101_0132.py [new file with mode: 0644]
quotes/models.py
quotes/views.py

index 4e225dc04af88764bac5b4283c33bcc5cc44b870..73d0016cfa060d2ab90c8f9d633df3e78584b92b 100644 (file)
@@ -5,21 +5,24 @@ from .models import AuthorTag, WorkTag, QuoteTag, Author, Work, Quote
 
 @admin.register(Author)
 class AuthorAdmin(admin.ModelAdmin):
-    fields = ('name', 'birth_date', 'death_date', 'tags',
-              'notes', 'pvt_notes', 'creation_date', 'last_modification')
-    readonly_fields = ('creation_date', 'last_modification')
+    fields = ('name', 'birth_date', 'death_date',
+              'tags', 'notes', 'pvt_notes',
+              'creation_date', 'last_modification', 'nb_display')
+    readonly_fields = ('creation_date', 'last_modification', 'nb_display')
 
 @admin.register(Work)
 class WorkAdmin(admin.ModelAdmin):
-    fields = ('name', 'author', 'date', 'tags',
-              'notes', 'pvt_notes', 'creation_date', 'last_modification')
-    readonly_fields = ('creation_date', 'last_modification')
+    fields = ('name', 'author', 'date',
+              'tags', 'notes', 'pvt_notes',
+              'creation_date', 'last_modification', 'nb_display')
+    readonly_fields = ('creation_date', 'last_modification', 'nb_display')
 
 @admin.register(Quote)
 class QuoteAdmin(admin.ModelAdmin):
-    fields = ('text', 'work', 'tags',
-              'notes', 'pvt_notes', 'creation_date', 'last_modification')
-    readonly_fields = ('creation_date', 'last_modification')
+    fields = ('text', 'work',
+              'tags', 'notes', 'pvt_notes',
+              'creation_date', 'last_modification', 'nb_display')
+    readonly_fields = ('creation_date', 'last_modification', 'nb_display')
 
 admin.site.register(AuthorTag)
 admin.site.register(WorkTag)
diff --git a/quotes/migrations/0003_auto_20161101_0132.py b/quotes/migrations/0003_auto_20161101_0132.py
new file mode 100644 (file)
index 0000000..4c4aa4f
--- /dev/null
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.2 on 2016-11-01 01:32
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('quotes', '0002_auto_20161031_2318'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='author',
+            name='nb_display',
+            field=models.BigIntegerField(default=0),
+        ),
+        migrations.AddField(
+            model_name='quote',
+            name='nb_display',
+            field=models.BigIntegerField(default=0),
+        ),
+        migrations.AddField(
+            model_name='work',
+            name='nb_display',
+            field=models.BigIntegerField(default=0),
+        ),
+    ]
index 83bf62b49696e90ce8b758e378d74ebd6a431508..da6f93bf9bc414f6108cec7ee8772d8dc370f6b3 100644 (file)
@@ -30,6 +30,11 @@ class CommonData(models.Model):
                           "Notes about the entry; not displayed on \
                           the public interface")
 
+    nb_display = models.BigIntegerField(default=0)
+    def incr_display(self):
+        self.nb_display = models.F('nb_display') + 1
+        self.save()
+
     class Meta(object):
         abstract = True
 
index 9bed533b045f73e0385f32c934e5c780d3cc2b70..4e66378bc6ea8cc8ad5acf7937afae14c5002350 100644 (file)
@@ -7,6 +7,7 @@ from .models import Author, Work, Quote, QuoteTag
 # Create your views here.
 def onequote(request, quote_id):
     q = Quote.objects.get(id=quote_id)
+    q.incr_display()
     context = { 'quote' : q }
     return render(request, 'quotes/onequote.html', context)
 
@@ -21,11 +22,13 @@ def tags(request, tag_id):
 
 def author(request, author_id):
     author = Author.objects.get(id=author_id)
+    author.incr_display()
     context = { 'author' : author }
     return render(request, 'quotes/author.html', context)
 
 def work(request, work_id):
     work = Work.objects.get(id=work_id)
+    work.incr_display()
     context = { 'work': work }
     return render(request, 'quotes/work.html', context)