root/branches/pluggable-contents/common/models.py

Revision 68, 1.6 kB (checked in by nobu, 8 months ago)

pluggable-contents:

Line 
1 # vim: encoding=utf-8 :
2
3 from datetime import datetime
4
5 from django.core import validators
6 from django.db import models
7 from django.utils.translation import ugettext_lazy as _
8
9
10 class FlatPage(models.Model):
11     """
12     flat pages.
13     """
14     url = models.CharField(_(u'URL'), max_length=100, validator_list=[validators.isAlphaNumericURL], unique=True,
15         help_text=_(u"Example: '/about/contact/'. Make sure to have leading and trailing slashes."))
16     title = models.CharField(_(u'title'), max_length=100, default=None)
17     content = models.TextField(_(u'content'))
18     template_name = models.CharField(_(u'template name'), max_length=70, blank=True,
19         help_text=_(u"Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."))
20     created_at = models.DateTimeField(_(u'created at'), editable=False, default=datetime.now)
21     updated_at = models.DateTimeField(_(u'updated at'), editable=False)
22     navigation_enabled = models.BooleanField(_(u'navigation enabled'), default=True)
23     is_published = models.BooleanField(_(u'is published'), default=True)
24     is_active = models.BooleanField(_(u'is active'), default=True)
25
26     class Meta:
27         ordering = ('title',)
28         verbose_name = _(u'flat page')
29         verbose_name_plural = _(u'flat pages')
30
31     def __unicode__(self):
32         return self.title
33
34     def get_absolute_url(self):
35         return self.url
36
37     def save(self):
38         self.updated_at = datetime.now()
39         super(FlatPage, self).save()
40
41     def delete(self):
42         self.is_active = False
43         self.save()
44
45
46 import common.admin
Note: See TracBrowser for help on using the browser.