Skip to content

Commit 81234db

Browse files
committed
[smarcet] - #13374
* bugfixing on merge procedure - fixed ordering issue on answer value translator
1 parent dda2aa4 commit 81234db

1 file changed

Lines changed: 13 additions & 16 deletions

File tree

survey_builder/code/model/utils/SurveyAnswerValueTranslator.php

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,22 +70,19 @@ public static function translate($old_value, ISurveyQuestionTemplate $old_questi
7070
$new_question instanceof IDropDownQuestionTemplate && $new_question->isCountrySelector())
7171
return $old_value;
7272
// need translate value
73-
$old_value = explode(',', $old_value);
74-
$new_value = array();
75-
foreach($old_question->getValues() as $val_aux)
76-
{
77-
$id = $val_aux->getIdentifier();
78-
if(in_array($id, $old_value))
79-
{
80-
// this value its present on old answer
81-
$new_val = $new_question->getValueByValue
82-
(
83-
$val_aux->value()
84-
);
85-
if(is_null($new_val)) continue;
86-
$new_id = $new_val->getIdentifier();
87-
array_push($new_value, $new_id );
88-
}
73+
$old_values = explode(',', $old_value);
74+
$new_value = [];
75+
76+
foreach($old_values as $old_value_id){
77+
$ov = $old_question->getValueById($old_value_id);
78+
if(is_null($ov)) continue;
79+
// this value its present on old answer
80+
$nv = $new_question->getValueByValue
81+
(
82+
$ov->value()
83+
);
84+
if(is_null($nv)) continue;
85+
$new_value[] = $nv->getIdentifier();
8986
}
9087
return implode(',', $new_value);
9188
}

0 commit comments

Comments
 (0)