fix handling of US dates in all cases
This commit is contained in:
parent
c10f163b93
commit
a2120db10e
|
@ -19,6 +19,14 @@
|
|||
for="*"
|
||||
/>
|
||||
|
||||
<browser:page
|
||||
name="querybuildernumberofresults"
|
||||
class=".searchview.QueryBuilder"
|
||||
permission="zope2.View"
|
||||
attribute="number_of_results"
|
||||
for="*"
|
||||
/>
|
||||
|
||||
<browser:page
|
||||
name="querybuilderjsonconfig"
|
||||
class=".searchview.RegistryConfiguration"
|
||||
|
|
|
@ -406,20 +406,26 @@ class ContentListingView(BrowserView):
|
|||
|
||||
|
||||
class QueryBuilder(plone.app.querystring.querybuilder.QueryBuilder):
|
||||
def _makequery(self, *args, **kwargs):
|
||||
for i, param in enumerate(kwargs.get('query', [])):
|
||||
def __call__(self, query, *args, **kwargs):
|
||||
for i, param in enumerate(query):
|
||||
if param.get('o', '').startswith('plone.app.querystring.operation.date'):
|
||||
date = param.get('v')
|
||||
try:
|
||||
param = dict(param.copy())
|
||||
param['v'] = datetime.datetime.strptime(date, '%d/%m/%Y').strftime('%Y-%m-%d')
|
||||
kwargs.get('query')[i] = param
|
||||
query[i] = param
|
||||
except ValueError:
|
||||
pass
|
||||
results = plone.app.querystring.querybuilder.QueryBuilder._makequery(self, *args, **kwargs)
|
||||
if isinstance(results, ContentListing):
|
||||
return plone.app.querystring.querybuilder.QueryBuilder.__call__(self,
|
||||
query, *args, **kwargs)
|
||||
|
||||
def _makequery(self, query, *args, **kwargs):
|
||||
results = plone.app.querystring.querybuilder.QueryBuilder._makequery(self, query, *args, **kwargs)
|
||||
if isinstance(results, ContentListing) and kwargs.get('limit') != 1:
|
||||
# results may have been padded with None, but ContentListing
|
||||
# doesn't like that.
|
||||
# we do not touch the list in the casse of limit == 1 as it's used
|
||||
# to compute the number of results, and we want the correct number.
|
||||
results._basesequence = [x for x in results._basesequence if x is not None]
|
||||
return results
|
||||
|
||||
|
|
Reference in New Issue