Skip to content

Commit

Permalink
Fixed issue #6073 : survey summary is not implemented
Browse files Browse the repository at this point in the history
Fixed issue : unable to end survey with save timing
TODO: browse save timing / clean browse code
  • Loading branch information
Shnoulle committed May 15, 2012
1 parent c16bb49 commit f6c7ef4
Show file tree
Hide file tree
Showing 2 changed files with 137 additions and 128 deletions.
263 changes: 136 additions & 127 deletions application/controllers/admin/browse.php
Expand Up @@ -42,7 +42,6 @@ private function _getData($params)
extract($params);
}
$aData = array();

// Set the variables in an array
$aData['surveyid'] = $aData['iSurveyId'] = (int) $iSurveyId;
if (!empty($iId))
Expand All @@ -52,7 +51,7 @@ private function _getData($params)
$aData['clang'] = $clang = $this->getController()->lang;
$aData['imageurl'] = Yii::app()->getConfig('imageurl');
$aData['action'] = Yii::app()->request->getParam('action');

$aData['all']=Yii::app()->request->getParam('all');
$oCriteria = new CDbCriteria;
$oCriteria->select = 'sid, active';
$oCriteria->join = 'INNER JOIN {{surveys_languagesettings}} as b on (b.surveyls_survey_id=sid and b.surveyls_language=language)';
Expand Down Expand Up @@ -424,160 +423,170 @@ public function index($iSurveyId)
}

$clang = $aData['clang'];
//add token to top of list if survey is not private
if ($aData['surveyinfo']['anonymized'] == "N" && tableExists('tokens_' . $iSurveyId)) //add token to top of list if survey is not private
if(isset($aData['all']))
{
$fnames[] = array("token", "Token", $clang->gT("Token ID"), 0);
$fnames[] = array("firstname", "First name", $clang->gT("First name"), 0);
$fnames[] = array("lastname", "Last name", $clang->gT("Last name"), 0);
$fnames[] = array("email", "Email", $clang->gT("Email"), 0);
}
//add token to top of list if survey is not private
if ($aData['surveyinfo']['anonymized'] == "N" && tableExists('tokens_' . $iSurveyId)) //add token to top of list if survey is not private
{
$fnames[] = array("token", "Token", $clang->gT("Token ID"), 0);
$fnames[] = array("firstname", "First name", $clang->gT("First name"), 0);
$fnames[] = array("lastname", "Last name", $clang->gT("Last name"), 0);
$fnames[] = array("email", "Email", $clang->gT("Email"), 0);
}

$fnames[] = array("submitdate", $clang->gT("Completed"), $clang->gT("Completed"), "0", 'D');
$fields = createFieldMap($iSurveyId, 'full', false, false, $aData['language']);
$fnames[] = array("submitdate", $clang->gT("Completed"), $clang->gT("Completed"), "0", 'D');
$fields = createFieldMap($iSurveyId, 'full', false, false, $aData['language']);

