From 76cc8d9c30c32c1c93bf0038caf092093deb8e04 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 18 Mar 2026 21:17:25 +0100 Subject: [PATCH] feat(MembersView, i18n): add 'activeDataIncomplete' scope and update member filtering - Introduced a new translation key for 'activeDataIncomplete' in the German locale. - Updated MembersView to include filtering for members with active status but incomplete data, enhancing member management capabilities. --- frontend/src/i18n/locales/de.json | 1 + frontend/src/views/MembersView.vue | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/frontend/src/i18n/locales/de.json b/frontend/src/i18n/locales/de.json index 30d567ce..41a17cdb 100644 --- a/frontend/src/i18n/locales/de.json +++ b/frontend/src/i18n/locales/de.json @@ -295,6 +295,7 @@ "scopeActive": "Aktiv", "scopeTest": "Probe", "scopeNeedsForm": "Formular ungeprüft", + "scopeActiveDataIncomplete": "Aktiv + Daten unvollständig", "scopeDataIncomplete": "Daten unvollständig", "scopeInactive": "Inaktiv", "resultsVisible": "Mitglieder sichtbar", diff --git a/frontend/src/views/MembersView.vue b/frontend/src/views/MembersView.vue index b1a67f75..8a10b059 100644 --- a/frontend/src/views/MembersView.vue +++ b/frontend/src/views/MembersView.vue @@ -612,6 +612,10 @@ export default { if (this.selectedMemberScope === 'dataIncomplete' && this.getMemberDataQualityIssues(member).length === 0) { return false; } + + if (this.selectedMemberScope === 'activeDataIncomplete' && (!member.active || member.testMembership || this.getMemberDataQualityIssues(member).length === 0)) { + return false; + } // Altersklasse Filter if (this.selectedAgeGroup && this.selectedAgeGroup !== 'range') { @@ -676,6 +680,7 @@ export default { { value: 'test', label: this.$t('members.scopeTest'), count: this.members.filter(member => member.testMembership).length }, { value: 'notTraining', label: this.$t('members.scopeNotTraining'), count: this.members.filter(member => member.notInTraining).length }, { value: 'needsForm', label: this.$t('members.scopeNeedsForm'), count: this.members.filter(member => !member.memberFormHandedOver).length }, + { value: 'activeDataIncomplete', label: this.$t('members.scopeActiveDataIncomplete'), count: this.members.filter(member => member.active && !member.testMembership && this.getMemberDataQualityIssues(member).length > 0).length }, { value: 'dataIncomplete', label: this.$t('members.scopeDataIncomplete'), count: this.members.filter(member => this.getMemberDataQualityIssues(member).length > 0).length }, { value: 'inactive', label: this.$t('members.scopeInactive'), count: this.members.filter(member => !member.active).length } ];