Frontend: Felhasználói statisztikák + büntetés/jutalom oldalak #334

Closed
opened 2026-06-29 16:07:22 +02:00 by kincses · 3 comments
Owner

Mérföldkő: Epic 8 Gamification 2.0, Verseny és Önvéde
Cél: Felhasználói gamification statisztikák listázása, részletek és büntetés/jutalom műveletek

🔗 Függőségek (Dependencies)

  • Bemenet (Mikre támaszkodik): #329 (Frontend menüpont)
  • Kimenet (Mik támaszkodnak rá): Nincs

📝 Elemzés

Két új oldal létrehozása:

  1. frontend_admin/pages/gamification/users.vue:

    • DataTable: UserStats adatok (user_id, total_xp, current_level, penalty_points, restriction_level, social_points)
    • Szűrés: restriction_level, penalty_points tartomány, XP tartomány
    • API: GET /admin/gamification/user-stats
  2. frontend_admin/pages/gamification/users/[id].vue:

    • Részletes gamification profil: XP history, szint, penalty, badge-ek, contribution-ök
    • Műveletek: Büntetés kiszabása (POST /admin/gamification/user-stats/{id}/penalty), Jutalom (POST reward)
    • Pontnapló: Az adott user PointsLedger bejegyzései
    • API: GET/PUT /admin/gamification/user-stats/{id}
**Mérföldkő:** Epic 8 Gamification 2.0, Verseny és Önvéde **Cél:** Felhasználói gamification statisztikák listázása, részletek és büntetés/jutalom műveletek ### 🔗 Függőségek (Dependencies) - **Bemenet (Mikre támaszkodik):** #329 (Frontend menüpont) - **Kimenet (Mik támaszkodnak rá):** Nincs ### 📝 Elemzés Két új oldal létrehozása: 1. frontend_admin/pages/gamification/users.vue: - DataTable: UserStats adatok (user_id, total_xp, current_level, penalty_points, restriction_level, social_points) - Szűrés: restriction_level, penalty_points tartomány, XP tartomány - API: GET /admin/gamification/user-stats 2. frontend_admin/pages/gamification/users/[id].vue: - Részletes gamification profil: XP history, szint, penalty, badge-ek, contribution-ök - Műveletek: Büntetés kiszabása (POST /admin/gamification/user-stats/{id}/penalty), Jutalom (POST reward) - Pontnapló: Az adott user PointsLedger bejegyzései - API: GET/PUT /admin/gamification/user-stats/{id}
kincses added this to the Epic 8 Gamification 2.0, Verseny és Önvéde milestone 2026-06-29 16:07:22 +02:00
kincses added the Status: To DoScope: FrontendType: Feature labels 2026-06-29 16:07:22 +02:00
kincses added Status: In Progress and removed Status: To Do labels 2026-06-29 22:55:40 +02:00
kincses started working 2026-06-29 22:55:40 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-06-29 22:55:40

▶️ **Munka megkezdve:** 2026-06-29 22:55:40
kincses added Status: Done and removed Status: In Progress labels 2026-06-29 22:58:27 +02:00
kincses worked for 2 minutes 2026-06-29 22:58:27 +02:00
Author
Owner

Munka befejezve: 2026-06-29 22:58:27

Technikai Összefoglaló:
Gitea #334: Frontend Felhasználói statisztikák + büntetés admin nézet (penalty) implementálva. Backend admin_gamification.py már kész volt. Frontend users/index.vue: adattábla szűrőkkel és lapozással. Frontend users/[id].vue: statisztika kártyák, büntetés űrlap (POST penalty), jutalom űrlap (POST reward), pontnapló tábla. sync_engine: 1284 elem OK, 0 hiba.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-29 22:58:27 **Technikai Összefoglaló:** Gitea #334: Frontend Felhasználói statisztikák + büntetés admin nézet (penalty) implementálva. Backend admin_gamification.py már kész volt. Frontend users/index.vue: adattábla szűrőkkel és lapozással. Frontend users/[id].vue: statisztika kártyák, büntetés űrlap (POST penalty), jutalom űrlap (POST reward), pontnapló tábla. sync_engine: 1284 elem OK, 0 hiba. ⏱️ *Az idő rögzítve.*
Author
Owner

