Skip to content
Snippets Groups Projects
Commit cc072d35 authored by Laurent's avatar Laurent
Browse files

dev #12992 #14706 custom fields

automatically create missing values
parent 1ca9be98
Branches
Tags
4 merge requests!321Dev#12992 custom fields,!302Dev#12992 Custom Fields,!235Dev#12992 Custom Fields,!228Dev#12992 Custom Fields
......@@ -83,15 +83,16 @@
public function valuesAction() {
$model = Class_CustomField_Model::getModel($this->_getParam('model'));
$model_values = $model->find($this->_getParam('id'));
$model_values = $model->find($model_id = $this->_getParam('id'));
if ($this->_request->isPost()) {
foreach ($this->_request->getPost() as $key => $value) {
list($prefix, $custom_field_id) = explode('_', $key);
$value_object = $model_values->getValueObject($custom_field_id);
if ($value_object) {
$value_object->setValue($value)->save();
}
if (!$value_object = $model_values->getValueObject($custom_field_id))
$value_object = Class_CustomField_Value::newInstance([
'custom_field_id' => $custom_field_id,
'model_id' => $model_id]);
$value_object->setValue($value)->save();
}
}
......
......@@ -461,6 +461,8 @@ class CustomFieldsControllerValuesForUserGroupTeachersTest extends CustomFieldCo
}
class CustomFieldsControllerValuesForUserGroupPostTest extends CustomFieldControllerTestCase {
public function setUp() {
parent::setUp();
......@@ -488,9 +490,12 @@ class CustomFieldsControllerValuesForUserGroupPostTest extends CustomFieldContro
'value' => 1]);
$this->postDispatch('/admin/custom-fields/values/model/UserGroup/id/1',
['field_3' => '1, menardeix',
'field_4' => 12,
'field_5' => 0]);
[
'field_3' => '1, menardeix', //address
'field_4' => 12, // age
'field_5' => 0, // status
'field_6' => 74000 //zip code
]);
Class_CustomField_Value::clearCache();
}
......@@ -500,14 +505,29 @@ class CustomFieldsControllerValuesForUserGroupPostTest extends CustomFieldContro
}
/** @test */
public function inputForAddressShouldContainsOneMenardeix() {
$this->assertXPath('//form//fieldset//input[@name="field_3"][@value="1, menardeix"]');
}
/** @test */
public function inputForAddressShouldContainsOneMenardeix() {
$this->assertXPath('//form//fieldset//input[@name="field_3"][@value="1, menardeix"]');
}
/** @test */
public function statusShouldBeZero() {
$this->assertEquals(0, Class_CustomField_Value::find(25)->getValue());
}
/** @test */
public function zipCodeShouldBeCreatedWithValue7400() {
$this->assertEquals(
74000,
Class_CustomField_Value::findFirstBy(['order' => 'id desc'])->getValue());
}
}
class CustomFieldsControllerValuesForArticleIronMaidenLiveTest extends CustomFieldControllerTestCase {
public function setUp() {
parent::setUp();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment