]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
'reverse' option for dictsort
authorDick Visser <dick.visser@geant.org>
Thu, 9 Mar 2017 20:37:42 +0000 (21:37 +0100)
committerDavid Lord <davidism@gmail.com>
Sat, 8 Jul 2017 15:54:34 +0000 (08:54 -0700)
jinja2/filters.py

index da15a1a759ac8803efb0b3b6cd6f2b01355dab22..2496d3aad589f1ed875889557d173a4536e8a936 100644 (file)
@@ -203,7 +203,7 @@ def do_title(s):
          if item])
 
 
-def do_dictsort(value, case_sensitive=False, by='key'):
+def do_dictsort(value, case_sensitive=False, by='key', reverse=False):
     """Sort a dict and yield (key, value) pairs. Because python dicts are
     unsorted you may want to use this function to order them by either
     key or value:
@@ -213,6 +213,9 @@ def do_dictsort(value, case_sensitive=False, by='key'):
         {% for item in mydict|dictsort %}
             sort the dict by key, case insensitive
 
+        {% for item in mydict|dictsort(reverse=true) %}
+            sort the dict by key, case insensitive, reverse order
+
         {% for item in mydict|dictsort(true) %}
             sort the dict by key, case sensitive
 
@@ -232,7 +235,7 @@ def do_dictsort(value, case_sensitive=False, by='key'):
             value = value.lower()
         return value
 
-    return sorted(value.items(), key=sort_func)
+    return sorted(value.items(), key=sort_func, reverse=reverse)
 
 
 @environmentfilter