foreach ($fields as $fielddetails)
{
if ($fielddetails['fieldname'] == 'lastpage' || $fielddetails['fieldname'] == 'submitdate')
continue;

$question = $fielddetails['question'];
if ($fielddetails['type'] != "|")
foreach ($fields as $fielddetails)
{
if ($fielddetails['fieldname'] == 'lastpage' || $fielddetails['fieldname'] == 'submitdate' || $fielddetails['fieldname'] == 'token')
if ($fielddetails['fieldname'] == 'lastpage' || $fielddetails['fieldname'] == 'submitdate')
continue;

// no headers for time data
if ($fielddetails['type'] == 'interview_time')
continue;
if ($fielddetails['type'] == 'page_time')
continue;
if ($fielddetails['type'] == 'answer_time')
continue;
if (isset($fielddetails['subquestion']) && $fielddetails['subquestion'] != '')
$question .=' (' . $fielddetails['subquestion'] . ')';
if (isset($fielddetails['subquestion1']) && isset($fielddetails['subquestion2']))
$question .=' (' . $fielddetails['subquestion1'] . ':' . $fielddetails['subquestion2'] . ')';
if (isset($fielddetails['scale_id']))
$question .='[' . $fielddetails['scale'] . ']';
$fnames[] = array($fielddetails['fieldname'], $question);
}
else
{
if ($fielddetails['aid'] !== 'filecount')
$question = $fielddetails['question'];
if ($fielddetails['type'] != "|")
{
$qidattributes = getQuestionAttributeValues($fielddetails['qid']);

for ($i = 0; $i < $qidattributes['max_num_of_files']; $i++)
if ($fielddetails['fieldname'] == 'lastpage' || $fielddetails['fieldname'] == 'submitdate' || $fielddetails['fieldname'] == 'token')
continue;

// no headers for time data
if ($fielddetails['type'] == 'interview_time')
continue;
if ($fielddetails['type'] == 'page_time')
continue;
if ($fielddetails['type'] == 'answer_time')
continue;
if (isset($fielddetails['subquestion']) && $fielddetails['subquestion'] != '')
$question .=' (' . $fielddetails['subquestion'] . ')';
if (isset($fielddetails['subquestion1']) && isset($fielddetails['subquestion2']))
$question .=' (' . $fielddetails['subquestion1'] . ':' . $fielddetails['subquestion2'] . ')';
if (isset($fielddetails['scale_id']))
$question .='[' . $fielddetails['scale'] . ']';
$fnames[] = array($fielddetails['fieldname'], $question);
}
else
{
if ($fielddetails['aid'] !== 'filecount')
{
if ($qidattributes['show_title'] == 1)
$fnames[] = array($fielddetails['fieldname'], "File " . ($i + 1) . " - " . $fielddetails['question'] . "(Title)", "type" => "|", "metadata" => "title", "index" => $i);
$qidattributes = getQuestionAttributeValues($fielddetails['qid']);

if ($qidattributes['show_comment'] == 1)
$fnames[] = array($fielddetails['fieldname'], "File " . ($i + 1) . " - " . $fielddetails['question'] . "(Comment)", "type" => "|", "metadata" => "comment", "index" => $i);
for ($i = 0; $i < $qidattributes['max_num_of_files']; $i++)
{
if ($qidattributes['show_title'] == 1)
$fnames[] = array($fielddetails['fieldname'], "File " . ($i + 1) . " - " . $fielddetails['question'] . "(Title)", "type" => "|", "metadata" => "title", "index" => $i);

if ($qidattributes['show_comment'] == 1)
$fnames[] = array($fielddetails['fieldname'], "File " . ($i + 1) . " - " . $fielddetails['question'] . "(Comment)", "type" => "|", "metadata" => "comment", "index" => $i);

$fnames[] = array($fielddetails['fieldname'], "File " . ($i + 1) . " - " . $fielddetails['question'] . "(File name)", "type" => "|", "metadata" => "name", "index" => $i);
$fnames[] = array($fielddetails['fieldname'], "File " . ($i + 1) . " - " . $fielddetails['question'] . "(File size)", "type" => "|", "metadata" => "size", "index" => $i);
//$fnames[] = array($fielddetails['fieldname'], "File ".($i+1)." - ".$fielddetails['question']."(extension)", "type"=>"|", "metadata"=>"ext", "index"=>$i);
$fnames[] = array($fielddetails['fieldname'], "File " . ($i + 1) . " - " . $fielddetails['question'] . "(File name)", "type" => "|", "metadata" => "name", "index" => $i);
$fnames[] = array($fielddetails['fieldname'], "File " . ($i + 1) . " - " . $fielddetails['question'] . "(File size)", "type" => "|", "metadata" => "size", "index" => $i);
//$fnames[] = array($fielddetails['fieldname'], "File ".($i+1)." - ".$fielddetails['question']."(extension)", "type"=>"|", "metadata"=>"ext", "index"=>$i);
}
}
else
$fnames[] = array($fielddetails['fieldname'], "File count");
}
else
$fnames[] = array($fielddetails['fieldname'], "File count");
}
}

$fncount = count($fnames);
$fncount = count($fnames);

$start = Yii::app()->request->getParam('start', 0);
$limit = Yii::app()->request->getParam('limit', 50);
$start = Yii::app()->request->getParam('start', 0);
$limit = Yii::app()->request->getParam('limit', 50);

$oCriteria = new CDbCriteria;
//Create the query
if ($aData['surveyinfo']['anonymized'] == "N" && tableExists("{{tokens_{$iSurveyId}}}"))
{
$oCriteria = Survey_dynamic::model($iSurveyId)->addTokenCriteria($oCriteria);
}
$oCriteria = new CDbCriteria;
//Create the query
if ($aData['surveyinfo']['anonymized'] == "N" && tableExists("{{tokens_{$iSurveyId}}}"))
{
$oCriteria = Survey_dynamic::model($iSurveyId)->addTokenCriteria($oCriteria);
}

if (incompleteAnsFilterState() == "inc")
{
$oCriteria->addCondition("`submitdate` IS NULL");
}
elseif (incompleteAnsFilterState() == "filter")
{
$oCriteria->addCondition("`submitdate` IS NOT NULL");
}
if (incompleteAnsFilterState() == "inc")
{
$oCriteria->addCondition("`submitdate` IS NULL");
}
elseif (incompleteAnsFilterState() == "filter")
{
$oCriteria->addCondition("`submitdate` IS NOT NULL");
}

$dtcount = Survey_dynamic::model($iSurveyId)->count($oCriteria);// or die("Couldn't get response data<br />");
$dtcount = Survey_dynamic::model($iSurveyId)->count($oCriteria);// or die("Couldn't get response data<br />");

if ($limit > $dtcount)
{
$limit = $dtcount;
}
if ($limit > $dtcount)
{
$limit = $dtcount;
}

