From bcbd3bfb58fcacfc2592bc3c7ed46d291c42afe9 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 29 Jun 2022 13:39:41 +0200 Subject: [PATCH] (bug) invalid users are reported in search --- CHANGELOG.md | 1 + app/controllers/api/members_controller.rb | 2 +- app/frontend/src/javascript/api/credit.ts | 0 .../dashboard/reservations/credits-panel.tsx | 0 .../src/javascript/controllers/projects.js | 2 +- app/frontend/src/javascript/models/credit.ts | 0 .../dashboard/reservations/credits-panel.scss | 0 .../reservations/reservations-dashboard.scss | 0 app/services/members/list_service.rb | 8 +++----- app/views/api/credits/_credit.json.jbuilder | 0 app/views/api/credits/user_resource.json.jbuilder | 8 ++++++++ test/integration/credits/user_info_test.rb | 15 +++++++++++++++ 12 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 app/frontend/src/javascript/api/credit.ts create mode 100644 app/frontend/src/javascript/components/dashboard/reservations/credits-panel.tsx create mode 100644 app/frontend/src/javascript/models/credit.ts create mode 100644 app/frontend/src/stylesheets/modules/dashboard/reservations/credits-panel.scss create mode 100644 app/frontend/src/stylesheets/modules/dashboard/reservations/reservations-dashboard.scss create mode 100644 app/views/api/credits/_credit.json.jbuilder create mode 100644 app/views/api/credits/user_resource.json.jbuilder create mode 100644 test/integration/credits/user_info_test.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index 7610cfd8e..f631adc4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - My reservations dashboard - Fix a bug: unable to reserve a space +- Fix a bug: invalid users are reported in search - Added a test case for space reservation ## v5.4.7 2022 June 29 diff --git a/app/controllers/api/members_controller.rb b/app/controllers/api/members_controller.rb index 7de54207c..ad314c520 100644 --- a/app/controllers/api/members_controller.rb +++ b/app/controllers/api/members_controller.rb @@ -180,7 +180,7 @@ class API::MembersController < API::ApiController end def search - @members = Members::ListService.search(current_user, params[:query], params[:subscription], params[:project]) + @members = Members::ListService.search(current_user, params[:query], params[:subscription], params[:include_admins]) end def mapping diff --git a/app/frontend/src/javascript/api/credit.ts b/app/frontend/src/javascript/api/credit.ts new file mode 100644 index 000000000..e69de29bb diff --git a/app/frontend/src/javascript/components/dashboard/reservations/credits-panel.tsx b/app/frontend/src/javascript/components/dashboard/reservations/credits-panel.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/app/frontend/src/javascript/controllers/projects.js b/app/frontend/src/javascript/controllers/projects.js index dc0ae9f51..fbc18796c 100644 --- a/app/frontend/src/javascript/controllers/projects.js +++ b/app/frontend/src/javascript/controllers/projects.js @@ -231,7 +231,7 @@ class ProjectsController { const asciiName = Diacritics.remove(nameLookup); Member.search( - { query: asciiName, project: 'true' }, + { query: asciiName, include_admins: 'true' }, function (users) { $scope.matchingMembers = users; }, function (error) { console.error(error); } ); diff --git a/app/frontend/src/javascript/models/credit.ts b/app/frontend/src/javascript/models/credit.ts new file mode 100644 index 000000000..e69de29bb diff --git a/app/frontend/src/stylesheets/modules/dashboard/reservations/credits-panel.scss b/app/frontend/src/stylesheets/modules/dashboard/reservations/credits-panel.scss new file mode 100644 index 000000000..e69de29bb diff --git a/app/frontend/src/stylesheets/modules/dashboard/reservations/reservations-dashboard.scss b/app/frontend/src/stylesheets/modules/dashboard/reservations/reservations-dashboard.scss new file mode 100644 index 000000000..e69de29bb diff --git a/app/services/members/list_service.rb b/app/services/members/list_service.rb index 961ac11ef..2731d0f3c 100644 --- a/app/services/members/list_service.rb +++ b/app/services/members/list_service.rb @@ -40,7 +40,7 @@ class Members::ListService @query end - def search(current_user, query, subscription, project) + def search(current_user, query, subscription, include_admins = 'false') members = User.includes(:profile) .joins(:profile, :statistic_profile, @@ -69,11 +69,9 @@ class Members::ListService members = members.where('subscriptions.id IS NULL OR subscriptions.expiration_date < :now', now: Date.today.to_s) end - if project == 'false' || project.blank? - members = members.where("roles.name = 'member' OR roles.name = 'manager'") - end + members = members.where("roles.name = 'member' OR roles.name = 'manager'") if include_admins == 'false' || include_admins.blank? - members.to_a + members.to_a.filter(&:valid?) end private diff --git a/app/views/api/credits/_credit.json.jbuilder b/app/views/api/credits/_credit.json.jbuilder new file mode 100644 index 000000000..e69de29bb diff --git a/app/views/api/credits/user_resource.json.jbuilder b/app/views/api/credits/user_resource.json.jbuilder new file mode 100644 index 000000000..c3ec34100 --- /dev/null +++ b/app/views/api/credits/user_resource.json.jbuilder @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +json.array!(@credits) do |credit| + json.partial! 'api/credits/credits', credit: credit + json.used_credits credit.users_credits do |uc| + json.extract! uc, :id, :created_at, :hours_used + end +end diff --git a/test/integration/credits/user_info_test.rb b/test/integration/credits/user_info_test.rb new file mode 100644 index 000000000..406fd3e4c --- /dev/null +++ b/test/integration/credits/user_info_test.rb @@ -0,0 +1,15 @@ +require 'minitest/autorun' + +class UserInfoTest < Minitest::Test + def setup + # Do nothing + end + + def teardown + # Do nothing + end + + def test + skip 'Not implemented' + end +end