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

Roundup Issue Tracker: http://roundup-tracker.org/