Skip to content

Commit

Permalink
Dev: core question attribute value are not loaded
Browse files Browse the repository at this point in the history
  • Loading branch information
Shnoulle committed Dec 28, 2016
1 parent 6031f90 commit 0860024
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 13 deletions.
28 changes: 16 additions & 12 deletions application/controllers/admin/database.php
Expand Up @@ -559,16 +559,14 @@ private function actionUpdateQuestion($iSurveyID)
$criteria = new CDbCriteria;
$criteria->compare('qid',$this->iQuestionID);
$validAttributes=\ls\helpers\questionHelper::getQuestionAttributesSettings($sQuestionType);

// If the question has a custom template, we first check if it provides custom attributes
$oAttributeValues = QuestionAttribute::model()->find("qid=:qid and attribute='question_template'",array('qid'=>$cqr->qid));
if (is_object($oAttributeValues && $oAttributeValues->value)){
$aAttributeValues['question_template'] = $oAttributeValues->value;
}else{
$aAttributeValues['question_template'] = 'core';
}
$validAttributes = Question::getQuestionTemplateAttributes($validAttributes, $aAttributeValues, $cqr );

//~ $oAttributeValues = QuestionAttribute::model()->find("qid=:qid and attribute='question_template'",array('qid'=>$cqr->qid));
//~ if (is_object($oAttributeValues && $oAttributeValues->value)){
//~ $aAttributeValues['question_template'] = $oAttributeValues->value;
//~ }else{
//~ $aAttributeValues['question_template'] = 'core';
//~ }
//~ $validAttributes = Question::getQuestionTemplateAttributes($validAttributes, $aAttributeValues, $cqr );
foreach ($validAttributes as $validAttribute)
{
$criteria->compare('attribute', '<>'.$validAttribute['name']);
Expand All @@ -588,7 +586,6 @@ private function actionUpdateQuestion($iSurveyID)
QuestionAttribute::model()->deleteAll($langCriteria);
/* delete IS NULL too*/
QuestionAttribute::model()->deleteAll('attribute=:attribute AND qid=:qid AND language IS NULL',array(':attribute'=>$validAttribute['name'], ':qid'=>$this->iQuestionID));

foreach ($aLanguages as $sLanguage)
{// TODO sanitise XSS
$value=Yii::app()->request->getPost($validAttribute['name'].'_'.$sLanguage);
Expand All @@ -613,11 +610,18 @@ private function actionUpdateQuestion($iSurveyID)
}
else
{
$value=Yii::app()->request->getPost($validAttribute['name'],'');
$default=isset($validAttribute['default']) ? $validAttribute['default'] : '';
$value=Yii::app()->request->getPost($validAttribute['name'],$default);
if($validAttribute['name']=="slider_layout"){
tracevar("delete $value");
}
/* we must have only one element, and this element must be null, then reset always (see #11980)*/
/* We can update, but : this happen only for admin and not a lot, then : delete + add */
QuestionAttribute::model()->deleteAll('attribute=:attribute AND qid=:qid', array(':attribute'=>$validAttribute['name'], ':qid'=>$this->iQuestionID));
if($value!=$validAttribute['default'] && trim($value)!==""){
if($value!=$default){
if($validAttribute['name']=="slider_layout"){
tracevar("save $value");
}
$attribute = new QuestionAttribute;
$attribute->qid = $this->iQuestionID;
$attribute->value = $value;
Expand Down
2 changes: 1 addition & 1 deletion application/models/QuestionAttribute.php
Expand Up @@ -204,7 +204,7 @@ public function getQuestionAttributes($iQuestionID,$sLanguage=null)

foreach($oAttributeValues as $oAttributeValue)
{
if($oAttributeValue->attribute='question_template'){
if($oAttributeValue->attribute=='question_template'){
$aAttributeValues['question_template'] = $oAttributeValue->value;
$aAttributeNames = Question::getQuestionTemplateAttributes($aAttributeNames, $aAttributeValues, $oQuestion );
break;
Expand Down

0 comments on commit 0860024

Please sign in to comment.