From c0ce9798b8cb154c7fd1d4a1a9c6ab52c197be5c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20Perrin?= Date: Tue, 1 Nov 2016 01:37:51 +0000 Subject: [PATCH] Add a simple display counter --- quotes/admin.py | 21 ++++++++------ quotes/migrations/0003_auto_20161101_0132.py | 30 ++++++++++++++++++++ quotes/models.py | 5 ++++ quotes/views.py | 3 ++ 4 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 quotes/migrations/0003_auto_20161101_0132.py diff --git a/quotes/admin.py b/quotes/admin.py index 4e225dc..73d0016 100644 --- a/quotes/admin.py +++ b/quotes/admin.py @@ -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 index 0000000..4c4aa4f --- /dev/null +++ b/quotes/migrations/0003_auto_20161101_0132.py @@ -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), + ), + ] diff --git a/quotes/models.py b/quotes/models.py index 83bf62b..da6f93b 100644 --- a/quotes/models.py +++ b/quotes/models.py @@ -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 diff --git a/quotes/views.py b/quotes/views.py index 9bed533..4e66378 100644 --- a/quotes/views.py +++ b/quotes/views.py @@ -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) -- 2.43.0