diff --git a/backend/controllers/clubsController.js b/backend/controllers/clubsController.js index 76d8b2e3..7fc7e5c3 100644 --- a/backend/controllers/clubsController.js +++ b/backend/controllers/clubsController.js @@ -60,11 +60,10 @@ export const updateClubSettings = async (req, res) => { try { const { authcode: token } = req.headers; const { clubid } = req.params; - const { greetingText, associationMemberNumber, myTischtennisClubId, myTischtennisFedNickname, autoFetchRankings } = req.body; + const { greetingText, associationMemberNumber, myTischtennisFedNickname, autoFetchRankings } = req.body; const updated = await ClubService.updateClubSettings(token, clubid, { greetingText, associationMemberNumber, - myTischtennisClubId, myTischtennisFedNickname, autoFetchRankings }); diff --git a/backend/migrations/20260315_add_club_rankings_settings.sql b/backend/migrations/20260315_add_club_rankings_settings.sql index c0a8eb09..95dd9891 100644 --- a/backend/migrations/20260315_add_club_rankings_settings.sql +++ b/backend/migrations/20260315_add_club_rankings_settings.sql @@ -1,9 +1,8 @@ -- Migration: Add myTischtennis rankings settings to clubs table --- Enables per-club configuration of TTR/QTTR rankings fetch (club ID, federation, enable flag) +-- Enables per-club configuration of TTR/QTTR rankings fetch. +-- Club number comes from association_member_number (Verbands-Mitgliedsnummer). ALTER TABLE clubs - ADD COLUMN IF NOT EXISTS my_tischtennis_club_id VARCHAR(50) NULL - COMMENT 'myTischtennis club number for rankings (e.g. 43030)', ADD COLUMN IF NOT EXISTS my_tischtennis_fed_nickname VARCHAR(50) NULL COMMENT 'Federation short name for rankings (e.g. HeTTV)', ADD COLUMN IF NOT EXISTS auto_fetch_rankings BOOLEAN NOT NULL DEFAULT FALSE diff --git a/backend/models/Club.js b/backend/models/Club.js index 9e44c3ff..1fe14861 100644 --- a/backend/models/Club.js +++ b/backend/models/Club.js @@ -17,12 +17,6 @@ const Club = sequelize.define('Club', { allowNull: true, field: 'association_member_number' }, - myTischtennisClubId: { - type: DataTypes.STRING, - allowNull: true, - field: 'my_tischtennis_club_id', - comment: 'myTischtennis club number for rankings (e.g. 43030)' - }, myTischtennisFedNickname: { type: DataTypes.STRING, allowNull: true, diff --git a/backend/services/clubService.js b/backend/services/clubService.js index c35af8a3..af315b45 100644 --- a/backend/services/clubService.js +++ b/backend/services/clubService.js @@ -70,7 +70,6 @@ class ClubService { async updateClubSettings(userToken, clubId, { greetingText, associationMemberNumber, - myTischtennisClubId, myTischtennisFedNickname, autoFetchRankings }) { @@ -80,7 +79,6 @@ class ClubService { throw new Error('clubnotfound'); } const updates = { greetingText, associationMemberNumber }; - if (myTischtennisClubId !== undefined) updates.myTischtennisClubId = myTischtennisClubId || null; if (myTischtennisFedNickname !== undefined) updates.myTischtennisFedNickname = myTischtennisFedNickname || null; if (autoFetchRankings !== undefined) updates.autoFetchRankings = !!autoFetchRankings; return await club.update(updates); diff --git a/backend/services/memberService.js b/backend/services/memberService.js index f908a8ab..f18c4066 100644 --- a/backend/services/memberService.js +++ b/backend/services/memberService.js @@ -396,14 +396,14 @@ class MemberService { }; } - const effectiveClubId = (club.myTischtennisClubId || '').trim() || account.clubId; + const effectiveClubId = (club.associationMemberNumber || '').trim() || account.clubId; const effectiveFedNickname = (club.myTischtennisFedNickname || '').trim() || account.fedNickname; if (!effectiveClubId || !effectiveFedNickname) { console.error('[updateRatingsFromMyTischtennis] - Missing clubId or fedNickname:', { clubId: effectiveClubId, fedNickname: effectiveFedNickname, - fromClub: !!(club.myTischtennisClubId && club.myTischtennisFedNickname) + fromClub: !!(club.associationMemberNumber && club.myTischtennisFedNickname) }); return { status: 400, diff --git a/frontend/src/i18n/locales/de.json b/frontend/src/i18n/locales/de.json index 079be8e4..dc75b1f0 100644 --- a/frontend/src/i18n/locales/de.json +++ b/frontend/src/i18n/locales/de.json @@ -741,10 +741,9 @@ "myTischtennisRankings": "myTischtennis TTR/QTTR-Ranglisten", "myTischtennisRankingsHint": "Automatischer Abruf der Vereins-Rangliste für TTR- und QTTR-Updates der Mitglieder.", "autoFetchRankings": "Ranglisten automatisch abrufen", - "myTischtennisClubId": "myTischtennis Vereinsnummer", - "myTischtennisClubIdPlaceholder": "z. B. 43030", "myTischtennisFedNickname": "Verbandskürzel", - "myTischtennisFedNicknamePlaceholder": "z. B. HeTTV" + "myTischtennisFedNicknamePlaceholder": "z. B. HeTTV", + "rankingsUsesAssociationNumber": "Die Vereinsnummer für den Ranglisten-Abruf entspricht der Verbands-Mitgliedsnummer oben." }, "predefinedActivities": { "title": "Vordefinierte Aktivitäten", diff --git a/frontend/src/views/ClubSettings.vue b/frontend/src/views/ClubSettings.vue index 9e22f39b..97429a0c 100644 --- a/frontend/src/views/ClubSettings.vue +++ b/frontend/src/views/ClubSettings.vue @@ -61,15 +61,12 @@
{{ $t('clubSettings.rankingsUsesAssociationNumber') }}