web/lib/django/contrib/databrowse/datastructures.py
changeset 29 cc9b7e14412b
parent 0 0d40e90630ef
equal deleted inserted replaced
28:b758351d191f 29:cc9b7e14412b
     2 These classes are light wrappers around Django's database API that provide
     2 These classes are light wrappers around Django's database API that provide
     3 convenience functionality and permalink functions for the databrowse app.
     3 convenience functionality and permalink functions for the databrowse app.
     4 """
     4 """
     5 
     5 
     6 from django.db import models
     6 from django.db import models
     7 from django.utils import dateformat
     7 from django.utils import formats
     8 from django.utils.text import capfirst
     8 from django.utils.text import capfirst
     9 from django.utils.translation import get_date_formats
       
    10 from django.utils.encoding import smart_unicode, smart_str, iri_to_uri
     9 from django.utils.encoding import smart_unicode, smart_str, iri_to_uri
    11 from django.utils.safestring import mark_safe
    10 from django.utils.safestring import mark_safe
    12 from django.db.models.query import QuerySet
    11 from django.db.models.query import QuerySet
    13 
    12 
    14 EMPTY_VALUE = '(None)'
    13 EMPTY_VALUE = '(None)'
   154                 return list(getattr(self.instance.instance, self.field.name).all())
   153                 return list(getattr(self.instance.instance, self.field.name).all())
   155         elif self.field.choices:
   154         elif self.field.choices:
   156             objs = dict(self.field.choices).get(self.raw_value, EMPTY_VALUE)
   155             objs = dict(self.field.choices).get(self.raw_value, EMPTY_VALUE)
   157         elif isinstance(self.field, models.DateField) or isinstance(self.field, models.TimeField):
   156         elif isinstance(self.field, models.DateField) or isinstance(self.field, models.TimeField):
   158             if self.raw_value:
   157             if self.raw_value:
   159                 date_format, datetime_format, time_format = get_date_formats()
       
   160                 if isinstance(self.field, models.DateTimeField):
   158                 if isinstance(self.field, models.DateTimeField):
   161                     objs = capfirst(dateformat.format(self.raw_value, datetime_format))
   159                     objs = capfirst(formats.date_format(self.raw_value, 'DATETIME_FORMAT'))
   162                 elif isinstance(self.field, models.TimeField):
   160                 elif isinstance(self.field, models.TimeField):
   163                     objs = capfirst(dateformat.time_format(self.raw_value, time_format))
   161                     objs = capfirst(formats.time_format(self.raw_value, 'TIME_FORMAT'))
   164                 else:
   162                 else:
   165                     objs = capfirst(dateformat.format(self.raw_value, date_format))
   163                     objs = capfirst(formats.date_format(self.raw_value, 'DATE_FORMAT'))
   166             else:
   164             else:
   167                 objs = EMPTY_VALUE
   165                 objs = EMPTY_VALUE
   168         elif isinstance(self.field, models.BooleanField) or isinstance(self.field, models.NullBooleanField):
   166         elif isinstance(self.field, models.BooleanField) or isinstance(self.field, models.NullBooleanField):
   169             objs = {True: 'Yes', False: 'No', None: 'Unknown'}[self.raw_value]
   167             objs = {True: 'Yes', False: 'No', None: 'Unknown'}[self.raw_value]
   170         else:
   168         else: