diff --git a/VERSIONS_HOTLINE/95499 b/VERSIONS_HOTLINE/95499 new file mode 100644 index 0000000000000000000000000000000000000000..94d3d98ba3c8a6245761ca6600cc58eeaefd0b11 --- /dev/null +++ b/VERSIONS_HOTLINE/95499 @@ -0,0 +1 @@ + - ticket #95499 : RendezVous : Correction plantage erreur SQL en absence de champs personnalisés \ No newline at end of file diff --git a/library/Class/CustomField/Value.php b/library/Class/CustomField/Value.php index 2b0217d0724b0dc4025293fcde703fcb10a5c76d..925e2346d76e413d54418884d7f7609de6b8b1bc 100644 --- a/library/Class/CustomField/Value.php +++ b/library/Class/CustomField/Value.php @@ -33,15 +33,15 @@ class Class_CustomField_ValueLoader extends Storm_Model_Loader { public function findAllByInstance($instance) { if (!$instance - || (!$model = Class_CustomField_Model::getModel(get_class($instance)))) + || (!$model = Class_CustomField_Model::getModel(get_class($instance))) + || (!$fields = $model->getFields())) return []; - $fields = $model->getFields(); $field_ids = array_map(function($f) {return $f->getId();}, $fields); - return $this->findAllBy(['model_id' => $instance->getId(), - 'custom_field_id' => $field_ids]); + return Class_CustomField_Value::findAllBy(['model_id' => $instance->getId(), + 'custom_field_id' => $field_ids]); } } diff --git a/tests/scenarios/RendezVous/UsergroupAgendaAdminTest.php b/tests/scenarios/RendezVous/UsergroupAgendaAdminTest.php index 7af8082ab91d546054978208aaedd43ca6e580a0..1d8be0b80dd4ef264c31af681c79a9a05bb6d81e 100644 --- a/tests/scenarios/RendezVous/UsergroupAgendaAdminTest.php +++ b/tests/scenarios/RendezVous/UsergroupAgendaAdminTest.php @@ -76,6 +76,31 @@ abstract class UsergroupAgendaAdminModoPortailLoggedTestCase extends Admin_Abstr +/** @see https://forge.afi-sa.net/issues/95499 */ +class UsergroupAgendaAdminIndexWithoutCustomFieldsTest + extends UsergroupAgendaAdminModoPortailLoggedTestCase { + public function setUp() { + parent::setUp(); + $groupagenda = $this->fixture('Class_UserGroup_Agenda', + ['id' => 5, + 'libelle' => 'MonAgenda', + 'model_class' => 'Class_RendezVous']); + + $this->onLoaderOfModel('Class_CustomField_Value'); + + $this->dispatch('/admin/usergroup-agenda'); + } + + + /** @test */ + public function shouldNotCallFindCustomFieldValues() { + $this->assertFalse(Class_CustomField_Value::methodHasBeenCalled('findAllBy')); + } +} + + + + class UsergroupAgendaAdminIndexValidTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { public function setUp() { parent::setUp();