--- a/qrurls/models.py Mon Jul 15 03:02:49 2013 +0300
+++ b/qrurls/models.py Mon Jul 15 03:13:09 2013 +0300
@@ -28,12 +28,20 @@
def get_absolute_url (self) :
return reverse('shorturl', args=[self.shorturl])
- def get_item (self, now=None) :
+ def active_item(self, now=None) :
+ """Currently published URLItem."""
if now is None :
now = timezone.now()
return URLItem.objects.filter(shorturl=self, published__lt=now).order_by('-published')[0]
+ def upcoming_item(self, now=None) :
+ """Following published URLItem."""
+ 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
@@ -50,22 +58,26 @@
def get_absolute_url (self) :
return self.url
- def published_state (self) :
+ def published_age (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)
+
+ return days, "{h}h {m}m {s}s".format(h=h, m=m, s=s)
+
+ def published_state (self) :
+ now = timezone.now()
+
+ publish_date = self.published.strftime("%Y-%m-%d")
+
+ days, age = self.published_age()
if self.published < now and days :
return "Published ({date})".format(date=publish_date)
@@ -77,4 +89,10 @@
return "Scheduled ({age})".format(age=age)
def __unicode__ (self) :
- return self.url
+ days, age = self.published_age()
+
+ return u"[{days}d {age}] {url}".format(
+ url=self.get_absolute_url(),
+ days=days,
+ age=age,
+ )