# Logic Spec: Pontszabalyok Admin Oldal Javitasa ## Modul Celja es Masterbook 2 Illeszkedes - **Modul:** Gamification -> Admin -> Point Rules - **Masterbook 2 kapcsolat:** Admin felulet a gamification pontszabalyok kezelesere (CRUD) - **Jelenlegi allapot:** Backend API 100%-ig funkcionalis, frontenden i18n kulcs mismatch es hianyzó inline szerkesztes ## Audit Eredmenyek ### Backend API (admin_gamification.py) - igenyel valtoztatast - GET /admin/gamification/point-rules - Listazas, minden mezovel - POST /admin/gamification/point-rules - Letrehozas, 409-es duplicate_key hibaval - PUT /admin/gamification/point-rules/{id} - Reszleges frissites exclude_unset=True - DELETE /admin/gamification/point-rules/{id} - Soft-delete (is_active=False) - PointRule modell: id, action_key (unique), points, description, is_active - minden szerkesztheto - **Kovetkeztetes:** Backend modositas NEM szukseges ### Frontend i18n Kulcs Mismatch - 13 hibas kulcs A Vue template (point-rules.vue) rossz i18n kulcsokat hasznal. A locale fajlok (en.json, hu.json) tartalmazzak a helyes kulcsokat. | # | Template hasznal | Helyes kulcs (locale) | Sor | |---|-----------------|----------------------|-----| | 1 | col_id | id | 41 | | 2 | col_action_key | action_key | 42 | | 3 | col_points | points | 43 | | 4 | col_description | description | 44 | | 5 | col_status | status | 45 | | 6 | col_actions | actions | 46 | | 7 | create_btn | create | 32 | | 8 | empty | no_items | 83 | | 9 | load_error | error | 21 | | 10 | duplicate_error | duplicate_key | 316 | | 11 | delete_confirm_title | delete_title | 168 | | 12 | delete_confirm_body (param: {action_key}) | delete_confirm (param: {name}) | 170 | | 13 | active_label | is_active | 143 | ### Hianzo Funkcio: Inline Szerkesztes - Jelenleg csak modal (popup) alapu szerkesztes erheto el a ceruza ikonra kattintva - A tablazat cellai csak olvashatoak (read-only) - A felhasznalo kerese: kattintasra inline szerkesztes ## Tervezett Valtoztatasok ### 1. i18n Kulcsok Javitasa (point-rules.vue) Csak a frontend_admin/pages/gamification/point-rules.vue fajlban kell a template i18n hivasokat javitani. **Valtoztatasok (13 helyen):** 1. 41. sor: th col_id -> th id 2. 42. sor: th col_action_key -> th action_key 3. 43. sor: th col_points -> th points 4. 44. sor: th col_description -> th description 5. 45. sor: th col_status -> th status 6. 46. sor: th col_actions -> th actions 7. 32. sor: create_btn -> create 8. 83. sor: empty -> no_items 9. 21. sor: load_error -> error 10. 316. sor: duplicate_error -> duplicate_key 11. 168. sor: delete_confirm_title -> delete_title 12. 170. sor: - Kulcs: delete_confirm_body -> delete_confirm - Parameter: { action_key: deletingRule?.action_key } -> { name: deletingRule?.action_key } 13. 143. sor: active_label -> is_active ### 2. Inline Szerkesztes Bevezetese (point-rules.vue) Megkozelites: Click-to-edit minta. Amikor a felhasznalo rakattingat egy cella ertekere, az egy inline input mezove alakul. **Mely mezők legyenek inline szerkeszthetoek:** - action_key (52-54. sor) - szoveges input - points (55-58. sor) - number input - description (60. sor) - szoveges input - is_active statusz (61-64. sor) - toggle/click **Implementacios terv (Vue 3 Composition API):** Uj state valtozok: - editingCell = ref null - { id: number; field: string } - editValue = ref null - string | number | boolean Uj metodusok: - startEdit(rule, field) - beallitja az editingCell-t es editValue-t - cancelEdit() - torli az editingCell-t - saveEdit(rule, field) - PUT /admin/gamification/point-rules/{id} a modositott mezovel Template modositas: Minden cella kap egy @click handler-t, ami elinditja az inline szerkesztest. Az input mezok Enter/Blur eseteben mentenek, Escape eseteben megszakitjak. ## Valtoztatas Nelkuli Fajlok - backend/app/api/v1/endpoints/admin_gamification.py - backend API teljesen megfelelo - backend/app/models/gamification/gamification.py - PointRule modell helyes - frontend_admin/i18n/locales/en.json - kulcsok rendben - frontend_admin/i18n/locales/hu.json - kulcsok rendben ## Csak Valtoztatando Fajlok - frontend_admin/pages/gamification/point-rules.vue - i18n javitas + inline szerkesztes ## Tesztelesi Terv 1. i18n: Minden oszlopfejlecben, gombon es uzenetben a forditott szoveg jelenjen meg 2. Inline szerkesztes: Kattintasra jelenjen meg az input mezo, Enter/Blur mentse, Escape szakitsa meg 3. Meglevo funkciok: A modal alap CRUD tovabbra is mukodjon