Worst tg hack ever, but unless I am the only one using formencode's
DateConverter with tg's pagination, then someone else may need this. It
also includes some changes for using a jumpmenu with pagination but that
is different problem:
Index: turbogears/paginate.py
===================================================================
--- turbogears/paginate.py (revision 2346)
+++ turbogears/paginate.py (working copy)
@@ -10,6 +10,7 @@
import turbogears
from turbogears.decorator import weak_signature_decorator
from turbogears.view import variable_providers
+import datetime
log = logging.getLogger("turbogears.paginate")
@@ -139,7 +140,7 @@
self.href_prev = None
self.href_first = None
- def get_href(self, page, order=None, reverse_order=None):
+ def get_href(self, page, order=None, reverse_order=None, limit=None):
if order:
if order == self.order:
if self.reversed:
@@ -156,8 +157,17 @@
else:
order = self.order
reversed = self.reversed
+ if not limit:
+ limit = self.limit
+
+ # Convert datetime.date instances to strings so they work with
+ # Formencode's DateConverter
+ for name in self.input_values:
+ if type(self.input_values[name]) is datetime.date:
+ self.input_values[name] =
self.input_values[name].strftime('%m/%d/%Y')
- self.input_values.update(dict(tg_paginate_no=page,
+ self.input_values.update(dict(tg_paginate_limit=limit,
+ tg_paginate_no=page,
tg_paginate_order=order,
tg_paginate_reversed=reversed))
It was easier for me to hardcode my date format in paginate.py than to
rewrite the formencode DateConverter to use other formats...
Aaron Bostick wrote:
> Does anyone have a patch for formencode that makes DateConverter honor
> date formats other than mm/dd/yyyy and dd/mm/yyyy. From viewing the
> source code, it appears those are the only two date formats
> DateConverter will use regardless of what your format keyword is.
>
> The reason I need ISO format, yyyy-mm-dd, for DateConverter is that when
> using dates to generate a resultset to populate a PaginateDataGrid, the
> query string for the links use iso format for the dates. So basically,
> the pagination code is generating query strings like this:
>
> ?sdate=2006-09-01&tg_paginate_limit=20&tg_paginate_no=3&edate=2007-09-01&tg_paginate_order=
>
> which my schema chokes on because DateConverter thinks it is an invalid
> date!
>
> So I either need to make DateConverter work with paginate's format, or
> make paginate use DateConverter's format in its query strings!
>
> Anyone found a workaround for this???
>
> Regards,
> Aaron
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" 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/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---