//NOW LETS SHOW THE DATA
if (Yii::app()->request->getPost('sql') && stripcslashes(Yii::app()->request->getPost('sql')) !== "" && Yii::app()->request->getPost('sql') != "NULL")
$oCriteria->addCondition(stripcslashes(Yii::app()->request->getPost('sql')));
//NOW LETS SHOW THE DATA
if (Yii::app()->request->getPost('sql') && stripcslashes(Yii::app()->request->getPost('sql')) !== "" && Yii::app()->request->getPost('sql') != "NULL")
$oCriteria->addCondition(stripcslashes(Yii::app()->request->getPost('sql')));

$oCriteria->order = 'id ' . (Yii::app()->request->getParam('order') == 'desc' ? 'desc' : 'asc');
$oCriteria->offset = $start;
$oCriteria->limit = $limit;
$oCriteria->order = 'id ' . (Yii::app()->request->getParam('order') == 'desc' ? 'desc' : 'asc');
$oCriteria->offset = $start;
$oCriteria->limit = $limit;

$dtresult = Survey_dynamic::model($iSurveyId)->findAllAsArray($oCriteria);
$dtresult = Survey_dynamic::model($iSurveyId)->findAllAsArray($oCriteria);

$dtcount2 = count($dtresult);
$cells = $fncount + 1;
$dtcount2 = count($dtresult);
$cells = $fncount + 1;

//CONTROL MENUBAR
$last = $start - $limit;
$next = $start + $limit;
$end = $dtcount - $limit;
if ($end < 0)
{
$end = 0;
}
if ($last < 0)
{
$last = 0;
}
if ($next >= $dtcount)
{
$next = $dtcount - $limit;
}
if ($end < 0)
{
$end = 0;
}
//CONTROL MENUBAR
$last = $start - $limit;
$next = $start + $limit;
$end = $dtcount - $limit;
if ($end < 0)
{
$end = 0;
}
if ($last < 0)
{
$last = 0;
}
if ($next >= $dtcount)
{
$next = $dtcount - $limit;
}
if ($end < 0)
{
$end = 0;
}

$aData['dtcount2'] = $dtcount2;
$aData['start'] = $start;
$aData['limit'] = $limit;
$aData['last'] = $last;
$aData['next'] = $next;
$aData['end'] = $end;
$aData['fncount'] = $fncount;
$aData['fnames'] = $fnames;
$aData['dtcount2'] = $dtcount2;
$aData['start'] = $start;
$aData['limit'] = $limit;
$aData['last'] = $last;
$aData['next'] = $next;
$aData['end'] = $end;
$aData['fncount'] = $fncount;
$aData['fnames'] = $fnames;

$aViewUrls[] = 'browseallheader_view';
$aViewUrls[] = 'browseallheader_view';

$bgcc = 'even';
foreach ($dtresult as $dtrow)
{
if ($bgcc == "even")
{
$bgcc = "odd";
}
else
{
$bgcc = "even";
}
$aData['dtrow'] = $dtrow;
$aData['bgcc'] = $bgcc;
$aData['oBrowseLanguage']=$oBrowseLanguage;
$aViewUrls['browseallrow_view'][] = $aData;
$bgcc = 'even';
foreach ($dtresult as $dtrow)
{
if ($bgcc == "even")
{
$bgcc = "odd";
}
else
{
$bgcc = "even";
}
$aData['dtrow'] = $dtrow;
$aData['bgcc'] = $bgcc;
$aData['oBrowseLanguage']=$oBrowseLanguage;
$aViewUrls['browseallrow_view'][] = $aData;
}

$aViewUrls[] = 'browseallfooter_view';
}
else
{
$aData['num_total_answers'] = Survey_dynamic::model($iSurveyId)->count();
$aData['num_completed_answers'] = Survey_dynamic::model($iSurveyId)->count('submitdate IS NOT NULL');

$aViewUrls[] = 'browseallfooter_view';
$this->_renderWrappedTemplate('',$aViewUrls, $aData);
$aViewUrls[] = 'browseindex_view';
}
$this->_renderWrappedTemplate('',$aViewUrls, $aData);
}

public function time($iSurveyId)
Expand Down
2 changes: 1 addition & 1 deletion application/libraries/Save.php
Expand Up @@ -297,7 +297,7 @@ function set_answer_time()
$query = "UPDATE {{survey_{$thissurvey['sid']}_timings}} SET "
."interviewtime = interviewtime" ." + " .$passedTime .","
.$setField." = ".$setField." + ".$passedTime
." WHERE id = " .$_SESSION['survey_'.$surveyid]['srid'];
." WHERE id = " .$_SESSION['survey_'.$$thissurvey['sid']]['srid'];
Yii::app()->db->createCommand($query)->execute();
}
}

0 comments on commit f6c7ef4

Please sign in to comment.