qrurls/models.py
changeset 6 e821a59bf3a7
parent 4 d56f48f6c94b
child 7 8202196630d3
--- a/qrurls/models.py	Mon Jul 15 02:43:35 2013 +0300
+++ b/qrurls/models.py	Mon Jul 15 03:02:49 2013 +0300
@@ -2,6 +2,7 @@
 from django.core.urlresolvers import reverse
 import django.utils.http
 from django.contrib.sites.models import get_current_site
+from django.utils import timezone
 
 QRCODE_API = 'https://chart.googleapis.com/chart?cht=qr&chs={width}x{height}&chl={url}'
 
@@ -27,6 +28,12 @@
     def get_absolute_url (self) :
         return reverse('shorturl', args=[self.shorturl])
 
+    def get_item (self, now=None) :
+        if now is None :
+            now = timezone.now()
+
+        return URLItem.objects.filter(shorturl=self, published__lt=now).order_by('-published')[0]
+
     def __unicode__ (self) :
         return self.shorturl
 
@@ -43,5 +50,31 @@
     def get_absolute_url (self) :
         return self.url
     
+    def published_state (self) :
+        now = timezone.now()
+
+        publish_date = self.published.strftime("%Y-%m-%d")
+
+        if now > self.published:
+            td = now - self.published
+        else :
+            td = self.published - now
+
+        print now, self.published, td
+
+        days, seconds = td.days, td.seconds
+        m, s = divmod(seconds, 60)
+        h, m = divmod(m, 60)
+        age = "{h}h {m}m {s}s".format(h=h, m=m, s=s)
+
+        if self.published < now and days :
+            return "Published ({date})".format(date=publish_date)
+        elif self.published < now :
+            return "Published ({age})".format(age=age)
+        elif days :
+            return "Scheduled ({when})".format(when=publish_date)
+        else :
+            return "Scheduled ({age})".format(age=age)
+
     def __unicode__ (self) :
         return self.url