From 10fc8afc15b973ed3e547508e2bc160c3fbf8966 Mon Sep 17 00:00:00 2001 From: Dick Visser Date: Thu, 9 Mar 2017 21:37:42 +0100 Subject: [PATCH] 'reverse' option for dictsort --- jinja2/filters.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jinja2/filters.py b/jinja2/filters.py index da15a1a75..2496d3aad 100644 --- a/jinja2/filters.py +++ b/jinja2/filters.py @@ -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 sort_func(item): value = value.lower() return value - return sorted(value.items(), key=sort_func) + return sorted(value.items(), key=sort_func, reverse=reverse) @environmentfilter