diff --git a/VERSIONS_HOTLINE/68332 b/VERSIONS_HOTLINE/68332 new file mode 100644 index 0000000000000000000000000000000000000000..1644e40f6bb123e5cdcef4e058a015a75ff5f51f --- /dev/null +++ b/VERSIONS_HOTLINE/68332 @@ -0,0 +1 @@ + - ticket #68332 : lorsqu'un article est supprimé, correction de la suppression des valeurs des champs personnalisés associés \ No newline at end of file diff --git a/library/ZendAfi/Controller/Plugin/Manager/Article.php b/library/ZendAfi/Controller/Plugin/Manager/Article.php index aa5ff885750b45aedec6c8a9366a25e88a8297fa..e68a7a615f1c1479a4240f3b8a78169c42e4abc0 100644 --- a/library/ZendAfi/Controller/Plugin/Manager/Article.php +++ b/library/ZendAfi/Controller/Plugin/Manager/Article.php @@ -94,6 +94,8 @@ class ZendAfi_Controller_Plugin_Manager_Article extends ZendAfi_Controller_Plugi return; } + $values = $this->_getCustomFieldModelValues($article); + $values->deleteValues(); $article->delete(); $this->withOtherPluginsDo(function($plugin) use($article) { diff --git a/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php b/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php index eeb207fef6c5a26fb76bb83b7662195270ebb2f3..de9e0bcb4b9b6d995d496c3d85c7716fa07f0cfa 100644 --- a/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php +++ b/tests/application/modules/admin/controllers/CmsControllerCustomFieldsTest.php @@ -56,7 +56,7 @@ abstract class CmsControllerCustomFieldsTestCase extends AbstractControllerTestC $this->_custom_field = $this->fixture('Class_CustomField', - ['id' => 5, + ['id' => 5, 'priority' => 3, 'meta' => $meta, 'model' => 'Article']); @@ -71,6 +71,7 @@ abstract class CmsControllerCustomFieldsTestCase extends AbstractControllerTestC + class CmsControllerCustomFieldsEditActionTest extends CmsControllerCustomFieldsTestCase { public function setUp() { parent::setUp(); @@ -92,6 +93,37 @@ class CmsControllerCustomFieldsEditActionTest extends CmsControllerCustomFieldsT + +class CmsControllerCustomFieldsWithNewbiesSetActionTest extends CmsControllerCustomFieldsTestCase { + public function setUp() { + parent::setUp(); + $this->fixture('Class_CustomField_Value', + ['id' => 10, + 'model_id' => 1, + 'custom_field_id' => 5, + 'value' => 'newbies']); + } + + + /** @test */ + public function editActionShouldHaveNewbiesOptionSelected() { + $this->dispatch('admin/cms/edit/id/1' ,true); + $this->assertXPathContentContains('//select[@name="field_5"]//option[@selected="selected"]', + 'newbies'); + } + + + /** @test */ + public function deleteActionShouldDeleteAssociatedCustomFieldValue() { + $this->dispatch('admin/cms/force-delete/id/1' ,true); + Class_CustomField_Value::clearCache(); + $this->assertNull(Class_CustomField_Value::find(10)); + } +} + + + + class CmsControllerCustomFieldsAndIndexationPostEditActionTest extends CmsControllerCustomFieldsTestCase { protected