diff --git a/backend/controllers/diaryMemberActivityController.js b/backend/controllers/diaryMemberActivityController.js index b47a3bd..41269fd 100644 --- a/backend/controllers/diaryMemberActivityController.js +++ b/backend/controllers/diaryMemberActivityController.js @@ -19,20 +19,44 @@ export const addMembersToActivity = async (req, res) => { const { authcode: userToken } = req.headers; const { clubId, diaryDateActivityId } = req.params; const { participantIds } = req.body; // array of participant ids + + console.log('[addMembersToActivity] Request:', { + clubId, + diaryDateActivityId, + participantIds, + bodyKeys: Object.keys(req.body) + }); + await checkAccess(userToken, clubId); + + if (!participantIds || !Array.isArray(participantIds)) { + console.error('[addMembersToActivity] Invalid participantIds:', participantIds); + return res.status(400).json({ error: 'participantIds must be an array' }); + } + const validParticipants = await Participant.findAll({ where: { id: participantIds } }); + console.log('[addMembersToActivity] Valid participants found:', validParticipants.length); + const validIds = new Set(validParticipants.map(p => p.id)); const created = []; for (const pid of participantIds) { - if (!validIds.has(pid)) continue; + if (!validIds.has(pid)) { + console.log('[addMembersToActivity] Participant not found:', pid); + continue; + } const existing = await DiaryMemberActivity.findOne({ where: { diaryDateActivityId, participantId: pid } }); if (!existing) { const rec = await DiaryMemberActivity.create({ diaryDateActivityId, participantId: pid }); + console.log('[addMembersToActivity] Created:', rec.id); created.push(rec); + } else { + console.log('[addMembersToActivity] Already exists:', pid); } } + console.log('[addMembersToActivity] Success, created:', created.length); res.status(201).json(created); } catch (e) { + console.error('[addMembersToActivity] Error:', e); res.status(500).json({ error: 'Error adding members to activity' }); } }; diff --git a/backend/services/diaryDateActivityService.js b/backend/services/diaryDateActivityService.js index e0b0f64..d63aa9a 100644 --- a/backend/services/diaryDateActivityService.js +++ b/backend/services/diaryDateActivityService.js @@ -246,8 +246,20 @@ class DiaryDateActivityService { throw new Error('Activity not found'); } const group = await Group.findByPk(groupId); - if (!group || group.diaryDateId !== diaryDateActivity.diaryDateId) { + if (!group) { + console.error('[DiaryDateActivityService::addGroupActivity] Group not found:', groupId); + throw new Error('Group not found'); + } + + console.log('[DiaryDateActivityService::addGroupActivity] Group found:', { + groupId: group.id, + groupDiaryDateId: group.diaryDateId, + activityDiaryDateId: diaryDateActivity.diaryDateId + }); + + if (group.diaryDateId !== diaryDateActivity.diaryDateId) { console.error('[DiaryDateActivityService::addGroupActivity] Group and date don\'t fit'); + console.error('Group diaryDateId:', group.diaryDateId, 'Activity diaryDateId:', diaryDateActivity.diaryDateId); throw new Error('Group isn\'t related to date'); } const [predefinedActivity, created] = await PredefinedActivity.findOrCreate({ diff --git a/backend/services/schedulerService.js b/backend/services/schedulerService.js index 59d4c13..ddc7bd9 100644 --- a/backend/services/schedulerService.js +++ b/backend/services/schedulerService.js @@ -17,7 +17,7 @@ class SchedulerService { devLog('Scheduler is already running'); return; } - + devLog('Starting scheduler service...'); // Schedule automatic rating updates at 6:00 AM daily diff --git a/frontend/public/site.webmanifest b/frontend/public/site.webmanifest index 45dc8a2..b0a97a9 100644 --- a/frontend/public/site.webmanifest +++ b/frontend/public/site.webmanifest @@ -1 +1,19 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file +{ + "name": "Trainingstagebuch", + "short_name": "TT-Tagebuch", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#2c3e50", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/frontend/src/views/DiaryView.vue b/frontend/src/views/DiaryView.vue index f37a517..7159064 100644 --- a/frontend/src/views/DiaryView.vue +++ b/frontend/src/views/DiaryView.vue @@ -144,7 +144,7 @@ item.durationText }})