]> gitweb.fperrin.net Git - djsite.git/blobdiff - quotes/models.py
Fix display when quotes contain unicode
[djsite.git] / quotes / models.py
index e23fde52a0a1475496212a1bc421534ce5296028..0d7fe333001e4ee77f58216f1ed102cc9c903343 100644 (file)
@@ -1,4 +1,6 @@
 from django.db import models
+from django.urls import reverse
+
 from localmodels import HTMLField
 
 # Create your models here.
@@ -13,7 +15,9 @@ class BaseTag(models.Model):
 
 class AuthorTag(BaseTag): pass
 class WorkTag(BaseTag): pass
-class QuoteTag(BaseTag): pass
+class QuoteTag(BaseTag):
+    def get_absolute_url(self):
+        return reverse('quotes:tags', args=[str(self.id)])
 
 class CommonData(models.Model):
     creation_date = models.DateTimeField(auto_now_add=True)
@@ -26,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
 
@@ -43,9 +52,12 @@ class Author(CommonData):
                                   help_text="Date of death (leave blank \
                                   if still alive!)")
 
-    def __str__(self):
+    def __unicode__(self):
         return self.name
 
+    def get_absolute_url(self):
+        return reverse('quotes:author', args=[str(self.id)])
+
 # class DatePrecision(models.CharField):
 #     DAY = "D"
 #     MONTH = "M"
@@ -76,13 +88,19 @@ class Work(CommonData):
     tags = models.ManyToManyField(WorkTag, blank=True,
                                   help_text='Not implemented yet')
 
-    def __str__(self):
+    def __unicode__(self):
         return "%s: %s (%s)" % (self.author.name, self.name, self.date)
 
+    def get_absolute_url(self):
+        return reverse('quotes:work', args=[str(self.id)])
+
 class Quote(CommonData):
     text = HTMLField()
     tags = models.ManyToManyField(QuoteTag, blank=True)
     work = models.ForeignKey(Work)
 
-    def __str__(self):
+    def __unicode__(self):
         return self.work.author.name + ": " + self.text
+
+    def get_absolute_url(self):
+        return reverse('quotes:onequote', args=[str(self.id)])