diff --git a/library/Class/Systeme/ModulesAccueil/Calendrier.php b/library/Class/Systeme/ModulesAccueil/Calendrier.php index 662bd0b4bd0dd7040521f6f227370beb0e2356ff..8b9ac8f4d2eb94849b70805506f88f78b92dcbdc 100644 --- a/library/Class/Systeme/ModulesAccueil/Calendrier.php +++ b/library/Class/Systeme/ModulesAccueil/Calendrier.php @@ -69,7 +69,7 @@ class Class_Systeme_ModulesAccueil_Calendrier extends Class_Systeme_ModulesAccue public function getAvailableFilters() { $available_filters = [ - 'month' => $this->_('Mois'), + 'date' => $this->_('Mois'), 'place' => $this->_('Lieu'), ]; $custom_fields = Class_CustomField_Model::getModel('Article')->getFields(); diff --git a/library/ZendAfi/View/Helper/Calendar/RenderFilters.php b/library/ZendAfi/View/Helper/Calendar/RenderFilters.php index 8b202809c2e780730645816d40c4e80e4f477962..46ee3e0b94884bc9683826f18f8dcabc00cfed94 100644 --- a/library/ZendAfi/View/Helper/Calendar/RenderFilters.php +++ b/library/ZendAfi/View/Helper/Calendar/RenderFilters.php @@ -91,6 +91,8 @@ abstract class ZendAfi_View_Helper_Calendar_FilterElements { if (preg_match('/^custom_field_(\d+)/', $filter, $matches)) return new ZendAfi_View_Helper_Calendar_FilterElementsCustomField($matches[1]); $class = 'ZendAfi_View_Helper_Calendar_FilterElements' . ucfirst($filter); + if (!class_exists($class)) + $class = 'ZendAfi_View_Helper_Calendar_FilterElementsNull'; return new $class(); } @@ -98,25 +100,31 @@ abstract class ZendAfi_View_Helper_Calendar_FilterElements { } +class ZendAfi_View_Helper_Calendar_FilterElementsNull extends ZendAfi_View_Helper_Calendar_FilterElements { + public function elements() { + return []; + } +} -class ZendAfi_View_Helper_Calendar_FilterElementsMonth extends ZendAfi_View_Helper_Calendar_FilterElements { +class ZendAfi_View_Helper_Calendar_FilterElementsDate extends ZendAfi_View_Helper_Calendar_FilterElements { use Trait_Translator; public function elements() { + $current_year = date("Y").'-'; return [ - '1' => $this->_('Janvier'), - '2' => $this->_('Février'), - '3' => $this->_('Mars'), - '4' => $this->_('Avril'), - '5' => $this->_('Mai'), - '6' => $this->_('Juin'), - '7' => $this->_('Juillet'), - '8' => $this->_('Août'), - '9' => $this->_('Septembre'), - '10' => $this->_('Octobre'), - '11' => $this->_('Novembre'), - '12' => $this->_('Décembre'), + $current_year.'01' => $this->_('Janvier'), + $current_year.'02' => $this->_('Février'), + $current_year.'03' => $this->_('Mars'), + $current_year.'04' => $this->_('Avril'), + $current_year.'05' => $this->_('Mai'), + $current_year.'06' => $this->_('Juin'), + $current_year.'07' => $this->_('Juillet'), + $current_year.'08' => $this->_('Août'), + $current_year.'09' => $this->_('Septembre'), + $current_year.'10' => $this->_('Octobre'), + $current_year.'11' => $this->_('Novembre'), + $current_year.'12' => $this->_('Décembre'), ]; } } diff --git a/tests/application/modules/admin/controllers/AccueilControllerCalendarTest.php b/tests/application/modules/admin/controllers/AccueilControllerCalendarTest.php index 7d69523e49c5989932e116fef150315820c31e0c..82fbe911de5114d79464700020f18aef7ddeca01 100644 --- a/tests/application/modules/admin/controllers/AccueilControllerCalendarTest.php +++ b/tests/application/modules/admin/controllers/AccueilControllerCalendarTest.php @@ -16,15 +16,15 @@ * * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE * along with AFI-OPAC 2.0; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ class Admin_AccueilControllerCalendarTestWithDefaultDiaporamaNavigation extends Admin_AbstractControllerTestCase { - + public function setUp() { parent::setUp(); - + Class_CustomField_Meta::beVolatile(); $this->fixture('Class_CustomField', @@ -42,7 +42,7 @@ class Admin_AccueilControllerCalendarTestWithDefaultDiaporamaNavigation extends 'options_list' => 'music;theater;movie', 'model' => 'Article']); - $this->fixture('Class_Profil', + $this->fixture('Class_Profil', ['id' => 1, 'libelle' => 'Afibre']) ->updateModuleConfigAccueil(1, ['type_module' => 'CALENDRIER', @@ -57,7 +57,7 @@ class Admin_AccueilControllerCalendarTestWithDefaultDiaporamaNavigation extends 'display_mode' => 'Summary', 'display_order' => 'EventDebut', 'display_cat_select' => '', - 'enabled_filters' => 'month;place;custom_field_1', + 'enabled_filters' => 'date;place;custom_field_1', 'id_categorie' => '', 'event_filter' => 'none' ]]) @@ -66,7 +66,7 @@ class Admin_AccueilControllerCalendarTestWithDefaultDiaporamaNavigation extends $this->dispatch('admin/accueil/calendrier?config=accueil&id_profil=1&id_module=1&type_module=CALENDRIER', true); } - + /** @test */ public function settingsEventFilterToDisplayShouldBePresent() { $this->assertXPath('//td[contains(text(),"Filtre")]/following-sibling::td/select[@name="event_filter"]/option[@value="none"][@selected="selected"]', $this->_response->getBody()); @@ -113,7 +113,7 @@ class Admin_AccueilControllerCalendarTestWithDefaultDiaporamaNavigation extends /** @test */ public function secondListShouldContainsMonthPlaceAndPublic() { $this->assertXPathContentContains('//div[@id="input_enabled_filters"]/div[2]/ul/li[@data-value="custom_field_1"]', 'Public'); - $this->assertXPathContentContains('//div[@id="input_enabled_filters"]/div[2]/ul/li[@data-value="month"]', 'Mois'); + $this->assertXPathContentContains('//div[@id="input_enabled_filters"]/div[2]/ul/li[@data-value="date"]', 'Mois'); $this->assertXPathContentContains('//div[@id="input_enabled_filters"]/div[2]/ul/li[@data-value="place"]', 'Lieu'); } diff --git a/tests/application/modules/opac/controllers/CmsControllerCalendarActionTest.php b/tests/application/modules/opac/controllers/CmsControllerCalendarActionTest.php index af4a3221ce7fafa8f29a7be79373ec5a96cc787f..4356a399d87f779b0f773714edd0de1f8d6de72d 100644 --- a/tests/application/modules/opac/controllers/CmsControllerCalendarActionTest.php +++ b/tests/application/modules/opac/controllers/CmsControllerCalendarActionTest.php @@ -35,7 +35,7 @@ abstract class CmsControllerCalendarActionTestCase extends AbstractControllerTes 'rss_avis' => false, 'id_categorie' => '12-2', 'display_cat_select' => true, - 'enabled_filters' => 'month;place;custom_field_2', + 'enabled_filters' => 'date;place;custom_field_2;zork', 'display_event_info' => 'none']]], 'options' => []]; @@ -160,7 +160,7 @@ class CmsControllerCalendarActionWithFiltersTest extends CmsControllerCalendarAc 'events_only' => true, 'id_bib' => 0, 'custom_fields' => [ - 2 => 'music', + 2 => 'opac', ], 'published' => false]; @@ -178,7 +178,7 @@ class CmsControllerCalendarActionWithFiltersTest extends CmsControllerCalendarAc ->answers([]) ->beStrict(); - $this->dispatch('/cms/calendar/date/2014-08/custom_field_2/music', true); + $this->dispatch('/cms/calendar/id_profil/3/id_module/1/date/2014-08/custom_field_2/opac/render/ajax', true); } @@ -187,6 +187,21 @@ class CmsControllerCalendarActionWithFiltersTest extends CmsControllerCalendarAc $this->assertXPathContentContains('//a[@class="calendar_event_title"]', 'OPAC 4 en prod !'); } + + + /** @test */ + public function monthFilterShouldContainsCustomField2Music() { + $this->assertXPathContentContains('//ul[@class="date"]//a[contains(@href, "/cms/calendar/id_module/1/custom_field_2/opac/date/2014-11")]', + 'Novembre'); + } + + + /** @test */ + public function themeFilterShouldContainsDate2014_08() { + $this->assertXPathContentContains('//ul[@class="custom_field_2"]//li//a[contains(@href, "/cms/calendar/id_module/1/date/2014-08/custom_field_2/sigb")]', + 'sigb'); + } + } -?> +?> \ No newline at end of file diff --git a/tests/library/ZendAfi/View/Helper/Accueil/CalendarTest.php b/tests/library/ZendAfi/View/Helper/Accueil/CalendarTest.php index 39e1144382213d769901fea8aceb50a1b8a591f0..3e84af67378b334a2c8b798192c635c292ae5234 100644 --- a/tests/library/ZendAfi/View/Helper/Accueil/CalendarTest.php +++ b/tests/library/ZendAfi/View/Helper/Accueil/CalendarTest.php @@ -1001,7 +1001,7 @@ class CalendarHelperWithFiltersTest extends CalendarHelperDisplayModeTestCase { 'value' => 'theater']); - $params['preferences']['enabled_filters'] = ';month;place;custom_field_2'; + $params['preferences']['enabled_filters'] = ';date;place;custom_field_2'; } @@ -1018,15 +1018,15 @@ class CalendarHelperWithFiltersTest extends CalendarHelperDisplayModeTestCase { /** @test */ - public function MonthFilterShouldContainsAllMonths() { + public function dateFilterShouldContainsAllMonths() { $this->assertXPathCount($this->html, - '//div[@class="filters"]/ul[@class="month"]/li', 12); + '//div[@class="filters"]/ul[@class="date"]/li', 12); $this->assertXPathContentContains($this->html, - '//div[@class="filters"]/ul[@class="month"]/li[1]/a[contains(@href, "month/1")]', 'Janvier'); + '//div[@class="filters"]/ul[@class="date"]/li[1]/a[contains(@href, "date/2014-01")]', 'Janvier'); $this->assertXPathContentContains($this->html, - '//div[@class="filters"]/ul[@class="month"]/li[11]/a[contains(@href, "month/11")]', 'Novembre'); + '//div[@class="filters"]/ul[@class="date"]/li[11]/a[contains(@href, "date/2014-11")]', 'Novembre'); } /** @test */