Skip to content

Commit

Permalink
Fixed issue #6379: Cannot define default answer for question
Browse files Browse the repository at this point in the history
  • Loading branch information
c-schmitz committed Jul 25, 2012
1 parent 384bb17 commit 4c809f2
Show file tree
Hide file tree
Showing 4 changed files with 192 additions and 189 deletions.
22 changes: 6 additions & 16 deletions application/controllers/admin/database.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,7 @@ function index($sa = null)
$baselang = Survey::model()->findByPk($surveyid)->language;
array_unshift($questlangs,$baselang);

$uqresult = Questions::model()->updateAll(array('same_default'=> Yii::app()->request->getPost('samedefault')?1:0), 'sid=:sid ANd qid=:qid', array(':sid'=>$surveyid, ':qid'=>$qid));
if (!$uqresult)
{
$databaseoutput .= "<script type=\"text/javascript\">\n<!--\n alert(\"".$clang->gT("Question could not be updated","js")."\n\")\n //-->\n</script>\n";
}
Questions::model()->updateAll(array('same_default'=> Yii::app()->request->getPost('samedefault')?1:0), 'sid=:sid ANd qid=:qid', array(':sid'=>$surveyid, ':qid'=>$qid));

$resrow = Questions::model()->findByAttributes(array('qid'=>$qid));
$questiontype = $resrow['type'];
Expand Down Expand Up @@ -116,9 +112,9 @@ function index($sa = null)
{
foreach ($questlangs as $language)
{
if (Yii::app()->request->getPost($_POST['defaultanswerscale_0_'.$language.'_0']))
if (Yii::app()->request->getPost('defaultanswerscale_0_'.$language.'_0'))
{
$this->_updateDefaultValues($postqid,0,0,'',$language,Yii::app()->request->getPost['defaultanswerscale_0_'.$language.'_0'],true);
$this->_updateDefaultValues($postqid,0,0,'',$language,Yii::app()->request->getPost('defaultanswerscale_0_'.$language.'_0'),true);
}
}
}
Expand Down Expand Up @@ -1135,24 +1131,18 @@ function index($sa = null)
*/
function _updateDefaultValues($qid,$sqid,$scale_id,$specialtype,$language,$defaultvalue,$ispost)
{
//$this->load->helper('database');
if ($defaultvalue=='') // Remove the default value if it is empty
{
Defaultvalues::model()->deleteByPk(array('sqid'=>$sqid, 'qid'=>$qid, 'specialtype'=>$specialtype, 'scale_id'=>$scale_id, 'language'=>$language));
}
else
{
$res = Defaultvalues::model()->findByPk(array('sqid'=>$sqid, 'qid'=>$qid, 'specialtype'=>$specialtype, 'scale_id'=>$scale_id, 'language'=>$language));
$exists=count($res);
$arDefaultValue = Defaultvalues::model()->findByPk(array('sqid'=>$sqid, 'qid'=>$qid, 'specialtype'=>$specialtype, 'scale_id'=>$scale_id, 'language'=>$language));

if ($exists == 0)
if (is_null($arDefaultValue))
{
$data=array('sqid'=>$sqid, 'qid'=>$qid, 'specialtype'=>$specialtype, 'scale_id'=>$scale_id, 'language'=>$language, 'defaultvalue'=>$defaultvalue);

$value = new Defaultvalues;
foreach ($data as $k => $v)
$value->$k = $v;
$value->save();
Defaultvalues::model()->insertRecords($data);
}
else
{
Expand Down
21 changes: 15 additions & 6 deletions application/controllers/admin/question.php
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,6 @@ public function editdefaultvalues($surveyid, $gid, $qid)
$gid = sanitize_int($gid);
$qid = sanitize_int($qid);

$aData['display']['menu_bars']['surveysummary'] = 'editdefaultvalues';
$aData['display']['menu_bars']['gid_action'] = 'editdefaultvalues';
$aData['display']['menu_bars']['qid_action'] = 'editdefaultvalues';

$clang = $this->getController()->lang;

Yii::app()->loadHelper('surveytranslator');
Expand Down Expand Up @@ -171,8 +167,7 @@ public function editdefaultvalues($surveyid, $gid, $qid)
));

$defaultvalue = $defaultvalue != null ? $defaultvalue->defaultvalue : null;
$langopts[$language][$questionrow['type']]['Ydefaultvalue'] =
$defaultvalue == null ? '' : $defaultvalue->defaultvalue;
$langopts[$language][$questionrow['type']]['Ydefaultvalue'] = $defaultvalue;
}
}
}
Expand Down Expand Up @@ -217,6 +212,18 @@ public function editdefaultvalues($surveyid, $gid, $qid)
}
}
}
if ($qtproperties[$questionrow['type']]['answerscales'] == 0 &&
$qtproperties[$questionrow['type']]['subquestions'] == 0)
{
$defaultvalue = Defaultvalues::model()->findByAttributes(array(
'specialtype' => '',
'qid' => $qid,
'scale_id' => 0,
'language' => $language
));
$langopts[$language][$questionrow['type']][0] = $defaultvalue != null ? $defaultvalue->defaultvalue : null;
}

}

$aData = array(
Expand All @@ -229,6 +236,8 @@ public function editdefaultvalues($surveyid, $gid, $qid)
'qtproperties' => $qtproperties,
'baselang' => $baselang,
);
$aData['display']['menu_bars']['surveysummary'] = 'editdefaultvalues';
$aData['display']['menu_bars']['qid_action'] = 'editdefaultvalues';

$this->_renderWrappedTemplate('survey/Question', 'editdefaultvalues_view', $aData);
}
Expand Down
2 changes: 1 addition & 1 deletion application/core/Survey_Common_Action.php
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ function _questionbar($iSurveyId, $gid, $qid, $action = null)
}
}
$aData['qtypes'] = $qtypes = getQuestionTypeList('', 'array');
if ($action == 'editansweroptions' || $action == "editsubquestions" || $action == "editquestion" || $action == "editdefaultvalues" || $action == "copyquestion")
if ($action == 'editansweroptions' || $action == "editsubquestions" || $action == "editquestion" || $action == "editdefaultvalues" || $action =="editdefaultvalues" || $action == "copyquestion")
{
$qshowstyle = "style='display: none'";
}
Expand Down

0 comments on commit 4c809f2

Please sign in to comment.