Skip to content

Commit

Permalink
Updated feature Default values now available for the following questi…
Browse files Browse the repository at this point in the history
…on types: Date, Short/Long/Huge Text, Multiple ShortText, Multiple Numerical

Dev Default values can include EM equations - so can populate numerical/text fields with prior values by default.
Dev This works in _dev branch, but can't fully test this in Yii yet since normal handling of default values is broken.

git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_yii@12177 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
TMSWhite committed Jan 24, 2012
1 parent 71dacae commit 34c4f5a
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 14 deletions.
10 changes: 10 additions & 0 deletions application/controllers/admin/database.php
Expand Up @@ -112,6 +112,16 @@ function index($sa = null)
}
}
}
if ($qtproperties[$questiontype]['answerscales']==0 && $qtproperties[$questiontype]['subquestions']==0)
{
foreach ($questlangs as $language)
{
if (Yii::app()->request->getPost($_POST['defaultanswerscale_0_'.$language.'_0']))
{
$this->_updateDefaultValues($postqid,0,0,'',$language,Yii::app()->request->getPost['defaultanswerscale_0_'.$language.'_0'],true);
}
}
}
Yii::app()->session['flashmessage'] = $clang->gT("Default value settings were successfully saved.");
LimeExpressionManager::SetDirtyFlag();

