Keress és Rendezz Nemzetközi Karakterek Alapján (Search Order By International Characters)
Kategória: DO Tech / Base
Technikai név: web_search_order_international
Licenc: LGPL-3
Odoo verziók: 16.0, 17.0, 18.0
Ár: Ingyenes / Közösségi (Community)
🎯 A Probléma
Az Odoo alapértelmezett rendezési logikája (amelyet a lista nézetekben, a keresőpaneleken, a kanban oszlopokban és a kiválasztó mezőkben használ) a JavaScript natív .sort() függvényére épül egy egyszerű karakterlánc-összehasonlítással. Ez kiválóan működik az angol, sima ASCII szövegek esetében – de nagyon rosszul teljesít ékezetes karaktereket, speciális betűket vagy kevert alfanumerikus azonosítókat tartalmazó nyelveknél.
Például a magyar nyelvben:
| Alapértelmezett Odoo rendezés | Helyes magyar rendezés |
| Árpa, Alma, Búza | Alma, Árpa, Búza |
| Szoba 10, Szoba 2 | Szoba 2, Szoba 10 |
Ugyanez a probléma érinti a német (Ä, Ö, Ü), francia (É, È, Ê), spanyol (Ñ), lengyel (Ł, Ą), cseh (Č, Ř), török (İ, ı) és több tucat más nyelvet is.
Ami még rosszabb: a hivatkozási kódok, mint például az INV-2, INV-10, INV-100, ABC-sorrendben rendeződnek a numerikus sorrend helyett, ami a jelentéseket és a kiszedési listákat szinte átláthatatlanná teszi.
✨ A Megoldás
A Search Order By International Characters modul frissíti az Odoo frontend rendezőmotorját egy nyelvazonos (locale-aware), ICU-alapú rendezési rendszerrel, amely a böngésző natív Intl.Collator API-jára épül.
A telepítés után az Odoo-ban minden lista nézet, keresőpanel, kanban oszlop és csoportosított eredmény pontosan úgy rendeződik, ahogy azt az adott nyelv anyanyelvi beszélője elvárja.
🚀 Főbb jellemzők
🌍 Valódi nemzetközi rendezés
Az Intl.Collator API-t használja sensitivity: "variant" beállítással – így az a és az á helyesen különálló betűként, a nyelvi szabályoknak megfelelő sorrendben jelenik meg.
🔢 Természetes szám szerinti rendezés
Engedélyezi a numeric: true opciót, így a Szoba 2 a Szoba 10 elé kerül, az INV-2 pedig az INV-10 elé.
🧩 Zökkenőmentes csere (Drop-in Replacement)
Modul szinten javítja (patch-eli) a @web/core/utils/arrays.sortBy funkciót. Nincsenek nézetmódosítások, nincsenek XML felülírások, nincs szükség kézi beállításokra – egyszerűen működik.
🌐 Nyelvhez alkalmazkodó működés
Automatikusan tiszteletben tartja a felhasználó aktív nyelvét. A magyar felhasználók magyar rendezést kapnak, a németek németet, és így tovább.
🛡️ Biztonságos kezdeti értékek számoknál és hiányzó adatoknál
A numerikus értékek számszerűen hasonlítódnak össze, a null / undefined értékek pedig konzekvensen a lista tetejére (növekvő) vagy az aljára (csökkenő) kerülnek, így az adatok soha nem törik meg a rendezést.
⚡ Nulla teljesítménybeli pluszteher
Rendezési hívásonként egyetlen Intl.Collator példány jön létre, amely újrahasznosításra kerül az elemek között – nincs ismételt példányosítás, és több ezer rekord esetén sincs mérhető lassulás.
📦 Mit tartalmaz a modul?
| Komponens | Leírás |
| @web/core/utils/arrays javítás | Újraírja a sortBy funkciót ICU rendezéssel. |
| Nyelvérzékelés | Automatikusan beolvassa az aktív felhasználó nyelvét. |
| Numerikus rendezés | Kezeli a verziószámokat, számlaszámokat, szobaszámokat. |
| Ékezetérzékeny mód | Megkülönbözteti az a vs á, o vs ö, s vs š karaktereket. |
| Növekvő / csökkenő | Teljesen támogatott a meglévő order argumentumon keresztül. |
🧪 Tesztelt forgatókönyvek
✅ Magyar: Alma, Árpa, Búza – helyes sorrendben
✅ Magyar: Szoba 2, Szoba 10 – számszerű sorrendben
✅ Német: Äpfel, Zebra, Über – helyes sorrendben
✅ Francia: École, Étudiant, Ère – helyes sorrendben
✅ Hivatkozási kódok: INV-2, INV-10, INV-100 – számszerű sorrendben
✅ Kevert null / undefined értékek: konzekvensen elhelyezve
✅ Csökkenő sorrend: a növekvő pontos tükörképe, hibák nélkül
🏆 Miért válassza ezt a modult?
| Modul nélkül | Modullal |
| Árpa az Alma előtt | Alma az Árpa előtt |
| Szoba 10 a Szoba 2 előtt | Szoba 2 a Szoba 10 előtt |
| Használhatatlan a nem angolul beszélő felhasználóknak | Anyanyelvi rendezés mindenhol |
| Manuális kerülőmegoldások minden nézetben | Egyetlen telepítés, globális javítás |
🔧 Technikai részletek
Függőség: web
Javított komponens: @web/core/utils/arrays → sortBy
Használt technológia: Intl.Collator (ECMA-402, minden modern böngésző támogatja)
Beállítások: numeric: true, sensitivity: "variant", usage: "sort"
Adatbázis-módosítás: Nincs
Nézet- vagy XML-módosítás: Nincs
Szerveroldali kód: Nincs
📥 Telepítés
Töltse le és helyezze el a modult az Odoo addons útvonalán.
Frissítse az Alkalmazások (Apps) listáját.
Keressen rá a „Search Order By International Characters” kifejezésre.
Kattintson a Telepítés gombra.
Frissítse a böngészőt (Ctrl+F5) a javított frontend összetevők újratöltéséhez.
Ennyi az egész – az Odoo-ban minden lista nézet mostantól úgy rendeződik, ahogyan azt a felhasználói elvárják.
💬 Támogatás
Fejlesztette és karbantartja a DO Tech.
Hibabejelentéssel, funkciókérésekkel vagy további nyelvek honosítási támogatásával kapcsolatban lépjen velünk kapcsolatba az Odoo Apps Store-on keresztül.