Tartalomra ugrás

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ésHelyes magyar rendezés
Árpa, Alma, BúzaAlma, Árpa, Búza
Szoba 10, Szoba 2Szoba 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?

KomponensLeírás
@web/core/utils/arrays javításÚjraírja a sortBy funkciót ICU rendezéssel.
NyelvérzékelésAutomatikusan beolvassa az aktív felhasználó nyelvét.
Numerikus rendezésKezeli a verziószámokat, számlaszámokat, szobaszámokat.
Ékezetérzékeny módMegkü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ülModullal
Árpa az Alma előttAlma az Árpa előtt
Szoba 10 a Szoba 2 előttSzoba 2 a Szoba 10 előtt
Használhatatlan a nem angolul beszélő felhasználóknakAnyanyelvi rendezés mindenhol
Manuális kerülőmegoldások minden nézetbenEgyetlen 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

  1. Töltse le és helyezze el a modult az Odoo addons útvonalán.

  2. Frissítse az Alkalmazások (Apps) listáját.

  3. Keressen rá a „Search Order By International Characters” kifejezésre.

  4. Kattintson a Telepítés gombra.

  5. 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.