From c4cc64a51f31d540cdcb1f639e31935cafdb234f Mon Sep 17 00:00:00 2001 From: Alex Arnaud <alex.arnaud@biblibre.com> Date: Wed, 12 Mar 2025 15:33:15 +0100 Subject: [PATCH] hotline#218050 : Session activity form : don't show queue message if total max is over 0 --- VERSIONS_HOTLINE/218050 | 1 + library/Class/SessionActivity.php | 1 + ...ActivitiesWithQueueAndZeroTotalMaxTest.php | 88 +++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 VERSIONS_HOTLINE/218050 create mode 100644 tests/scenarios/Activities/ActivitiesWithQueueAndZeroTotalMaxTest.php diff --git a/VERSIONS_HOTLINE/218050 b/VERSIONS_HOTLINE/218050 new file mode 100644 index 00000000000..021670660d8 --- /dev/null +++ b/VERSIONS_HOTLINE/218050 @@ -0,0 +1 @@ + - correctif #218050 : Formulaire d'inscritpion à une session : n'affiche pas le message de placement en attente si le total max est à 0. \ No newline at end of file diff --git a/library/Class/SessionActivity.php b/library/Class/SessionActivity.php index 088161eb624..9843734d635 100644 --- a/library/Class/SessionActivity.php +++ b/library/Class/SessionActivity.php @@ -763,6 +763,7 @@ class Class_SessionActivity extends Storm_Model_Abstract { public function acceptAttendeesOnlyInQueue(): bool { return $this->getQueueAttendees() + && $this->getEffectifTotalMax() > 0 && ($this->getTotalRegistered() >= $this->getEffectifTotalMax()); } diff --git a/tests/scenarios/Activities/ActivitiesWithQueueAndZeroTotalMaxTest.php b/tests/scenarios/Activities/ActivitiesWithQueueAndZeroTotalMaxTest.php new file mode 100644 index 00000000000..c35dfe881a2 --- /dev/null +++ b/tests/scenarios/Activities/ActivitiesWithQueueAndZeroTotalMaxTest.php @@ -0,0 +1,88 @@ +<?php +/** + * Copyright (c) 2012-2025, Agence Française Informatique (AFI). All rights reserved. + * + * BOKEH is free software; you can redistribute it and/or modify + * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by + * the Free Software Foundation. + * + * There are special exceptions to the terms and conditions of the AGPL as it + * is applied to this software (see README file). + * + * BOKEH is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE + * along with BOKEH; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +class ActivitiesWithQueueAndZeroTotalMaxTest extends AbstractControllerTestCase +{ + public function setUp(): void + { + parent::setUp(); + $this->_buildTemplateProfil(['id' => 1]); + $time = new TimeSourceForTest('2024-04-01 14:00:00'); + + Class_Activity::setTimeSource($time); + Class_SessionActivity::setTimeSource($time); + Class_SessionActivityInscription::setTimeSource($time); + + Class_AdminVar::set('ACTIVITY', '1'); + Class_AdminVar::set('ACTIVITY_SESSION_QUOTAS', '1'); + + $groupe = $this->fixture(Class_UserGroup::class, + ['id' => 12, + 'libelle' => 'Stagiaires', + 'rights' => [Class_UserGroup::RIGHT_SUIVRE_ACTIVITY]]); + + $user = $this->fixture(Class_Users::class, + ['id' => 435, + 'prenom' => 'Chichi', + 'nom' => 'Ro', + 'login' => 'Chichiro', + 'password' => 'pwd', + 'mail' => 'chichi@ro.fr', + 'id_site' => 12, + 'user_groups' => [$groupe]]); + + ZendAfi_Auth::getInstance()->logUser($user); + + $this->fixture(Class_Activity::class, + ['id' => 33, + 'libelle' => 'Apprendre à nager']); + + $this->fixture(Class_SessionActivity::class, + ['id' => 35, + 'activity_id' => 33, + 'date_debut' => '2024-04-20', + 'date_fin' => '2024-04-20', + 'effectif_min' => 0, + 'effectif_max' => 3, + 'effectif_child_min' => 0, + 'effectif_child_max' => 0, + 'age_child_max' => 0, + 'effectif_inscription_max' => 2, + 'effectif_inscription_child_max' => 0, + 'effectif_total_min' => 0, + 'effectif_total_max' => 0, + 'duree'=> 2, + 'contenu' => 'Intro à la natation', + 'horaires' => '9h', + 'date_limite_inscription'=>'2024-04-19', + 'queue_attendees' => true + ]); + + $this->dispatch('/opac/abonne/inscrire-session/id/35'); + } + + /** @test */ + public function messageYouWillBePutInQueueShouldNotBeDisplayed() + { + $this->assertNotXpathContentContains('//div', 'Vous serez placé.e en liste d\'attente'); + } +} -- GitLab