class Post(models.Model): title = models.CharField(max_length=100, db_index=True) category = models.ForeignKey(Category) slug = models.SlugField(max_length=100, unique_for_date='date') date = models.DateTimeField(default=timezone.now, db_index=True) date_url = models.DateField(db_index=True, editable=False) image = AssetForeignKey('assets.Image', null=True, blank=True) teaser = models.TextField(blank=True) content = models.TextField() published = models.BooleanField( default=True, db_index=True, help_text='Post will be hidden unless this option is selected') class Meta: get_latest_by = 'date' ordering = ('-date', ) def __str__(self): return self.title @models.permalink def get_absolute_url(self): return ('news:post-detail', (), { 'year': self.date_url.year, 'month': str(self.date_url.month).zfill(2), 'day': str(self.date_url.day).zfill(2), 'slug': self.slug, }) def save(self, *args, **kwargs): self.date_url = self.date.date() super(Post, self).save(*args, **kwargs)
class Page(MPTTModel): url = models.CharField( 'URL', max_length=100, unique=True, help_text= "Example: '/about/contact/'. Make sure to have leading and trailing slashes.", validators=[url_validator, slash_validator]) title = models.CharField(max_length=200) parent = TreeForeignKey('self', null=True, blank=True, related_name='children', on_delete=models.CASCADE) show_in_navigation = models.BooleanField(default=True, db_index=True) hero_image = AssetForeignKey('assets.Image', blank=True, null=True, on_delete=models.SET_NULL) content = models.TextField(blank=True) template_name = models.CharField(max_length=100, blank=True) published = models.BooleanField(default=True, db_index=True) login_required = models.BooleanField(default=False, db_index=True) objects = TreeManager() def __str__(self): return '%s -- %s' % (self.url, self.title) def get_absolute_url(self): # Handle script prefix manually because we bypass reverse() return iri_to_uri(get_script_prefix().rstrip('/') + self.url)
class SpecialEvent(models.Model): title = models.CharField(max_length=100, db_index=True) slug = models.SlugField(max_length=100, unique=True) image = AssetForeignKey('assets.Image', null=True, blank=True) summary = models.CharField(max_length=100, help_text='A short sentence description of the event') description = models.TextField(help_text='All of the event details we have') start = models.DateTimeField(help_text='Start time/date.', db_index=True) start_date = models.DateField(editable=False, db_index=True) end = models.DateTimeField(help_text='End time/date.') end_date = models.DateField(editable=False, db_index=True) published = models.BooleanField(default=True, db_index=True) class Meta: ordering = ('start',) def __str__(self): return self.title def save(self, *args, **kwargs): # Used for easy queryset filtering self.start_date = self.start.date() self.end_date = self.end.date() super(SpecialEvent, self).save(*args, **kwargs) @models.permalink def get_absolute_url(self): return ('events:specialevent-detail', (), { 'slug': self.slug, }) def clean(self): if self.start > self.end: raise ValidationError('Start date must be earlier than end date.')
class QuickLink(models.Model): image_file = AssetForeignKey('assets.Image') name = models.CharField(max_length=50) heading = models.CharField(max_length=20) body = models.TextField(max_length=250) button_text = models.CharField(max_length=20, default=u'View details »') link = models.CharField(max_length=300) def __str__(self): # __unicode__ on Python 2 return self.name def __unicode__(self): # __unicode__ on Python 2 return unicode(self.name)
class Carousel(models.Model): image_file = AssetForeignKey('assets.Image') image_link = models.CharField(max_length=300, blank=True) name = models.CharField(max_length=50) heading = models.CharField(max_length=50, blank=True) body = models.TextField(max_length=150, blank=True) button_text = models.CharField(max_length=20, blank=True) link = models.CharField(max_length=300, blank=True) def __str__(self): # __unicode__ on Python 2 return self.name def __unicode__(self): # __unicode__ on Python 2 return unicode(self.name)
class Featurette(models.Model): image_file = AssetForeignKey('assets.Image') name = models.CharField(max_length=50) heading1 = models.CharField(max_length=50) heading_link = models.CharField(max_length=300, blank=True) heading2 = models.CharField(max_length=50, blank=True) body = models.TextField(max_length=150) button_text = models.CharField(max_length=20, blank=True, default=u'View details »') link = models.CharField(max_length=300, blank=True) def __str__(self): # __unicode__ on Python 2 return self.name def __unicode__(self): # __unicode__ on Python 2 return unicode(self.name)
class Post(models.Model): title = models.CharField(max_length=100, db_index=True) category = models.ForeignKey(Category, on_delete=models.CASCADE) slug = models.SlugField(max_length=100, unique_for_date='date') date = models.DateTimeField(default=timezone.now, db_index=True) date_url = models.DateField(db_index=True, editable=False) image = AssetForeignKey('assets.Image', null=True, blank=True, on_delete=models.CASCADE) teaser = models.TextField(blank=True) content = models.TextField() published = models.BooleanField( default=True, db_index=True, help_text='Post will be hidden unless this option is selected') url = models.URLField(blank=True) class Meta: get_latest_by = 'date' ordering = ('-date', ) def __str__(self): return self.title def get_absolute_url(self): """ Get absolute url sometimes we assign external url to the post. """ url = '/' if self.url: url = self.url else: params = { 'year': self.date_url.year, 'month': str(self.date_url.month).zfill(2), 'day': str(self.date_url.day).zfill(2), 'slug': self.slug, } url = reverse('blanc_basic_news:post-detail', kwargs=params) return url def save(self, *args, **kwargs): self.date_url = self.date.date() super(Post, self).save(*args, **kwargs)