qrurls/models.py
changeset 27 ffcffe3024f1
parent 23 f9eadb627bb4
child 28 d1733c82c278
equal deleted inserted replaced
26:0c933b568b55 27:ffcffe3024f1
       
     1 import datetime
       
     2 
     1 from django.db import models
     3 from django.db import models
     2 from django.core.urlresolvers import reverse
     4 from django.core.urlresolvers import reverse
     3 import django.utils.http
     5 import django.utils.http
     4 from django.contrib.sites.models import get_current_site
     6 from django.contrib.sites.models import get_current_site
     5 from django.utils import timezone
     7 from django.utils import timezone
     6 
     8 
     7 QRCODE_API = 'https://chart.googleapis.com/chart?cht=qr&chs={width}x{height}&chl={url}&chld=H'
     9 QRCODE_API = 'https://chart.googleapis.com/chart?cht=qr&chs={width}x{height}&chl={url}&chld=H'
     8 
    10 
     9 class URL(models.Model):
    11 class URL(models.Model):
    10     shorturl = models.SlugField(unique=True)
    12     shorturl = models.SlugField(unique=True)
       
    13     publishing_schedule = models.TimeField(default=datetime.time(),
       
    14             help_text="Default time to publish new URLItems")
    11 
    15 
    12     class Meta:
    16     class Meta:
    13         verbose_name = u"URL Feed"
    17         verbose_name = u"URL Feed"
    14         verbose_name_plural = u"URL Feeds"
    18         verbose_name_plural = u"URL Feeds"
    15 
    19 
    36         try :
    40         try :
    37             return URLItem.objects.filter(shorturl=self, published__lt=now).order_by('-published')[0]
    41             return URLItem.objects.filter(shorturl=self, published__lt=now).order_by('-published')[0]
    38         except IndexError :
    42         except IndexError :
    39             return None
    43             return None
    40 
    44 
    41     def upcoming_item(self, now=None) :
    45     def upcoming_item (self, now=None) :
    42         """Following published URLItem."""
    46         """Following published URLItem."""
    43         if now is None :
    47         if now is None :
    44             now = timezone.now()
    48             now = timezone.now()
    45 
    49 
    46         try :
    50         try :
    47             return URLItem.objects.filter(shorturl=self, published__gt=now).order_by('published')[0]
    51             return URLItem.objects.filter(shorturl=self, published__gt=now).order_by('published')[0]
       
    52         except IndexError :
       
    53             return None
       
    54 
       
    55     def last_item (self) :
       
    56         """The last URLItem available."""
       
    57 
       
    58         try :
       
    59             return URLItem.objects.filter(shorturl=self).order_by('-published')[0]
    48         except IndexError :
    60         except IndexError :
    49             return None
    61             return None
    50 
    62 
    51     def __unicode__ (self) :
    63     def __unicode__ (self) :
    52         return self.shorturl
    64         return self.shorturl