diff -r 8c15ae21309f -r e821a59bf3a7 qrurls/models.py --- 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