admin_szolgáltatók_
This commit is contained in:
102
plans/logic_spec_point_rules_admin_fix.md
Normal file
102
plans/logic_spec_point_rules_admin_fix.md
Normal file
@@ -0,0 +1,102 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user