Mercurial > p > roundup > code
diff roundup/cgi/templating.py @ 5192:302e3a1a7190
Three sets of changes:
1) Make sure that a user doesn't create a query with the same name
as an existing query that the user owns.
2) When submitting a new named query, display the name of the query
on the index page.
3) Allow optional arguments to indexargs_url by setting their value
to None. This will show the argument only if there is a valid
value.
To match these, changed the template for all search templates so if an
error is thrown due to #1 the user stays on the search page so they
can fix the issue.
Note that I did not add automated tests for these because I couldn't
find existing tests for these code paths that I could adapt. I don't
understand how the existing Action tests work and there is no doc for
them.
| author | rouilj@uland |
|---|---|
| date | Wed, 08 Mar 2017 22:04:15 -0500 |
| parents | fe52cab8f5b5 |
| children | cfd6d1f2caa1 |
line wrap: on
line diff
--- a/roundup/cgi/templating.py Sat Feb 25 22:21:15 2017 -0500 +++ b/roundup/cgi/templating.py Wed Mar 08 22:04:15 2017 -0500 @@ -2780,12 +2780,21 @@ def indexargs_url(self, url, args): """ Embed the current index args in a URL + + If the value of an arg (in args dict) is None, + the argument is excluded from the url. If you want + an empty value use an empty string '' as the value. + Use this in templates to conditionally + include an arg if it is set to a value. E.G. + {..., '@queryname': request.dispname or None, ...} + will include @queryname in the url if there is a + dispname otherwise the parameter will be omitted + from the url. """ q = urllib.quote sc = self.special_char l = ['%s=%s'%(k,isinstance(v, basestring) and q(v) or v) - for k,v in args.items()] - + for k,v in args.items() if v != None ] # pull out the special values (prefixed by @ or :) specials = {} for key in args.keys():
