diff --git a/CHANGELOG.md b/CHANGELOG.md index cf45f7433..801a022b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## next deploy - Fix a bug: for project categories, if there is no category : do not show categories panel in show view, do not show categories input field in edit view +- Feature: add a filter in members list (admin) to show only "not validated" members ## v6.0.13 2023 August 28 diff --git a/app/frontend/src/javascript/controllers/admin/members.js b/app/frontend/src/javascript/controllers/admin/members.js index e26a3da48..3957098d2 100644 --- a/app/frontend/src/javascript/controllers/admin/members.js +++ b/app/frontend/src/javascript/controllers/admin/members.js @@ -163,6 +163,8 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce', // is user validation required $scope.enableUserValidationRequired = (settingsPromise.user_validation_required === 'true'); + if ($scope.enableUserValidationRequired) { $scope.member.memberFilters.push('not_validated'); } + // should we display the username in the list? $scope.displayUsername = (settingsPromise.show_username_in_admin_list === 'true'); diff --git a/app/models/user.rb b/app/models/user.rb index 8568a444a..a261ea626 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -89,6 +89,7 @@ class User < ApplicationRecord scope :with_subscription, -> { joins(statistic_profile: [:subscriptions]) } scope :not_confirmed, -> { where(confirmed_at: nil) } scope :inactive_for_3_years, -> { where('users.last_sign_in_at < ?', 3.years.ago) } + scope :not_validated, -> { where(validated_at: nil) } def to_json(*) ApplicationController.new.view_context.render( diff --git a/app/services/members/list_service.rb b/app/services/members/list_service.rb index 6ed15eefd..9c65396c0 100644 --- a/app/services/members/list_service.rb +++ b/app/services/members/list_service.rb @@ -35,7 +35,7 @@ class Members::ListService 'plans.base_name ILIKE :search', search: "%#{params[:search]}%") end - filter = params[:filter].presence_in(%w[inactive_for_3_years not_confirmed]) || nil + filter = params[:filter].presence_in(%w[inactive_for_3_years not_confirmed not_validated]) || nil @query = @query.send(filter) if filter @query diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index 3337227c9..88d645082 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -1192,6 +1192,7 @@ en: member_filter_all: "All" member_filter_not_confirmed: "Unconfirmed" member_filter_inactive_for_3_years: "Inactive for 3 years" + member_filter_not_validated: "Not validated" #add a member members_new: add_a_member: "Add a member" diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index e00773f47..bf0063c4d 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -1192,6 +1192,7 @@ fr: member_filter_all: "Tous" member_filter_not_confirmed: "Non confirmés" member_filter_inactive_for_3_years: "Inactifs depuis 3 ans" + member_filter_not_validated: "Non validés" #add a member members_new: add_a_member: "Ajouter un membre"