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