Show
Ignore:
Timestamp:
09/17/07 18:48:54 (16 months ago)
Author:
simon
Message:

Added viewing of drafts.
Added a list of drafts to the info-block.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • bitstructures/trunk/substructure/models.py

    r2 r6  
    77    >>> test1.id = 1 
    88    >>> test1.slug = 'testentry1' 
    9     >>> bool(test1.date) 
     9    >>> test1.is_published() 
    1010    False 
    11     >>> bool(test1.is_public) 
    12     False 
     11    >>> test1.is_draft() 
     12    True 
    1313    >>> test1.get_absolute_url() 
    14     '/testentry1' 
     14    '/drafts/testentry1' 
    1515    >>> test2 = Entry() 
    1616    >>> test2.id = 2 
    1717    >>> test2.slug = 'testentry2' 
    18     >>> test2.date = datetime(2001, 2, 3) 
    19     >>> bool(test2.date) 
     18    >>> test2.date_published = datetime(2001, 2, 3) 
     19    >>> test2.is_published() 
    2020    True 
    21     >>> bool(test2.is_public) 
     21    >>> test2.is_draft() 
    2222    False 
    2323    >>> test2.get_absolute_url() 
     
    2727    slug = models.SlugField(unique=True, blank=False) 
    2828    title = models.CharField(maxlength=200, blank=False) 
    29     date = models.DateTimeField(null=True, blank=True) 
    30     is_public = models.BooleanField() 
     29    date_published = models.DateTimeField(null=True, blank=True) 
    3130    text = models.TextField(blank=False) 
    3231 
     
    3433        return self.title 
    3534 
     35    def is_published(self): 
     36        return bool(self.date_published) 
     37 
     38    def is_draft(self): 
     39        return not self.is_published() 
     40 
    3641    def get_absolute_url(self): 
    37         if self.date: 
    38             year = self.date.year 
    39             month = self.date.month 
     42        if self.is_published(): 
     43            year = self.date_published.year 
     44            month = self.date_published.month 
    4045            return '/%04d/%02d/%s' % (year, month, self.slug) 
    4146        else: 
    42             return '/%s' % (self.slug) 
     47            return '/drafts/%s' % (self.slug) 
    4348 
    4449    class Admin: 
    4550        fields = ( 
    46             (None, {'fields': ('title', 'slug', 'date', 'is_public')}), 
     51            (None, {'fields': ('title', 'slug', 'date_published')}), 
    4752            (None, {'fields': ('text',), 'classes': 'monospace'}) 
    4853        ) 
    49         list_display = ('title', 'slug', 'date', 'is_public', 'get_absolute_url') 
    50         ordering = ['-date'] 
     54        list_display = ('title', 'get_absolute_url', 'date_published') 
     55        ordering = ['-date_published']