Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Dev Fixing questions controller
  • Loading branch information
c-schmitz committed Nov 24, 2017
1 parent 659c729 commit c78b98e
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 53 deletions.
101 changes: 49 additions & 52 deletions application/controllers/admin/questions.php
Expand Up @@ -52,7 +52,6 @@ public function view($surveyid, $gid, $qid)
if (is_null($qrrow)) {
return;
}
$questionsummary = "<div class='menubar'>\n";

// Check if other questions in the Survey are dependent upon this question
$condarray = getQuestDepsForConditions($iSurveyID, "all", "all", $qid, "by-targqid", "outsidegroup");
Expand Down Expand Up @@ -141,24 +140,22 @@ public function view($surveyid, $gid, $qid)
*/
public function importView($groupid = null, $surveyid)
{
$iSurveyID = $surveyid = sanitize_int($surveyid);
$survey = Survey::model()->findByPk($iSurveyID);

if (Permission::model()->hasSurveyPermission($surveyid, 'surveycontent', 'import')) {
$aData['sidemenu']['state'] = false;
$aData['sidemenu']['questiongroups'] = true;
$aData['surveybar']['closebutton']['url'] = '/admin/survey/sa/listquestiongroups/surveyid/'.$iSurveyID; // Close button
$aData['surveybar']['savebutton']['form'] = true;
$aData['surveybar']['savebutton']['text'] = gt('Import');
$aData['surveyid'] = $surveyid;
$aData['groupid'] = $groupid;
$aData['title_bar']['title'] = $survey->currentLanguageSettings->surveyls_title." (".gT("ID").":".$iSurveyID.")";

$this->_renderWrappedTemplate('survey/Question', 'importQuestion_view', $aData);
} else {
$iSurveyID = (int)$surveyid;
if (!Permission::model()->hasSurveyPermission($iSurveyID, 'surveycontent', 'import')) {
Yii::app()->session['flashmessage'] = gT("We are sorry but you don't have permissions to do this.");
$this->getController()->redirect(array('admin/survey/sa/listquestions/surveyid/'.$iSurveyID));
}
$survey = Survey::model()->findByPk($iSurveyID);
$aData=[];
$aData['sidemenu']['state'] = false;
$aData['sidemenu']['questiongroups'] = true;
$aData['surveybar']['closebutton']['url'] = '/admin/survey/sa/listquestiongroups/surveyid/'.$iSurveyID; // Close button
$aData['surveybar']['savebutton']['form'] = true;
$aData['surveybar']['savebutton']['text'] = gt('Import');
$aData['surveyid'] = $iSurveyID;
$aData['groupid'] = $groupid;
$aData['title_bar']['title'] = $survey->currentLanguageSettings->surveyls_title." (".gT("ID").":".$iSurveyID.")";
$this->_renderWrappedTemplate('survey/Question', 'importQuestion_view', $aData);
}

/**
Expand All @@ -170,12 +167,13 @@ public function importView($groupid = null, $surveyid)
public function import()
{
$action = returnGlobal('action');
$surveyid = $iSurveyID = returnGlobal('sid');
$iSurveyID = (int) returnGlobal('sid');
$oSurvey = Survey::model()->findByPk($iSurveyID);

$gid = returnGlobal('gid');
$aViewUrls = array();

$aData=[];
$aData['display']['menu_bars']['surveysummary'] = 'viewquestion';
$aData['display']['menu_bars']['gid_action'] = 'viewgroup';

Expand All @@ -191,7 +189,7 @@ public function import()
}

// validate that we have a SID and GID
if (!$surveyid) {
if (!$iSurveyID) {
$fatalerror .= gT("No SID (Survey) has been provided. Cannot import question.");
}

Expand All @@ -203,7 +201,7 @@ public function import()
unlink($sFullFilepath);
$message = '<p>'.$fatalerror.'</p>
<a class="btn btn-default btn-lg"
href="'.$this->getController()->createUrl('admin/survey/sa/listquestions/surveyid/').'/'.$surveyid.'">'
href="'.$this->getController()->createUrl('admin/survey/sa/listquestions/surveyid/').'/'.$iSurveyID.'">'
.gT("Return to question list").'</a></p>';
$this->_renderWrappedTemplate('super', 'messagebox', array('title'=>gT('Error'), 'message'=>$message));
die();
Expand All @@ -212,29 +210,30 @@ public function import()
// IF WE GOT THIS FAR, THEN THE FILE HAS BEEN UPLOADED SUCCESFULLY
Yii::app()->loadHelper('admin/import');

$aImportResults=array();
if (strtolower($sExtension) == 'lsq') {
$aImportResults = XMLImportQuestion($sFullFilepath, $surveyid, $gid, array('autorename'=>Yii::app()->request->getPost('autorename') == '1' ?true:false));
$aImportResults = XMLImportQuestion($sFullFilepath, $iSurveyID, $gid, array('autorename'=>Yii::app()->request->getPost('autorename') == '1' ?true:false));
} else {
$this->getController()->error(gT('Unknown file extension'));
$this->getController()->error(gT('Unknown file extension'));
}

fixLanguageConsistency($surveyid);
fixLanguageConsistency($iSurveyID);

if (isset($aImportResults['fatalerror'])) {
//echo htmlentities($aImportResults['fatalerror']); die();
$message = $aImportResults['fatalerror'];
$message .= '<p>
<a class="btn btn-default btn-lg"
href="'.$this->getController()->createUrl('admin/survey/sa/listquestions/surveyid/').'/'.$surveyid.'">'
.gT("Return to question list").'</a></p>';
<a class="btn btn-default btn-lg"
href="'.$this->getController()->createUrl('admin/survey/sa/listquestions/surveyid/').'/'.$iSurveyID.'">'
.gT("Return to question list").'</a></p>';
$this->_renderWrappedTemplate('super', 'messagebox', array('title'=>gT('Error'), 'message'=>$message));
App()->end();
}

unlink($sFullFilepath);

$aData['aImportResults'] = $aImportResults;
$aData['surveyid'] = $surveyid;
$aData['surveyid'] = $iSurveyID;
$aData['gid'] = $gid;
$aData['sExtension'] = $sExtension;
$aViewUrls[] = 'import_view';
Expand All @@ -259,11 +258,11 @@ public function import()
*/
public function editdefaultvalues($surveyid, $gid, $qid)
{
$surveyid = $iSurveyID = sanitize_int($surveyid);
$iSurveyID = (int) $surveyid;
$survey = Survey::model()->findByPk($iSurveyID);

$gid = sanitize_int($gid);
$qid = sanitize_int($qid);
$gid = (int) $gid;
$qid = (int) $qid;


Yii::app()->loadHelper('surveytranslator');
Expand Down Expand Up @@ -327,7 +326,7 @@ public function editdefaultvalues($surveyid, $gid, $qid)
$langopts[$language][$questionrow['type']][$scale_id] = array();

$sqresult = Question::model()->findAllByAttributes(array(
'sid' => $surveyid,
'sid' => $iSurveyID,
'gid' => $gid,
'parent_qid' => $qid,
'language' => $language,
Expand Down Expand Up @@ -375,7 +374,7 @@ public function editdefaultvalues($surveyid, $gid, $qid)
$aData = array(
'oQuestion' => $oQuestion,
'qid' => $qid,
'surveyid' => $surveyid,
'surveyid' => $iSurveyID,
'langopts' => $langopts,
'questionrow' => $questionrow,
'gid' => $gid,
Expand All @@ -385,7 +384,7 @@ public function editdefaultvalues($surveyid, $gid, $qid)

$aData['title_bar']['title'] = $survey->currentLanguageSettings->surveyls_title." (".gT("ID").":".$iSurveyID.")";
$aData['questiongroupbar']['savebutton']['form'] = 'frmeditgroup';
$aData['questiongroupbar']['closebutton']['url'] = 'admin/questions/sa/view/surveyid/'.$surveyid.'/gid/'.$gid.'/qid/'.$qid; // Close button
$aData['questiongroupbar']['closebutton']['url'] = 'admin/questions/sa/view/surveyid/'.$iSurveyID.'/gid/'.$gid.'/qid/'.$qid; // Close button

$aData['questiongroupbar']['saveandclosebutton']['form'] = 'frmeditgroup';
$aData['display']['menu_bars']['surveysummary'] = 'editdefaultvalues';
Expand Down Expand Up @@ -460,13 +459,13 @@ public function answeroptions($surveyid, $gid, $qid)
public function _editansweroptions($surveyid, $gid, $qid)
{
Yii::app()->loadHelper('database');
$surveyid = sanitize_int($surveyid);
$qid = sanitize_int($qid);
$gid = sanitize_int($gid);
$iSurveyID = (int)$surveyid;
$qid = (int)$qid;
$gid = (int)$gid;

// Get languages select on survey.
$anslangs = Survey::model()->findByPk($surveyid)->additionalLanguages;
$baselang = Survey::model()->findByPk($surveyid)->language;
$anslangs = Survey::model()->findByPk($iSurveyID)->additionalLanguages;
$baselang = Survey::model()->findByPk($iSurveyID)->language;

$oQuestion = $qrow = Question::model()->findByAttributes(array('qid' => $qid, 'language' => $baselang));
$qtype = $qrow['type'];
Expand Down Expand Up @@ -538,15 +537,15 @@ public function _editansweroptions($surveyid, $gid, $qid)
$ans->addCondition("qid=$qid")->addCondition("scale_id=$i")->addCondition("language='$baselang'");
$cacount = Answer::model()->count($ans);
if (!empty($cacount)) {
Answer::model()->updateSortOrder($qid, Survey::model()->findByPk($surveyid)->language);
Answer::model()->updateSortOrder($qid, Survey::model()->findByPk($iSurveyID)->language);
}
}

Yii::app()->loadHelper('admin/htmleditor');

$row = Answer::model()->findByAttributes(array(
'qid' => $qid,
'language' => Survey::model()->findByPk($surveyid)->language
'language' => Survey::model()->findByPk($iSurveyID)->language
), array('order' => 'sortorder desc'));

if (!is_null($row)) {
Expand All @@ -556,14 +555,14 @@ public function _editansweroptions($surveyid, $gid, $qid)
}

$aData['oQuestion'] = $oQuestion;
$aData['surveyid'] = $surveyid;
$aData['surveyid'] = $iSurveyID;
$aData['gid'] = $gid;
$aData['qid'] = $qid;
$aData['anslangs'] = $anslangs;
$aData['scalecount'] = $scalecount;

// The following line decides if the assessment input fields are visible or not
$sumresult1 = Survey::model()->with(array('languagesettings'=>array('condition'=>'surveyls_language=language')))->together()->findByAttributes(array('sid' => $surveyid));
$sumresult1 = Survey::model()->with(array('languagesettings'=>array('condition'=>'surveyls_language=language')))->together()->findByAttributes(array('sid' => $iSurveyID));
if (is_null($sumresult1)) {
$this->getController()->error('Invalid survey ID');
}
Expand Down Expand Up @@ -617,18 +616,19 @@ public function _editansweroptions($surveyid, $gid, $qid)
*/
public function subquestions($surveyid, $gid, $qid)
{
$aData=[];
$aData['surveyid'] = $surveyid = (int)$surveyid;
$aData['gid'] = $gid = (int)$gid;
$aData['qid'] = $qid = (int)$qid;

// Abort if user lacks permission to update survey content
if (!Permission::model()->hasSurveyPermission($surveyid, 'surveycontent', 'update')) {
Yii::app()->user->setFlash('error', gT("Access denied"));
$this->getController()->redirect(Yii::app()->request->urlReferrer);
}

$aData['surveyid'] = $surveyid = sanitize_int($surveyid);
$survey = Survey::model()->findByPk($surveyid);

$aData['gid'] = $gid = sanitize_int($gid);
$aData['qid'] = $qid = sanitize_int($qid);

App()->getClientScript()->registerScriptFile(App()->getConfig('adminscripts').'subquestions.js', LSYii_ClientScript::POS_BEGIN);
App()->getClientScript()->registerPackage('jquery-blockUI');
App()->getClientScript()->registerPackage('jquery-selectboxes');
Expand Down Expand Up @@ -672,7 +672,7 @@ public function _editsubquestion($surveyid, $gid, $qid)
$this->getController()->redirect(Yii::app()->request->urlReferrer);
}

$surveyid = sanitize_int($surveyid);
$surveyid = (int)$surveyid;
$oSurvey = Survey::model()->findByPk($surveyid);
$qid = sanitize_int($qid);
$gid = sanitize_int($gid);
Expand Down Expand Up @@ -1019,10 +1019,7 @@ public function newquestion($surveyid)

Yii::app()->session['FileManagerContext'] = "create:question:{$surveyid}";

$questlangs = Survey::model()->findByPk($surveyid)->additionalLanguages;
$baselang = Survey::model()->findByPk($surveyid)->language;
$questlangs[] = $baselang;
$questlangs = array_flip($questlangs);

$qtypelist = getQuestionTypeList('', 'array');
$qDescToCode = 'qDescToCode = {';
Expand Down Expand Up @@ -1067,7 +1064,7 @@ public function newquestion($surveyid)
if (Yii::app()->session['questionselectormode'] !== 'default') {
$selectormodeclass = Yii::app()->session['questionselectormode'];
} else {
$selectormodeclass = getGlobalSetting('defaultquestionselectormode', 'default');
$selectormodeclass = getGlobalSetting('defaultquestionselectormode');
}

$aData['accordionDatas']['selectormodeclass'] = $selectormodeclass;
Expand Down Expand Up @@ -1872,7 +1869,7 @@ public function preview($surveyid, $qid, $lang = null)
$qseq = LimeExpressionManager::GetQuestionSeq($qid);
$moveResult = LimeExpressionManager::JumpTo($qseq + 1, true, false, true);

$answers = retrieveAnswers($ia, $surveyid);
$answers = retrieveAnswers($ia);

$oTemplate = Template::model()->getInstance(null, $surveyid);
$thistpl = $oTemplate->viewPath;
Expand Down Expand Up @@ -1951,7 +1948,7 @@ public function ajaxValidate($surveyid, $qid = false)
// TODO: Longterm, change 'other' to boolean; change the model rules
$_POST['other'] = (Yii::app()->request->getPost('other') == '1') ? 'Y' : 'N';

$iSurveyId = $surveyid;
$iSurveyId = (int)$surveyid;
$iQid = $qid;
$oSurvey = Survey::model()->findByPk($surveyid);
if ($oSurvey) {
Expand Down
1 change: 0 additions & 1 deletion application/controllers/admin/surveyadmin.php
Expand Up @@ -1826,7 +1826,6 @@ function getUrlParamsJSON($iSurveyID)
where up.sid={$iSurveyID} and (q.language='{$sBaseLanguage}' or q.language is null) and (sq.language='{$sBaseLanguage}' or sq.language is null)";
$oResult = Yii::app()->db->createCommand($sQuery)->queryAll();
$aSurveyParameters = SurveyURLParameter::model()->findAll('sid=:sid', [':sid' => $iSurveyID ]);
$i = 0;
$aData = array(
'rows' => []
);
Expand Down

0 comments on commit c78b98e

Please sign in to comment.