/**
  * Action for deleting an instance
  */
 public function deleteQuestionnaireAction()
 {
     $session = new Zend_Session_Namespace('login');
     $questionnaireID = $session->dataQuestionnaireID;
     if (!isset($questionnaireID)) {
         $this->_redirector->gotoRouteAndExit(array('action' => 'index'));
     }
     $questionnaire = new QuestionnaireModel(array('questionnaireID' => $questionnaireID, 'depth' => 'questionnaire'));
     $questionnaire->delete();
     unset($session->dataQuestionnaireID);
     $this->flash('notice', 'Deletion Complete');
     $this->_redirector->gotoRoute(array('action' => 'index'));
 }
Beispiel #2
0
 /**
  * Generates a signature for an questionnaire definition
  * 
  * @param questionnaire definition xml dom object
  * @return string md5 hash
  */
 public static function generateSignature($dom)
 {
     $questionnaireID = QuestionnaireModel::importXML($dom, array('SkipQuestionnaireExistCheck' => 1, 'SkipFileAttachments' => 1));
     $instanceID = InstanceModel::importXML($dom, '_generateSignature', array('questionnaireID' => $questionnaireID));
     $instance = new InstanceModel(array('instanceID' => $instanceID, 'depth' => 'instance'));
     $questionnaire = new QuestionnaireModel(array('questionnaireID' => $questionnaireID, 'depth' => 'questionnaire'));
     $signature = md5($instance->toXML(1));
     $instance->delete();
     $questionnaire->delete();
     return $signature;
 }
 public function testDeletingRemovesHiddenInstances()
 {
     $this->auth();
     $xml = file_get_contents(PROJECT_PATH . "/test/data/xml/test1-questionnaire-definition.xml");
     QuestionnaireModel::importXML($xml);
     $questionnaire = new QuestionnaireModel(array('questionnaireName' => 'Test1 Questionnaire', 'questionnaireVersion' => '3.00', 'revision' => 1, 'depth' => 'instance'));
     $instanceID = $questionnaire->getDefaultInstance()->instanceID;
     $questionnaire->delete();
     QFrame_Db_Table::resetAll();
     try {
         new InstanceModel(array('instanceID' => $instanceID));
     } catch (Exception $e) {
         $this->assertTrue(preg_match('/^Instance not found/', $e->getMessage()) > 0);
         return;
     }
     $this->fail('Fetching hidden instance after questionnaire deletion should throw an exception');
 }