From 9201f2bf2a3c054d1ecc854d61b6fcb99c99e391 Mon Sep 17 00:00:00 2001 From: llaffont <llaffont@afi-sa.fr> Date: Thu, 26 Jun 2014 17:09:01 +0200 Subject: [PATCH] dev #12992 #14706 custom fields Usergroups have link to custom fields form --- .../admin/controllers/AccueilController.php | 3 --- .../controllers/CustomFieldsController.php | 4 +++- .../admin/controllers/UsergroupController.php | 1 + .../views/scripts/custom-fields/values.phtml | 3 +-- .../admin/views/scripts/usergroup/_form.phtml | 12 +++++++++- library/Class/CustomField/Meta.php | 6 ++--- library/Class/CustomField/Model.php | 11 ++++++---- library/Class/Rss.php | 2 +- .../CustomFieldsControllerTest.php | 22 +++++++++++++++++-- .../controllers/UserGroupControllerTest.php | 6 +++++ 10 files changed, 53 insertions(+), 17 deletions(-) diff --git a/application/modules/admin/controllers/AccueilController.php b/application/modules/admin/controllers/AccueilController.php index 495e296107d..c7975b029bd 100644 --- a/application/modules/admin/controllers/AccueilController.php +++ b/application/modules/admin/controllers/AccueilController.php @@ -50,9 +50,6 @@ class Admin_AccueilController extends Zend_Controller_Action { $this->type_module = $module_config['type_module']; } - xdebug_break(); - - $user = Class_Users::getIdentity(); if ((!$user->isAdminBib() && !$user->hasRightConfigFront()) diff --git a/application/modules/admin/controllers/CustomFieldsController.php b/application/modules/admin/controllers/CustomFieldsController.php index 13a1b6dd5a4..228d03012ef 100644 --- a/application/modules/admin/controllers/CustomFieldsController.php +++ b/application/modules/admin/controllers/CustomFieldsController.php @@ -83,9 +83,11 @@ class Admin_CustomFieldsController extends ZendAfi_Controller_Action { public function valuesAction() { $model = Class_CustomField_Model::getModel($this->_getParam('model')); + $model_values = $model->find($this->_getParam('id')); $this->view->titre = $this->view->_('Champs personnalisés: %s "%s"', strtolower($model->getLabel()), - $model->find($this->_getParam('id'))->getLabel()); + $model_values->getLabel()); + $this->view->form = new ZendAfi_Form_Admin_CustomFields_ModelValues(['model_values' => $model_values]); } } ?> \ No newline at end of file diff --git a/application/modules/admin/controllers/UsergroupController.php b/application/modules/admin/controllers/UsergroupController.php index 75e04e2b353..06e5dd95be8 100644 --- a/application/modules/admin/controllers/UsergroupController.php +++ b/application/modules/admin/controllers/UsergroupController.php @@ -64,6 +64,7 @@ class Admin_UsergroupController extends ZendAfi_Controller_Action { } $this->view->titre = "Modifier le groupe d'utilisateurs: ".$group->getLibelle(); + $this->view->group = $group; $this->_setupGroupFormAndSave('edit', $group); } diff --git a/application/modules/admin/views/scripts/custom-fields/values.phtml b/application/modules/admin/views/scripts/custom-fields/values.phtml index 6ae303218e5..c52ca489f90 100644 --- a/application/modules/admin/views/scripts/custom-fields/values.phtml +++ b/application/modules/admin/views/scripts/custom-fields/values.phtml @@ -1,2 +1 @@ -<?php -?> +<?php echo $this->renderForm($this->form); ?> diff --git a/application/modules/admin/views/scripts/usergroup/_form.phtml b/application/modules/admin/views/scripts/usergroup/_form.phtml index dc46f2831c7..c155698aa8b 100644 --- a/application/modules/admin/views/scripts/usergroup/_form.phtml +++ b/application/modules/admin/views/scripts/usergroup/_form.phtml @@ -1 +1,11 @@ -<?php echo $this->renderForm($this->form); ?> \ No newline at end of file +<?php +if ($this->group) { + echo $this->tagAnchor($this->url(['module' => 'admin', + 'controller' => 'custom-fields', + 'action' => 'values', + 'model' => 'UserGroup', + 'id' => $this->group->getId()], null, true), + $this->_('Champs personnalisés')); +} +echo $this->renderForm($this->form); +?> diff --git a/library/Class/CustomField/Meta.php b/library/Class/CustomField/Meta.php index 4518c9a50f0..23da3ad537d 100644 --- a/library/Class/CustomField/Meta.php +++ b/library/Class/CustomField/Meta.php @@ -24,9 +24,9 @@ class Class_CustomField_Meta extends Storm_Model_Abstract { use Trait_Translator; const - TEXT_INPUT = 'TEXT_INPUT', - TEXT_AREA = 'TEXT_AREA', - SELECT = 'SELECT'; + TEXT_INPUT = 'text', + TEXT_AREA = 'textarea', + SELECT = 'select'; protected static $_models = []; diff --git a/library/Class/CustomField/Model.php b/library/Class/CustomField/Model.php index 9e0c8457898..47128e4b64b 100644 --- a/library/Class/CustomField/Model.php +++ b/library/Class/CustomField/Model.php @@ -78,18 +78,21 @@ class Class_CustomField_Model { public function getItems() { - return Class_CustomField::findAllBy(['where' => 'model = "'.$this->_class_name.'"', + return $this->getFields(); + } + + public function getFields() { + return Class_CustomField::findAllBy(['model' => $this->_class_name, 'order' => 'priority']); } public function find($id) { $loader = call_user_func([self::CLASS_PREFIX.$this->_class_name, 'getLoader']); - xdebug_break(); - return $loader->find($id); + return new Class_CustomField_ModelValues($loader->find($id), $this); } - + public function getSousCategories() { return []; } diff --git a/library/Class/Rss.php b/library/Class/Rss.php index 3944a632fba..c04d5648a09 100644 --- a/library/Class/Rss.php +++ b/library/Class/Rss.php @@ -575,7 +575,7 @@ class Class_Rss extends Storm_Model_Abstract { { $niveau=0; $id=0; $html= '<ul class="treeMenu">'; - xdebug_break(); + if(count($this->arbre_array) > 0){ foreach($this->arbre_array as $menu) { diff --git a/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php b/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php index b3fd90915d7..4d4d985b679 100644 --- a/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php +++ b/tests/application/modules/admin/controllers/CustomFieldsControllerTest.php @@ -57,14 +57,14 @@ abstract class CustomFieldControllerTestCase extends AbstractControllerTestCase ['id' => 4, 'priority' => 2, 'label' => 'Age', - 'field_type' => Class_CustomField_Meta::TEXT_INPUT, + 'field_type' => Class_CustomField_Meta::TEXT_AREA, 'model' => 'UserGroup']); $this->fixture('Class_CustomField', ['id' => 5, 'priority' => 3, 'label' => 'Status', - 'field_type' => Class_CustomField_Meta::TEXT_INPUT, + 'field_type' => Class_CustomField_Meta::SELECT, 'model' => 'UserGroup']); } } @@ -400,6 +400,24 @@ class CustomFieldsControllerValuesForUserGroupTeachersTest extends CustomFieldCo public function titleShouldBeCustomFieldsForUserGroupTeacher() { $this->assertXPathContentContains('//h1', 'Champs personnalisés: groupe d\'utilisateurs "Teachers"'); } + + + /** @test */ + public function addressInputShouldBePresentOnce() { + $this->assertXPathCount('//label[contains(text(), "Address")]', 1); + + } + + /** @test */ + public function inputForAddressShouldBePresent() { + $this->assertXPath('//form//fieldset//input[@name="field_3"]'); + } + + + /** @test */ + public function textAreaForAgeShouldBePresent() { + $this->assertXPath('//form//fieldset//textarea[@name="field_4"]'); + } } diff --git a/tests/application/modules/admin/controllers/UserGroupControllerTest.php b/tests/application/modules/admin/controllers/UserGroupControllerTest.php index 0cf61b87d83..05eadd82ce5 100644 --- a/tests/application/modules/admin/controllers/UserGroupControllerTest.php +++ b/tests/application/modules/admin/controllers/UserGroupControllerTest.php @@ -414,6 +414,12 @@ class Admin_UserGroupControllerEditGroupStagiairesTest extends Admin_UserGroupCo $this->dispatch('admin/usergroup/edit/id/3', true); } + + /** @test */ + public function linkToEditCustomFieldsShouldBePresent() { + $this->assertXPath('//a[contains(@href, "admin/custom-fields/values/model/UserGroup/id/3")]'); + } + /** @test */ public function inputLibelleShouldContainsStagiaires() { -- GitLab