Skip to content

Commit

Permalink
Fixed issue #18158: Property "CDbCriteria.qid" is not defined statu…
Browse files Browse the repository at this point in the history
…s returned by delete_question (#2444)

Dev: Use Question::model()->findByPk($iQuestionID)->delete()
  • Loading branch information
edgarrmondragon committed Jun 1, 2022
1 parent 931d1d6 commit 78dca0b
Showing 1 changed file with 6 additions and 25 deletions.
31 changes: 6 additions & 25 deletions application/helpers/remotecontrol/remotecontrol_handle.php
Expand Up @@ -1411,9 +1411,9 @@ public function delete_question($sSessionKey, $iQuestionID)
{
if ($this->_checkSessionKey($sSessionKey)) {
$iQuestionID = (int) $iQuestionID;
$oQuestion = Question::model()->findByAttributes(array('qid' => $iQuestionID));
$oQuestion = Question::model()->findByPk($iQuestionID);
if (!isset($oQuestion)) {
return array('status' => 'Error: Invalid question ID');
return array('status' => 'Error: Invalid question ID');
}

$iSurveyID = $oQuestion['sid'];
Expand All @@ -1424,44 +1424,25 @@ public function delete_question($sSessionKey, $iQuestionID)
if ($oSurvey->isActive) {
return array('status' => 'Survey is active and not editable');
}
$iGroupID = $oQuestion['gid'];

$oCondition = Condition::model()->findAllByAttributes(array('cqid' => $iQuestionID));
if (count($oCondition) > 0) {
return array('status' => 'Cannot delete Question. Others rely on this question');
return array('status' => 'Cannot delete Question. Others rely on this question');
}

LimeExpressionManager::RevertUpgradeConditionsToRelevance(null, $iQuestionID);

try {
Condition::model()->deleteAllByAttributes(array('qid' => $iQuestionID));
QuestionAttribute::model()->deleteAllByAttributes(array('qid' => $iQuestionID));
Answer::model()->deleteAllByAttributes(array('qid' => $iQuestionID));

$sCriteria = new CDbCriteria();
$sCriteria->addCondition('qid = :qid or parent_qid = :qid');
$sCriteria->params[':qid'] = $iQuestionID;
Question::model()->deleteAll($sCriteria);

// delete defaultvalues and defaultvalueL10ns
$oDefaultValues = DefaultValue::model()->findAll(array('qid' => $iQuestionID));
foreach ($oDefaultValues as $defaultvalue) {
DefaultValue::model()->deleteAll('dvid = :dvid', array(':dvid' => $defaultvalue->dvid));
DefaultValueL10n::model()->deleteAll('dvid = :dvid', array(':dvid' => $defaultvalue->dvid));
}

QuotaMember::model()->deleteAllByAttributes(array('qid' => $iQuestionID));
Question::updateSortOrder($iGroupID, $iSurveyID);

$oQuestion->delete();
return (int) $iQuestionID;
} catch (Exception $e) {
return array('status' => $e->getMessage());
}
} else {
return array('status' => 'No permission');
return array('status' => 'No permission');
}
} else {
return array('status' => self::INVALID_SESSION_KEY);
return array('status' => self::INVALID_SESSION_KEY);
}
}

Expand Down

0 comments on commit 78dca0b

Please sign in to comment.