feat(tournament): add participant gave-up functionality and UI updates

- Implemented setParticipantGaveUp and setExternalParticipantGaveUp methods in tournamentController to handle participant resignation.
- Updated ExternalTournamentParticipant and TournamentMember models to include a gaveUp field for tracking resignation status.
- Enhanced tournamentRoutes to include new endpoints for updating gave-up status.
- Modified TournamentGroupsTab and TournamentParticipantsTab components to display and manage gave-up status visually.
- Added localization strings for "gave up" and related hints in German.
- Updated TournamentResultsTab to reflect gave-up status in match results.
This commit is contained in:
Torsten Schulz (local)
2026-01-30 22:45:54 +01:00
parent 18a191f686
commit 7e1b09fa97
11 changed files with 344 additions and 41 deletions

View File

@@ -20,6 +20,7 @@ import {
resetMatches,
removeParticipant,
updateParticipantSeeded,
setParticipantGaveUp,
deleteMatchResult,
reopenMatch,
deleteKnockoutMatches,
@@ -28,6 +29,7 @@ import {
getExternalParticipants,
removeExternalParticipant,
updateExternalParticipantSeeded,
setExternalParticipantGaveUp,
getTournamentClasses,
addTournamentClass,
updateTournamentClass,
@@ -54,6 +56,7 @@ router.post('/participant', authenticate, addParticipant);
router.post('/participants', authenticate, getParticipants);
router.delete('/participant', authenticate, removeParticipant);
router.put('/participant/:clubId/:tournamentId/:participantId/seeded', authenticate, updateParticipantSeeded);
router.put('/participant/:clubId/:tournamentId/:participantId/gave-up', authenticate, setParticipantGaveUp);
router.post('/modus', authenticate, setModus);
router.post('/groups/reset', authenticate, resetGroups);
router.post('/matches/reset', authenticate, resetMatches);
@@ -82,6 +85,7 @@ router.post('/external-participant', authenticate, addExternalParticipant);
router.post('/external-participants', authenticate, getExternalParticipants);
router.delete('/external-participant', authenticate, removeExternalParticipant);
router.put('/external-participant/:clubId/:tournamentId/:participantId/seeded', authenticate, updateExternalParticipantSeeded);
router.put('/external-participant/:clubId/:tournamentId/:participantId/gave-up', authenticate, setExternalParticipantGaveUp);
// Tournament Classes
router.get('/classes/:clubId/:tournamentId', authenticate, getTournamentClasses);