From 5ae961f83b8528fd9b7dd5cbe32d3e03fd0f0e53 Mon Sep 17 00:00:00 2001 From: llaffont <llaffont@git-test.afi-sa.fr> Date: Mon, 20 Aug 2012 16:59:55 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20v=C3=A9rification=20d=C3=A9roulement=20?= =?UTF-8?q?workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../opac/controllers/AbonneController.php | 17 ++++++- categories.org | 8 ++-- .../AbonneControllerMultimediaTest.php | 47 +++++++++++++++++++ 3 files changed, 67 insertions(+), 5 deletions(-) diff --git a/application/modules/opac/controllers/AbonneController.php b/application/modules/opac/controllers/AbonneController.php index c33fe5677e3..07c9ac49f72 100644 --- a/application/modules/opac/controllers/AbonneController.php +++ b/application/modules/opac/controllers/AbonneController.php @@ -602,7 +602,21 @@ class AbonneController extends Zend_Controller_Action { public function multimediaHoldGroupAction() { $bean = $this->_getDeviceHoldBean(); $namespace = $this->_getSessionNamespace(); - $location = Class_Multimedia_Location::find((int)$bean->location); + + if (null == ($location = Class_Multimedia_Location::getLoader()->find((int)$bean->location))) { + $this->_redirect('/abonne/multimedia-hold-location'); + return; + } + + if ('' == $bean->day) { + $this->_redirect('/abonne/multimedia-hold-day'); + return; + } + + if ('' == $bean->time || 0 == $bean->duration) { + $this->_redirect('/abonne/multimedia-hold-hours'); + return; + } if ($this->_getParam('group')) { $bean->group = $this->_getParam('group'); @@ -610,7 +624,6 @@ class AbonneController extends Zend_Controller_Action { return; } - $this->view->groups = $location->getGroups(); $this->view->timelineActions = $this->_getTimelineActions('group'); } diff --git a/categories.org b/categories.org index cf69259ed37..ca1488e7bd5 100644 --- a/categories.org +++ b/categories.org @@ -29,7 +29,7 @@ cf [[file:application/modules/opac/controllers/AbonneController.php::and%20null% [[file:library/Class/Multimedia/Device.php::public%20function%20autoHoldByUser($user,%20$current_hold)%20{][Device autoHoldByUser]] [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaAuthenticateLaurentTest%20extends%20AbonneControllerMultimediaAuthenticateValidTestCase%20{][Tests autoHold]] - [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::protected%20function%20_prepareLocationInSession()%20{][TestCase de base]] *** TODO Ajouter la vérification du quota (factoriser avec [[file:application/modules/opac/controllers/AbonneController.php::/*%20V%C3%A9rification%20du%20quota%20sur%20le%20jour%20choisi%20*/][ce qui est fait dans AbonneController]] (en fait déjà dans [[file:library/Class/Users.php::public%20function%20getMultimediaQuotaErrorForDay($day)%20{][Users::getMultimediaQuotaErrorForDay]] -** Réservation d'un poste [1/3] +** Réservation d'un poste [2/3] [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::abstract%20class%20AbonneControllerMultimediaAuthenticateTestCase%20extends%20AbstractControllerTestCase%20{][Test controller Abonne]] *** [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldLocationTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][1er écran choix du lieu]] *** TODO [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldDayTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][2nd écran choix du jour]] - [[file:application/modules/opac/controllers/AbonneController.php::public%20function%20multimediaHoldDayAction()%20{][action controller]] [1/2] @@ -43,8 +43,10 @@ cf [[file:application/modules/opac/controllers/AbonneController.php::and%20null% CLOSED: [2012-08-09 Thu 18:55] -*** TODO [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldDeviceTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][4ème écran choix du poste]] [0/1] -**** TODO Rajouter un écran choix de groupe + schuffle des postes que pour un groupe donné [[file:library/Class/Multimedia/Location.php::public%20function%20getHoldableDevicesForDateTimeAndDuration($date,%20$time,%20$duration)%20{][Recherche des postes pour horaire donné]] +*** DONE [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldDeviceTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][4ème écran choix du poste]] [1/1] + CLOSED: [2012-08-20 Mon 17:39] +**** DONE Rajouter un écran choix de groupe + schuffle des postes que pour un groupe donné [[file:library/Class/Multimedia/Location.php::public%20function%20getHoldableDevicesForDateTimeAndDuration($date,%20$time,%20$duration)%20{][Recherche des postes pour horaire donné]] + CLOSED: [2012-08-20 Mon 17:39] *** [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldConfirmTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][5ème écran confirmation]] ** TODO Fiche abonné: afficher conso + temps restant par jour / semaine / mois diff --git a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php index d5ca00dcc85..79eac507b6b 100644 --- a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php +++ b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php @@ -850,6 +850,38 @@ class AbonneControllerMultimediaHoldGroupChoiceTest extends AbonneControllerMult +/* Quatrième écran validation du choix du groupe de postes, redirection vers le choix du poste */ +class AbonneControllerMultimediaHoldGroupChoiceErrorTest extends AbonneControllerMultimediaHoldTestCase { + /** @test */ + public function withoutHoursShouldRedirectToHoldHours() { + $this->_prepareLocationInSession(); + $this->_prepareDayInSession(); + $this->dispatch('/abonne/multimedia-hold-group/group/5', true); + $this->assertRedirectTo('/abonne/multimedia-hold-hours'); + } + + + /** @test */ + public function withoutDayShouldRedirectToHoldDay() { + $this->_prepareLocationInSession(); + $this->_prepareTimeAndDurationInSession(); + $this->dispatch('/abonne/multimedia-hold-group/group/5', true); + $this->assertRedirectTo('/abonne/multimedia-hold-day'); + } + + + /** @test */ + public function withoutLocationShouldRedirectToHoldLocation() { + $this->_prepareDayInSession(); + $this->_prepareTimeAndDurationInSession(); + $this->dispatch('/abonne/multimedia-hold-group/group/5', true); + $this->assertRedirectTo('/abonne/multimedia-hold-location'); + } +} + + + + /* Cinquième écran choix du poste */ class AbonneControllerMultimediaHoldDeviceTest extends AbonneControllerMultimediaHoldTestCase { public function setUp() { @@ -914,6 +946,21 @@ class AbonneControllerMultimediaHoldDeviceChoiceTest extends AbonneControllerMul +class AbonneControllerMultimediaHoldDeviceChoiceErrorTest extends AbonneControllerMultimediaHoldTestCase { + /** @test */ + public function withoutGroupShouldRedirectToHoldGroup() { + parent::setUp(); + $this->_prepareLocationInSession(); + $this->_prepareDayInSession(); + $this->_prepareTimeAndDurationInSession(); + $this->dispatch('/abonne/multimedia-hold-device/device/1', true); + $this->assertRedirectTo('/abonne/multimedia-hold-group'); + } +} + + + + /* Sixième écran confirmation de la réservation */ class AbonneControllerMultimediaHoldConfirmTest extends AbonneControllerMultimediaHoldTestCase { public function setUp() { -- GitLab