Gitea #334 - Elkészült

Végrehajtott feladatok:

1. Backend Audit: A backend teljesen készen volt

  • admin_gamification.py - 1098 soros router az összes szükséges végponttal
  • GET /admin/gamification/user-stats - lista szűrőkkel (level, min_xp, max_xp, has_penalty)
  • GET /admin/gamification/user-stats/{user_id} - egyedi statisztika
  • PUT /admin/gamification/user-stats/{user_id} - manuális módosítás
  • POST /admin/gamification/user-stats/{user_id}/penalty - büntetés
  • POST /admin/gamification/user-stats/{user_id}/reward - jutalom
  • GET /admin/gamification/points-ledger?user_id={id} - pontnapló
  • GamificationService.process_activity() - támogatja a penalty/reward műveleteket

2. Frontend users/index.vue: Implementálva

  • Adattábla: user_id, XP, szint, pontok, büntetés, restrikció, szolgáltatások, felfedezések, dátum
  • Szűrők: szint (1-20), minimum/maximum XP, büntetés státusz
  • Lapozás offset/limit alapján
  • Linkek a részletes nézetre (/gamification/users/{id})

3. Frontend users/[id].vue: Implementálva

  • Statisztika kártyák: XP, szint, pontok, social pont, büntetés, restrikció, kvóta, kitiltás, aktivitás
  • Büntetés űrlap: amount (1-10000) + reason → POST /admin/gamification/user-stats/{id}/penalty
  • Jutalom űrlap: xp_amount (0-100000) + social_amount (0-100000) + reason → POST /admin/gamification/user-stats/{id}/reward
  • Pontnapló tábla: dátum, pont, büntetés változás, XP, indoklás, forrás

4. Adatbázis: Szinkronban (sync_engine: 1284 elem OK, 0 hiba)

5. Gitea #334: Lezárva

## ✅ Gitea #334 - Elkészült ### Végrehajtott feladatok: **1. Backend Audit:** ✅ A backend teljesen készen volt - [`admin_gamification.py`](backend/app/api/v1/endpoints/admin_gamification.py) - 1098 soros router az összes szükséges végponttal - `GET /admin/gamification/user-stats` - lista szűrőkkel (level, min_xp, max_xp, has_penalty) - `GET /admin/gamification/user-stats/{user_id}` - egyedi statisztika - `PUT /admin/gamification/user-stats/{user_id}` - manuális módosítás - `POST /admin/gamification/user-stats/{user_id}/penalty` - büntetés - `POST /admin/gamification/user-stats/{user_id}/reward` - jutalom - `GET /admin/gamification/points-ledger?user_id={id}` - pontnapló - [`GamificationService.process_activity()`](backend/app/services/gamification_service.py:52) - támogatja a penalty/reward műveleteket **2. Frontend [`users/index.vue`](frontend_admin/pages/gamification/users/index.vue):** ✅ Implementálva - Adattábla: user_id, XP, szint, pontok, büntetés, restrikció, szolgáltatások, felfedezések, dátum - Szűrők: szint (1-20), minimum/maximum XP, büntetés státusz - Lapozás offset/limit alapján - Linkek a részletes nézetre (`/gamification/users/{id}`) **3. Frontend [`users/[id].vue`](frontend_admin/pages/gamification/users/[id].vue):** ✅ Implementálva - **Statisztika kártyák:** XP, szint, pontok, social pont, büntetés, restrikció, kvóta, kitiltás, aktivitás - **Büntetés űrlap:** amount (1-10000) + reason → `POST /admin/gamification/user-stats/{id}/penalty` - **Jutalom űrlap:** xp_amount (0-100000) + social_amount (0-100000) + reason → `POST /admin/gamification/user-stats/{id}/reward` - **Pontnapló tábla:** dátum, pont, büntetés változás, XP, indoklás, forrás **4. Adatbázis:** ✅ Szinkronban (sync_engine: 1284 elem OK, 0 hiba) **5. Gitea #334:** ✅ Lezárva
Sign in to join this conversation.