fix: update application namespace and clean up deprecated files
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
- Changed application namespace from `de.tt_tagebuch.app` to `de.tsschulz.tt_tagebuch` in build.gradle.kts and AndroidManifest.xml for consistency. - Updated DEVELOPMENT.md to reflect the correct package name for the app. - Removed deprecated files related to AppDependencies, MainActivity, MainApplication, and PDF generation, streamlining the codebase. - Enhanced TODO.md to reflect the current status of the Android team planning phase implementation.
This commit is contained in:
@@ -165,49 +165,19 @@ Web: `DiaryView.vue` (sehr groß). API-Cluster (Auszug – in Web nach `apiClien
|
||||
|
||||
- [x] **Ausstehende Freigaben** – `ClubApprovalsApi`, `PendingApprovalsManager`, Screen unter „Mehr“ → Club-Verwaltung (`ClubAdminScreens.kt`)
|
||||
- [x] **Team-Management (Mannschaften + Editor)** – `TeamManagementScreen` + `TeamEditorScreen`: Saison, Suche, CRUD Mannschaften; Tabs Stammdaten, Spielerstatistik (Liga), **Aufstellung/Meldung**, Dokumente, Scheduler-Jobs, MyTT (`ClubTeamsApi`, `MatchesApi`, `TeamDocumentsApi`, `ApiLogsApi`, `MyTischtennisApi`, Rechte `canReadTeams`/`canWriteTeams`)
|
||||
- [ ] **Mannschafts-Planung (Android)** – siehe Unterabschnitt **Phase 8a** (Web hat das Planungsboard bereits; mobil bewusst **offen**)
|
||||
- [x] **Mannschafts-Planung (Android)** – `TeamManagementScreen` **Mannschaften | Planung**; `TeamPlanningScreen` / `TeamPlanningLogic`; `MembersApi` Play-Interest (`TeamEditorModels`) – Details **Phase 8a**
|
||||
- [x] **Berechtigungen** – erweiterte `PermissionsApi`, `PermissionsAdminManager`, UI Rolle/Status/Anpassen mit `RolePermissionMatrix` (`ClubAdminScreens.kt`)
|
||||
- [x] **Logs** – `ApiLogsApi`, `ApiLogsManager`, Liste + Pagination + Detail (`ClubAdminScreens.kt`); `AppDependencies` / Logout / 401 räumen Manager auf
|
||||
|
||||
### Phase 8a – Mannschafts-Planung auf Android (Backlog / Plan)
|
||||
### Phase 8a – Mannschafts-Planung auf Android (umgesetzt, Stand 2026-05)
|
||||
|
||||
**Ziel:** Gleiche **fachliche** Funktion wie Web **Team-Verwaltung → Planung**: Pool „möchte spielen“, mehrere Mannschaften der Saison parallel, Spieler nur **eligibility-konform** zuordnen, lokale Stammdaten (Name, geplante Liga, AK/GK) pro Team, **Meldung (Lineup)** je Team und gewählter **Halbserie** lesen/schreiben, optional **Debounced Autosave** wie Web.
|
||||
- [x] `GET/POST` **`/api/clubmembers/play-interest/:clubId`** – `MembersApi` + DTOs `MemberPlayInterestRowDto` / `MemberPlayInterestSetBody`
|
||||
- [x] **UI:** `TeamPlanningScreen.kt` – Halbserie, Pool, Interesse markieren, Mannschaft hinzufügen, pro Team Stammdaten + Meldung, QTTR-Abstand, „Im Editor öffnen“
|
||||
- [x] **Einstieg:** `TeamManagementScreen` – Segment **Mannschaften | Planung**
|
||||
- [x] **Logik:** `TeamPlanningLogic.kt` – Normalisierung Zuordnungen, Eligibility über `TeamEditorLineupLogic`, Default-Halbserie
|
||||
- [ ] **Optional später:** Drag-and-Drop statt Menüs; Debounced Autosave wie Web; dedizierte Tests Serialisierung
|
||||
|
||||
**Web-Referenz (1:1 zum Durchlesen der Logik):**
|
||||
|
||||
| Bereich | Datei / Abschnitt |
|
||||
|--------|-------------------|
|
||||
| Umschalter „Mannschaften“ / „Planung“, Board einbinden | `frontend/src/views/TeamManagementView.vue` (`activeMainSection`, `TeamPlanningBoard`) |
|
||||
| UI Pool, Teams, Suche, Interesse markieren | `frontend/src/components/team/TeamPlanningBoard.vue` |
|
||||
| Lanes / Drag-Drop | `frontend/src/components/team/TeamPlanningLane.vue` |
|
||||
|
||||
**Backend-APIs (aus Web `apiClient`; im `shared` ergänzen, falls noch fehlend):**
|
||||
|
||||
- [ ] `GET /api/clubmembers/play-interest/:clubId` mit Query `seasonId`, `lineupHalf` – geladene **Interessen** für Pool (`loadPlanningInterestedMemberIds`)
|
||||
- [ ] `POST /api/clubmembers/play-interest/:clubId` – Body `memberId`, `seasonId`, `lineupHalf`, `interested` – Mitglied als „interessiert“ markieren (`onPlanningMarkMemberInterested`)
|
||||
- [x] `GET /api/clubmembers/get/:clubId/:showAll` – bereits `MembersApi.listMembers`
|
||||
- [x] `GET /api/club-teams/...` Mannschaften Saison, `GET …/lineup?half=`, `PUT …/lineup` – `ClubTeamsApi` (Planung lädt Lineups **aller** Teams der Saison parallel wie Web `loadPlanningAssignments`)
|
||||
- [x] `PUT /api/club-teams/:id` – Stammdaten Planungsteam (`updateClubTeam`)
|
||||
- [x] `POST /api/club-teams/club/:clubId` – neue Planungs-Mannschaft (`createClubTeam` o. ä.)
|
||||
- [x] `DELETE /api/club-teams/:id` – Planungs-Mannschaft löschen
|
||||
|
||||
**Shared / Domäne:**
|
||||
|
||||
- [ ] DTOs für Play-Interest (Response-Zeilen: `memberId`, `interested`, …) + `MembersApi` Erweiterung
|
||||
- [ ] Optional: **PlanningState**-Use-Case (normalisierte Zuordnungen `teamId`/`memberId`/`position`, Halbserie, Recompute bei AK/GK-Wechsel) – Web: `normalizePlanningAssignments`, `removeAllIneligiblePlanningAssignments`, `isEligibleForPlanningTeam` (analog `TeamEditorLineupLogic.isEligibleForTeam` + Team-spezifische AK/GK aus `planningLocalTeams`)
|
||||
|
||||
**Android UI (Vorschlag für Umsetzungsschritte):**
|
||||
|
||||
1. [ ] **Einstieg:** In `TeamManagementScreen` (oder `AppRoot`) zweiter Modus **„Planung“** neben **„Mannschaften“** (wie Web-Workspace-Buttons), gleiche Saison-Auswahl wie Liste
|
||||
2. [ ] **Screen** `TeamPlanningScreen.kt` (oder modular `TeamPlanningPool.kt` / `TeamPlanningTeamCard.kt`): Pool + Liste der Teams; kein 1:1-Spiegel der Web-Grid-Optik nötig, aber **alle Aktionen** abdeckbar
|
||||
3. [ ] **Drag-and-Drop:** Entweder Compose **Drag-and-Drop** (Plattform-API) oder **Fallback** ohne DnD: „Mitglied auswählen → Ziel-Mannschaft“ / „Aus Mannschaft entfernen“ / Reihenfolge **↑↓** in der Lane (wie Aufstellungs-Tab)
|
||||
4. [ ] **Halbserie** (VR/RR) gemeinsam mit Web-Parameter `lineupHalf` an Play-Interest und Lineup-Requests
|
||||
5. [ ] **„In Workspace öffnen“** / Team-Editor: Web `convertPlanningTeamToRegular` prüfen – ggf. nur Navigation zum bestehenden `TeamEditorScreen` statt Konvertierungs-API
|
||||
6. [ ] **Autosave:** Web nutzt Debounce (`schedulePlanningTeamAutosave`) – mobil entweder gleichziehen oder explizit **„Speichern“** pro Team + Konflikt-Hinweis (Produktentscheidung)
|
||||
7. [ ] **i18n:** Keys aus `teamManagement.planning*` / `markAsInterested` usw. in `MobileStrings` oder Fallback-Kette wie andere Admin-Screens
|
||||
8. [ ] **Tests:** Serialisierung Play-Interest; optional Snapshot der Normalisierung `planningAssignments`
|
||||
|
||||
**Hinweis im Code:** Solange 8a offen ist, kann im Tab Aufstellung ein kurzer Verweis auf die **zukünftige** in-App-Planung stehen (nach Umsetzung Text anpassen oder entfernen).
|
||||
**Hinweis im Code:** Tab Aufstellung (`TeamEditorScreen`) verweist auf den Reiter **Planung** in derselben Team-Verwaltung.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user