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: |