Author: floguy
Date: Mon Sep 22 01:27:16 2008
New Revision: 33
Modified:
trunk/things/fields.py
trunk/things/options.py
Log:
Added support for a wider variety of display types, and fixed a bug where
the verbose name was being used in URLs.
Modified: trunk/things/fields.py
==============================================================================
--- trunk/things/fields.py (original)
+++ trunk/things/fields.py Mon Sep 22 01:27:16 2008
@@ -20,12 +20,17 @@
class OrderField(BaseField):
def __init__(self, verbose_name_asc=None, verbose_name_desc=None,
- url_asc=None, url_desc=None, field_url=None):
+ url_asc=None, url_desc=None, field_url=None,
+ custom_aggregate_function=None,
default_sort_descending=True,
+ reverse=False):
self._verbose_name_asc = verbose_name_asc
self._verbose_name_desc = verbose_name_desc
self._url_asc = url_asc
self._url_desc = url_desc
self._field_url = field_url
+ self.reverse = reverse
+ self.default_sort_descending = default_sort_descending
+ self.custom_aggregate_function = custom_aggregate_function
def _get_verbose_name_asc(self):
if self._verbose_name_asc:
@@ -44,8 +49,6 @@
def _get_url_asc(self):
if self._url_asc:
return self._url_asc
- elif self._verbose_name_asc:
- return defaultfilters.slugify(self._verbose_name_asc)
else:
return 'ascending'
url_asc = property(_get_url_asc, create_setter('_url_asc'))
@@ -53,8 +56,6 @@
def _get_url_desc(self):
if self._url_desc:
return self._url_desc
- elif self._verbose_name_desc:
- return defaultfilters.slugify(self._verbose_name_desc)
else:
return 'descending'
url_desc = property(_get_url_desc, create_setter('_url_desc'))
Modified: trunk/things/options.py
==============================================================================
--- trunk/things/options.py (original)
+++ trunk/things/options.py Mon Sep 22 01:27:16 2008
@@ -59,7 +59,15 @@
pre = ''
if descending == True:
pre = '-'
- if isinstance(field, AggregateBase):
+ # Make this code more pretty when you get time. Redundancy
abound.
+ if field.reverse == True:
+ if pre == '':
+ pre = '-'
+ else:
+ pre = ''
+ if field.custom_aggregate_function is not None:
+ pass # TODO: Don't forget to implement me!
+ elif isinstance(field, AggregateBase):
items = items.order_by('%s%s' % (pre,
field.get_aggregate_name()))
else:
items = items.order_by('%s%s' % (pre, field.field_name))
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pinax-updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/pinax-updates?hl=en
-~----------~----~----~----~------~----~------~--~---