Skip to content

Commit 517abdf

Browse files
author
Dmytro Voskoboinikov
committed
Merge branch 'MAGETWO-85206' into 2.1-bugfixes
2 parents 7fa17f3 + f7b4d36 commit 517abdf

File tree

1 file changed

+18
-8
lines changed
  • app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab

1 file changed

+18
-8
lines changed

app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Conditions.php

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
use Magento\Backend\Block\Widget\Form;
99
use Magento\Backend\Block\Widget\Form\Generic;
1010
use Magento\Ui\Component\Layout\Tabs\TabInterface;
11+
use Magento\CatalogRule\Api\Data\RuleInterface;
12+
use Magento\Rule\Model\Condition\AbstractCondition;
1113

1214
class Conditions extends Generic implements TabInterface
1315
{
@@ -134,7 +136,7 @@ protected function _prepareForm()
134136
}
135137

136138
/**
137-
* @param \Magento\CatalogRule\Api\Data\RuleInterface $model
139+
* @param RuleInterface $model
138140
* @param string $fieldsetId
139141
* @param string $formName
140142
* @return \Magento\Framework\Data\Form
@@ -175,22 +177,30 @@ protected function addTabToForm($model, $fieldsetId = 'conditions_fieldset', $fo
175177
->setRenderer($this->_conditions);
176178

177179
$form->setValues($model->getData());
178-
$this->setConditionFormName($model->getConditions(), $formName);
180+
$this->setConditionFormName($model, $model->getConditions(), $formName);
179181
return $form;
180182
}
181183

182184
/**
183-
* @param \Magento\Rule\Model\Condition\AbstractCondition $conditions
185+
* @param RuleInterface $rule
186+
* @param AbstractCondition $conditions
184187
* @param string $formName
185188
* @return void
186189
*/
187-
private function setConditionFormName(\Magento\Rule\Model\Condition\AbstractCondition $conditions, $formName)
188-
{
190+
private function setConditionFormName(
191+
RuleInterface $rule,
192+
AbstractCondition $conditions,
193+
$formName
194+
) {
189195
$conditions->setFormName($formName);
190-
$conditions->setJsFormObject($formName);
191-
if ($conditions->getConditions() && is_array($conditions->getConditions())) {
196+
//For every fieldset there's a different form object.
197+
$conditions->setJsFormObject(
198+
$rule->getConditionsFieldSetId($formName)
199+
);
200+
$childConditions = $conditions->getCondition();
201+
if ($childConditions && is_array($childConditions)) {
192202
foreach ($conditions->getConditions() as $condition) {
193-
$this->setConditionFormName($condition, $formName);
203+
$this->setConditionFormName($rule, $condition, $formName);
194204
}
195205
}
196206
}

0 commit comments

Comments
 (0)