Browse Source

try except fix

hacking_strxfrm
ticvac 3 weeks ago
parent
commit
9c1007073d
  1. 31
      mamweb/admin.py

31
mamweb/admin.py

@ -54,32 +54,11 @@ def get_app_list(self, request, app_label=None):
# Odhlášený admin má prázdný app_dict :-/ # Odhlášený admin má prázdný app_dict :-/
app_list = [app_dict[label] for label in aplikace_nahore if label in app_dict] + [app_dict[label] for label in app_dict if label not in aplikace_nahore] app_list = [app_dict[label] for label in aplikace_nahore if label in app_dict] + [app_dict[label] for label in app_dict if label not in aplikace_nahore]
ceska_abeceda = [ try:
"a", "á", "b", "c", "č", "d", "ď", "e", "é", "ě", "f", "g", for app in app_list:
"h", "ch", "i", "í", "j", "k", "l", "m", "n", "ň", "o", "ó", app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower()))
"p", "q", "r", "ř", "s", "š", "t", "ť", "u", "ú", "ů", "v", except OSError:
"w", "x", "y", "ý", "z", "ž" pass # locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení
]
poradi = {znak: index for index, znak in enumerate(ceska_abeceda)}
def ceske_poradi(slovo):
i = 0
vysledek = []
slovo = slovo.lower()
while i < len(slovo):
# Zkontroluj, zda aktuální dvojice znaků je "ch"
if i + 1 < len(slovo) and slovo[i:i + 2] == "ch":
vysledek.append(poradi["ch"])
i += 2 # Přeskoč dva znaky
else:
vysledek.append(poradi.get(slovo[i], -1))
i += 1 # Přeskoč jeden znak
return vysledek
# Sort the models alphabetically within each app.
for app in app_list:
# app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower()))
# app['models'].sort(key=lambda x: x['name'].lower())
app['models'].sort(key=lambda x: ceske_poradi(x['name']))
return app_list return app_list
AdminSite.get_app_list = get_app_list AdminSite.get_app_list = get_app_list

Loading…
Cancel
Save