Expand Down
14 changes: 7 additions & 7 deletions application/helpers/common_helper.php
Expand Up @@ -92,7 +92,7 @@ function getQuestionTypeList($SelectedCode = "T", $ReturnType = "selector")
"D" => array('description' => $clang->gT("Date/Time"),
'group' => $group['MaskQuestions'],
'subquestions' => 0,
'hasdefaultvalues' => 0,
'hasdefaultvalues' => 1,
'assessable' => 0,
'answerscales' => 0),
"E" => array('description' => $clang->gT("Array (Increase/Same/Decrease)"),
Expand Down Expand Up @@ -127,7 +127,7 @@ function getQuestionTypeList($SelectedCode = "T", $ReturnType = "selector")
'answerscales' => 0),
"K" => array('description' => $clang->gT("Multiple Numerical Input"),
'group' => $group['MaskQuestions'],
'hasdefaultvalues' => 0,
'hasdefaultvalues' => 1,
'subquestions' => 1,
'assessable' => 1,
'answerscales' => 0),
Expand All @@ -146,7 +146,7 @@ function getQuestionTypeList($SelectedCode = "T", $ReturnType = "selector")
"N" => array('description' => $clang->gT("Numerical Input"),
'group' => $group['MaskQuestions'],
'subquestions' => 0,
'hasdefaultvalues' => 0,
'hasdefaultvalues' => 1,
'assessable' => 0,
'answerscales' => 0),
"O" => array('description' => $clang->gT("List with comment"),
Expand All @@ -164,7 +164,7 @@ function getQuestionTypeList($SelectedCode = "T", $ReturnType = "selector")
"Q" => array('description' => $clang->gT("Multiple Short Text"),
'group' => $group['TextQuestions'],
'subquestions' => 1,
'hasdefaultvalues' => 0,
'hasdefaultvalues' => 1,
'assessable' => 0,
'answerscales' => 0),
"R" => array('description' => $clang->gT("Ranking"),
Expand All @@ -176,19 +176,19 @@ function getQuestionTypeList($SelectedCode = "T", $ReturnType = "selector")
"S" => array('description' => $clang->gT("Short Free Text"),
'group' => $group['TextQuestions'],
'subquestions' => 0,
'hasdefaultvalues' => 0,
'hasdefaultvalues' => 1,
'assessable' => 0,
'answerscales' => 0),
"T" => array('description' => $clang->gT("Long Free Text"),
'group' => $group['TextQuestions'],
'subquestions' => 0,
'hasdefaultvalues' => 0,
'hasdefaultvalues' => 1,
'assessable' => 0,
'answerscales' => 0),
"U" => array('description' => $clang->gT("Huge Free Text"),
'group' => $group['TextQuestions'],
'subquestions' => 0,
'hasdefaultvalues' => 0,
'hasdefaultvalues' => 1,
'assessable' => 0,
'answerscales' => 0),
"X" => array('description' => $clang->gT("Text display"),
Expand Down
8 changes: 5 additions & 3 deletions application/helpers/expressions/em_manager_helper.php
Expand Up @@ -2190,7 +2190,7 @@ function ProcessAllNeededRelevance($onlyThisQseq=NULL)
* @return <type> - the original $string with all replacements done.
*/

static function ProcessString($string, $questionNum=NULL, $replacementFields=array(), $debug=false, $numRecursionLevels=1, $whichPrettyPrintIteration=1, $noReplacements=false, $timeit=true)
static function ProcessString($string, $questionNum=NULL, $replacementFields=array(), $debug=false, $numRecursionLevels=1, $whichPrettyPrintIteration=1, $noReplacements=false, $timeit=true, $staticReplacement=false)
{
$now = microtime(true);
$LEM =& LimeExpressionManager::singleton();
Expand Down Expand Up @@ -2221,7 +2221,7 @@ static function ProcessString($string, $questionNum=NULL, $replacementFields=arr
}
$stringToParse = $string; // decode called later htmlspecialchars_decode($string,ENT_QUOTES);
$qnum = is_null($questionNum) ? 0 : $questionNum;
$result = $LEM->em->sProcessStringContainingExpressions($stringToParse,$qnum, $numRecursionLevels, $whichPrettyPrintIteration, $groupSeq, $questionSeq);
$result = $LEM->em->sProcessStringContainingExpressions($stringToParse,$qnum, $numRecursionLevels, $whichPrettyPrintIteration, $groupSeq, $questionSeq, $staticReplacement);
$hasErrors = $LEM->em->HasErrors();
if ($hasErrors && (($LEM->debugLevel & LEM_DEBUG_LOG_SYNTAX_ERRORS_TO_DB) == LEM_DEBUG_LOG_SYNTAX_ERRORS_TO_DB)) {
$error = array(
Expand Down Expand Up @@ -4175,7 +4175,9 @@ function _ValidateQuestion($questionSeq)
foreach ($sgqas as $sgqa)
{
if (!is_null($LEM->knownVars[$sgqa]['default']) && !isset($_SESSION[$sgqa])) {
$_SESSION[$sgqa] = $LEM->knownVars[$sgqa]['default'];
// add support for replacements
$defaultVal = $LEM->ProcessString($LEM->knownVars[$sgqa]['default'], NULL, NULL, false, 1, 1, false, false, true);
$_SESSION[$sgqa] = $defaultVal;
}
}

Expand Down
60 changes: 56 additions & 4 deletions application/views/admin/survey/Question/editdefaultvalues_view.php
Expand Up @@ -78,8 +78,24 @@
?>
<ul>
<?php
foreach ($opts['sqresult'] as $aSubquestion)
switch($questionrow['type'])
{
case 'L':
case 'M':
case 'O':
case 'P':
case '!':
$inputStyle='enum';
break;
case 'K':
case 'Q':
$inputStyle='text';
break;
}
if ($inputStyle == 'enum')
{
foreach ($opts['sqresult'] as $aSubquestion)
{
?>
<li>
<label for='defaultanswerscale_<?php echo "{$scale_id}_{$language}_{$aSubquestion['qid']}" ?>'>
Expand All @@ -88,22 +104,58 @@
<select name='defaultanswerscale_<?php echo "{$scale_id}_{$language}_{$aSubquestion['qid']}" ?>'
id='defaultanswerscale_<?php echo "{$scale_id}_{$language}_{$aSubquestion['qid']}" ?>'>
<?php
foreach ($aSubquestion['options'] as $value => $label)
{
foreach ($aSubquestion['options'] as $value => $label)
{
?>
<option value="<?php echo $value ?>"<?php $value == $aSubquestion['defaultvalue'] ? ' selected="selected"' : '' ?>><?php echo $label ?></option>
<?php
}
}
?>
</select>
</li>
<?php
}
}
if ($inputStyle == 'text')
{
foreach ($opts['sqresult'] as $aSubquestion)
{
?>
<li>
<label for='defaultanswerscale_<?php echo "{$scale_id}_{$language}_{$aSubquestion['qid']}" ?>'>
<?php echo "{$aSubquestion['title']}: " . flattenText($aSubquestion['question']) ?>
</label>
<textarea cols='50' name='defaultanswerscale_<?php echo "{$scale_id}_{$language}_{$aSubquestion['qid']}" ?>'
id='defaultanswerscale_<?php echo "{$scale_id}_{$language}_{$aSubquestion['qid']}" ?>'>
<?php echo $aSubquestion['defaultvalue'] ?>
</textarea>
</li>
<?php
}
}
?>
</ul>
<?php
}
}
if ($qtproperties[$questionrow['type']]['answerscales']==0 && $qtproperties[$questionrow['type']]['subquestions']==0)
{
/*
case 'D':
case 'N':
case 'S':
case 'T':
case 'U':*
*/
?>
<li>
<textarea cols='50' name='defaultanswerscale_<?php echo "0_{$language}_0" ?>'
id='defaultanswerscale_<?php echo "0_{$language}_0" ?>'>
<?php echo "TODO - not sure how to access the default value" ?>
</textarea>
</li>
<?php
}

if ($language == $baselang && count($questlangs) > 1)
{
Expand Down

0 comments on commit 34c4f5a

Please sign in to comment.