Browse Source

hack for utf-á

hacking_strxfrm
ticvac 4 weeks ago
parent
commit
1f77e2a6aa
  1. 25
      mamweb/admin.py
  2. 17
      tvorba/migrations/0008_alter_rocnik_options.py
  3. 4
      tvorba/models.py

25
mamweb/admin.py

@ -54,11 +54,32 @@ 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 = [
"a", "á", "b", "c", "č", "d", "ď", "e", "é", "ě", "f", "g",
"h", "ch", "i", "í", "j", "k", "l", "m", "n", "ň", "o", "ó",
"p", "q", "r", "ř", "s", "š", "t", "ť", "u", "ú", "ů", "v",
"w", "x", "y", "ý", "z", "ž"
]
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. # Sort the models alphabetically within each app.
for app in app_list: for app in app_list:
app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower())) # 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

17
tvorba/migrations/0008_alter_rocnik_options.py

@ -0,0 +1,17 @@
# Generated by Django 4.2.16 on 2024-11-26 22:06
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('tvorba', '0007_alter_deadline_typ'),
]
operations = [
migrations.AlterModelOptions(
name='rocnik',
options={'ordering': ['-rocnik'], 'verbose_name': 'ChRočník', 'verbose_name_plural': 'Ročníky'},
),
]

4
tvorba/models.py

@ -41,8 +41,8 @@ class Rocnik(SeminarModelBase):
class Meta: class Meta:
db_table = 'seminar_rocniky' db_table = 'seminar_rocniky'
verbose_name = 'Ročník' verbose_name = 'ChRočník'
verbose_name_plural = 'Ročníky' verbose_name_plural = 'ChRočníky'
ordering = ['-rocnik'] ordering = ['-rocnik']
# Interní ID # Interní ID

Loading…
Cancel
Save