Fix django filter for handling multiple parameters
authorMagnus Hagander <magnus@hagander.net>
Tue, 15 Jul 2025 10:24:04 +0000 (12:24 +0200)
committerMagnus Hagander <magnus@hagander.net>
Tue, 15 Jul 2025 10:24:04 +0000 (12:24 +0200)
Django template filters can't take more than one parameter, so we have
to split it on comma ourselves. This filter was never used with more
than one parameter, even though it claimed to support it.

postgresqleu/confreg/templatetags/dictutil.py

index 9f3e5c7dd11f0b6f4badb20ce30e6b385b9973fb..9e30585217b7c6d259e43bdf18666c1ea5a6ccbf 100644 (file)
@@ -13,8 +13,13 @@ def arrayelement(value, key):
     return value[key]
 
 
+# Use comma to select a different separator
 @register.filter
-def join_dictkeys(list_to_join, attrname, separator=', '):
+def join_dictkeys(list_to_join, attrname):
     if not list_to_join:
         return ''
+    if ',' in attrname:
+        attrname, separator = attrname.split(',', 1)
+    else:
+        separator = ', '
     return separator.join(str(item[attrname]) for item in list_to_join)