diff --git a/templates/macros/supporters.html b/templates/macros/supporters.html new file mode 100644 index 000000000..a0fab76bd --- /dev/null +++ b/templates/macros/supporters.html @@ -0,0 +1,25 @@ +{% macro case_insensitive_sort_supporters(supporters) %} + {# Step 1: Extract all supporter names in lower case #} + {% set lower_names = [] %} + {% for supporter in supporters %} + {% set_global lower_names = lower_names | concat(with=[supporter.name | lower]) %} + {% endfor %} + + {# Step 2: Sort lower-case names #} + {% set sorted_lower_names = lower_names | sort %} + + {# Step 3: Re-match sorted names with original supporter objects #} + {% for lower_name in sorted_lower_names %} + {% for supporter in supporters %} + {% if supporter.name | lower == lower_name %} + {% set_global current_supporter = supporter %} + {% break %} + {% endif %} + {% endfor %} + + + {{ current_supporter.name }}'s logo + {{ current_supporter.name }} + + {% endfor %} +{% endmacro %} diff --git a/templates/support.html b/templates/support.html index 4ca69e4b9..f190c9300 100644 --- a/templates/support.html +++ b/templates/support.html @@ -1,5 +1,6 @@ {% extends "section.html" %} {% import "macros/banner.html" as banner %} +{% import "macros/supporters.html" as supporters_macros %} {% block head_extra %} {% endblock head_extra %} @@ -37,56 +38,31 @@

Platinum Members

- {% for supporter in supporters.platinum %} - - {{ supporter.name }}'s logo - {{ supporter.name }} - - {% endfor %} + {{ supporters_macros::case_insensitive_sort_supporters(supporters=supporters.platinum) }}

Gold Members

- {% for supporter in supporters.gold %} - - {{ supporter.name }}'s logo - {{ supporter.name }} - - {% endfor %} + {{ supporters_macros::case_insensitive_sort_supporters(supporters=supporters.gold) }}

Silver Members

- {% for supporter in supporters.silver %} - - {{ supporter.name }}'s logo - {{ supporter.name }} - - {% endfor %} + {{ supporters_macros::case_insensitive_sort_supporters(supporters=supporters.silver) }}

Ecosystem Members

- {% for supporter in supporters.ecosystem %} - - {{ supporter.name }}'s logo - {{ supporter.name }} - - {% endfor %} + {{ supporters_macros::case_insensitive_sort_supporters(supporters=supporters.ecosystem) }}

Associate Members

- {% for supporter in supporters.associate %} - - {{ supporter.name }}'s logo - {{ supporter.name }} - - {% endfor %} + {{ supporters_macros::case_insensitive_sort_supporters(supporters=supporters.associate) }}