diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1a4f071fd2a..d99077a1578 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,11 +13,12 @@ on: jobs: CI-pipeline: - runs-on: ubuntu-18.04 # ubuntu runner hosted by Github + runs-on: ubuntu-20.04 # ubuntu runner hosted by Github strategy: matrix: # Specify what versions of php you want to test - php-versions: ['7.2', '8.0'] + #php-versions: ['7.2', '8.0'] + php-versions: ['8.0'] # Env vars for this job env: DBENGINE: INNODB @@ -57,7 +58,7 @@ jobs: run: | # Set up the Apache and PHP sudo apt-get update > /dev/null - sudo apt install php libapache2-mod-php7.2 -y + sudo apt install php php-mysql php8.0-mysql php7.2-mysql libapache2-mod-php8.0 -y sudo cp -f ./tests/CI-pipeline/github-actions-apache /etc/apache2/sites-available/000-default.conf sudo sed -e "s?%CI_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf @@ -84,21 +85,23 @@ jobs: # https://discuss.gogs.io/t/solved-mysql-error-1064-while-running-first-install/1604 # InnoDB variables ARE already set to desired values in Github runner (ubuntu-18.04) + sudo systemctl start mysql sudo service mysql status + mysql -uroot -proot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root';" || true mysql -uroot -proot -e "Show variables like '%large%';" mysql -uroot -proot -e "Show variables like '%innodb_file%';" mysql -uroot -proot -e "Show variables like '%innodb_default%';" - name: Load custom console and start the Application run: | - php application/commands/console.php install admin password TravisLS no@email.com verbose cp application/config/config-sample-mysql.php application/config/config.php + php application/commands/console.php install admin password TravisLS no@email.com verbose # Enable debug=2 in config file. OBS: This assumes debug is on line 61. # TODO: Disable, a lines was added to config file and some tests started to fail. # NB: EmCache is always disabled when debug => 2 # NB: There can be a difference in assets used when debug = 0 or 2 (minified version or not) - # sed -i '84s/.*/ "debug"=>2,/' application/config/config.php + # sed -i '60s/.*/ "debug"=>2,/' application/config/config.php # cat application/config/config.php - name: Run syntax check, CodeSniffer, MessDetector, ... @@ -107,8 +110,18 @@ jobs: - name: Test the server run: | # Test server. - wget localhost - cat index.html + wget -O - localhost + #sudo tail -n 500 /var/log/apache2/error.log || true + #sudo tail -n 500 /var/log/nginx/error.log || true + #sudo tail -n 500 /var/log/php7.4-fpm.log || true + #sudo tail -n 500 /var/log/php7.2-fpm.log || true + #sudo tail -n 500 /var/log/php8.0-fpm.log || true + # NOTE: php --version might not be the same as setup in apache. Use fwrite(STDERR, phpversion()); in index.php to be sure. + #which php + #php --version + #php -r 'phpinfo();' | grep log + #php --info | grep log + #find /var/log # Chromedriver setup. # Note: Keep getting timeout problems on Travis with chromedriver. diff --git a/application/config/version.php b/application/config/version.php index 726dc0f58f9..39694790063 100644 --- a/application/config/version.php +++ b/application/config/version.php @@ -12,9 +12,9 @@ */ $config['versionnumber'] = '5.5.0-dev'; -$config['dbversionnumber'] = 494; +$config['dbversionnumber'] = 495; $config['buildnumber'] = ''; $config['updatable'] = true; $config['templateapiversion'] = 3; -$config['assetsversionnumber'] = '30309'; +$config['assetsversionnumber'] = '30310'; return $config; diff --git a/application/helpers/admin/import_helper.php b/application/helpers/admin/import_helper.php index 8aa02661aaf..2f32b7445b4 100644 --- a/application/helpers/admin/import_helper.php +++ b/application/helpers/admin/import_helper.php @@ -136,7 +136,8 @@ function XMLImportGroup($sFullFilePath, $iNewSID, $bTranslateLinksFields) // We have to run the question table data two times - first to find all main questions // then for subquestions (because we need to determine the new qids for the main questions first) - + /** @var Question[] */ + $importedQuestions = []; $results['questions'] = 0; if (isset($xml->questions)) { foreach ($xml->questions->rows->row as $row) { @@ -209,6 +210,7 @@ function XMLImportGroup($sFullFilePath, $iNewSID, $bTranslateLinksFields) } $aQIDReplacements[$iOldQID] = $oQuestion->qid; $results['questions']++; + $importedQuestions[$aQIDReplacements[$iOldQID]] = $oQuestion; } if (isset($oQuestionL10n)) { @@ -415,6 +417,8 @@ function XMLImportGroup($sFullFilePath, $iNewSID, $bTranslateLinksFields) if (isset($xml->question_attributes)) { $aAllAttributes = questionHelper::getAttributesDefinitions(); + /** @var array> List of "answer order" related attributes, grouped by qid */ + $answerOrderAttributes = []; foreach ($xml->question_attributes->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { @@ -440,6 +444,18 @@ function XMLImportGroup($sFullFilePath, $iNewSID, $bTranslateLinksFields) continue; } + // Keep "answer order" related attributes in an array to process later (because we need to combine two attributes) + if ( + $insertdata['attribute'] == 'alphasort' + || ( + $insertdata['attribute'] == 'random_order' + && in_array($importedQuestions[$insertdata['qid']]->type, ['!', 'L', 'O', 'R']) + ) + ) { + $answerOrderAttributes[$insertdata['qid']][$insertdata['attribute']] = $insertdata['value']; + continue; + } + if ( $iDBVersion < 156 && isset($aAllAttributes[$insertdata['attribute']]['i18n']) && $aAllAttributes[$insertdata['attribute']]['i18n'] @@ -453,6 +469,29 @@ function XMLImportGroup($sFullFilePath, $iNewSID, $bTranslateLinksFields) } $results['question_attributes']++; } + + // Process "answer order" attributes + foreach ($answerOrderAttributes as $importedQid => $questionAttributes) { + if (!empty($questionAttributes['random_order'])) { + $insertdata = [ + 'qid' => $importedQid, + 'attribute' => 'answer_order', + 'value' => 'random', + ]; + App()->db->createCommand()->insert('{{question_attributes}}', $insertdata); + $results['question_attributes']++; + continue; + } + if (!empty($questionAttributes['alphasort'])) { + $insertdata = [ + 'qid' => $importedQid, + 'attribute' => 'answer_order', + 'value' => 'alphabetical', + ]; + App()->db->createCommand()->insert('{{question_attributes}}', $insertdata); + $results['question_attributes']++; + } + } } @@ -876,6 +915,8 @@ function XMLImportQuestion($sFullFilePath, $iNewSID, $iNewGID, $options = array( // Import questionattributes -------------------------------------------------------------- if (isset($xml->question_attributes)) { $aAllAttributes = questionHelper::getAttributesDefinitions(); + /** @var array List of "answer order" related attributes */ + $answerOrderAttributes = []; foreach ($xml->question_attributes->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { @@ -899,6 +940,18 @@ function XMLImportQuestion($sFullFilePath, $iNewSID, $iNewGID, $options = array( continue; } + // Keep "answer order" related attributes in an array to process later (because we need to combine two attributes) + if ( + $insertdata['attribute'] == 'alphasort' + || ( + $insertdata['attribute'] == 'random_order' + && in_array($oQuestion->type, ['!', 'L', 'O', 'R']) + ) + ) { + $answerOrderAttributes[$insertdata['attribute']] = $insertdata['value']; + continue; + } + if ( $iDBVersion < 156 && isset($aAllAttributes[$insertdata['attribute']]['i18n']) && @@ -926,6 +979,25 @@ function XMLImportQuestion($sFullFilePath, $iNewSID, $iNewGID, $options = array( } } + // Process "answer order" attributes + if (!empty($answerOrderAttributes['random_order'])) { + $insertdata = [ + 'qid' => $newqid, + 'attribute' => 'answer_order', + 'value' => 'random', + ]; + App()->db->createCommand()->insert('{{question_attributes}}', $insertdata); + $results['question_attributes']++; + } elseif (!empty($answerOrderAttributes['alphasort'])) { + $insertdata = [ + 'qid' => $newqid, + 'attribute' => 'answer_order', + 'value' => 'alphabetical', + ]; + App()->db->createCommand()->insert('{{question_attributes}}', $insertdata); + $results['question_attributes']++; + } + // Import defaultvalues ------------------------------------------------------ importDefaultValues($xml, $aLanguagesSupported, $aQIDReplacements, $results); @@ -1441,6 +1513,8 @@ function XMLImportSurvey($sFullFilePath, $sXMLdata = null, $sNewSurveyName = nul // We have to run the question table data two times - first to find all main questions // then for subquestions (because we need to determine the new qids for the main questions first) $aQuestionsMapping = array(); // collect all old and new question codes for replacement + /** @var Question[] */ + $importedQuestions = []; if (isset($xml->questions)) { // There could be surveys without a any questions. foreach ($xml->questions->rows->row as $row) { @@ -1520,8 +1594,8 @@ function XMLImportSurvey($sFullFilePath, $sXMLdata = null, $sNewSurveyName = nul throw new Exception(gT("Error while saving: ") . print_r($oQuestion->errors, true)); } $aQIDReplacements[$iOldQID] = $oQuestion->qid; - ; $results['questions']++; + $importedQuestions[$aQIDReplacements[$iOldQID]] = $oQuestion; } if (isset($oQuestionL10n)) { @@ -1747,6 +1821,8 @@ function XMLImportSurvey($sFullFilePath, $sXMLdata = null, $sNewSurveyName = nul // Import questionattributes ------------------------------------------------- if (isset($xml->question_attributes)) { $aAllAttributes = questionHelper::getAttributesDefinitions(); + /** @var array> List of "answer order" related attributes, grouped by qid */ + $answerOrderAttributes = []; foreach ($xml->question_attributes->rows->row as $row) { $insertdata = array(); foreach ($row as $key => $value) { @@ -1786,6 +1862,18 @@ function XMLImportSurvey($sFullFilePath, $sXMLdata = null, $sNewSurveyName = nul continue; } + // Keep "answer order" related attributes in an array to process later (because we need to combine two attributes) + if ( + $insertdata['attribute'] == 'alphasort' + || ( + $insertdata['attribute'] == 'random_order' + && in_array($importedQuestions[$insertdata['qid']]->type, ['!', 'L', 'O', 'R']) + ) + ) { + $answerOrderAttributes[$insertdata['qid']][$insertdata['attribute']] = $insertdata['value']; + continue; + } + if ($iDBVersion < 156 && isset($aAllAttributes[$insertdata['attribute']]['i18n']) && $aAllAttributes[$insertdata['attribute']]['i18n']) { foreach ($aLanguagesSupported as $sLanguage) { $insertdata['language'] = $sLanguage; @@ -1806,6 +1894,29 @@ function XMLImportSurvey($sFullFilePath, $sXMLdata = null, $sNewSurveyName = nul checkWrongQuestionAttributes($insertdata['qid']); $results['question_attributes']++; } + + // Process "answer order" attributes + foreach ($answerOrderAttributes as $importedQid => $questionAttributes) { + if (!empty($questionAttributes['random_order'])) { + $insertdata = [ + 'qid' => $importedQid, + 'attribute' => 'answer_order', + 'value' => 'random', + ]; + App()->db->createCommand()->insert('{{question_attributes}}', $insertdata); + $results['question_attributes']++; + continue; + } + if (!empty($questionAttributes['alphasort'])) { + $insertdata = [ + 'qid' => $importedQid, + 'attribute' => 'answer_order', + 'value' => 'alphabetical', + ]; + App()->db->createCommand()->insert('{{question_attributes}}', $insertdata); + $results['question_attributes']++; + } + } } // Import defaultvalues ------------------------------------------------------ diff --git a/application/helpers/remotecontrol/remotecontrol_handle.php b/application/helpers/remotecontrol/remotecontrol_handle.php index 39e202c02a2..b6e6b890546 100644 --- a/application/helpers/remotecontrol/remotecontrol_handle.php +++ b/application/helpers/remotecontrol/remotecontrol_handle.php @@ -2203,7 +2203,7 @@ public function list_participants($sSessionKey, $iSurveyID, $iStart = 0, $iLimit $value = $valueOrTuple[1]; $oCriteria->compare($columnName, $operator . $value); } - } elseif (is_string($valueOrTuple)) { + } elseif (is_string($valueOrTuple) || is_null($valueOrTuple)) { if (array_key_exists($columnName, $aConditionFields)) { $aAttributeValues[$columnName] = $valueOrTuple; } diff --git a/application/helpers/update/updates/Update_492.php b/application/helpers/update/updates/Update_492.php index 0bdff92cda5..05af7359cc3 100644 --- a/application/helpers/update/updates/Update_492.php +++ b/application/helpers/update/updates/Update_492.php @@ -6,6 +6,40 @@ class Update_492 extends DatabaseUpdateBase { public function up() { - $this->db->createCommand()->addColumn('{{users}}', 'expires', 'datetime'); + // Handle questions with random_order = 1 + $this->db->createCommand( + "INSERT INTO {{question_attributes}} (qid, " . $this->db->quoteColumnName("attribute") . ", " . $this->db->quoteColumnName("value") . ") + SELECT + qa.qid, + 'answer_order' AS " . $this->db->quoteColumnName("attribute") . ", + 'random' AS " . $this->db->quoteColumnName("value") . " + FROM {{question_attributes}} qa + JOIN {{questions}} q ON qa.qid = q.qid + WHERE + " . $this->db->quoteColumnName("attribute") . " = 'random_order' + AND " . $this->db->quoteColumnName("value") . " = '1' + AND q.type IN ('!', 'L', 'O', 'R')" + )->execute(); + + // Handle questions with alphasort = 1 and random_order = 0 + $this->db->createCommand( + "INSERT INTO {{question_attributes}} (qid, " . $this->db->quoteColumnName("attribute") . ", " . $this->db->quoteColumnName("value") . ") + SELECT + a.qid, + 'answer_order' AS " . $this->db->quoteColumnName("attribute") . ", + 'alphabetical' AS " . $this->db->quoteColumnName("value") . " + FROM ( + SELECT * + FROM {{question_attributes}} + WHERE " . $this->db->quoteColumnName("attribute") . " = 'alphasort' + AND " . $this->db->quoteColumnName("value") . " = '1' + ) a LEFT JOIN ( + SELECT + qid, + " . $this->db->quoteColumnName("value") . " AS random_order + FROM {{question_attributes}} + WHERE " . $this->db->quoteColumnName("attribute") . " = 'random_order' + ) r ON a.qid = r.qid WHERE random_order = '0' OR random_order IS NULL" + )->execute(); } } diff --git a/application/models/Question.php b/application/models/Question.php index 17cd682676f..d951caa82c8 100644 --- a/application/models/Question.php +++ b/application/models/Question.php @@ -727,54 +727,94 @@ public function getOrderedAnswers($scale_id = null) return $aAnswerOptions[$scale_id]; } - // Random order - if ($this->getQuestionAttribute('random_order') == 1 && $this->getQuestionType()->subquestions == 0) { - foreach ($aAnswerOptions as $scaleId => $aScaleArray) { - $keys = array_keys($aScaleArray); + $aAnswerOptions = $this->sortAnswerOptions($aAnswerOptions); + return $aAnswerOptions; + } + + /** + * Returns the specified answer options sorted according to the question attributes. + * Refactored from getOrderedAnswers(); + * @param array The answer options to sort + * @return array + */ + private function sortAnswerOptions($answerOptions) + { + // Sort randomly if applicable + if ($this->shouldOrderAnswersRandomly()) { + foreach ($answerOptions as $scaleId => $scaleArray) { + $keys = array_keys($scaleArray); shuffle($keys); // See: https://forum.yiiframework.com/t/order-by-rand-and-total-posts/68099 - $aNew = array(); + $sortedScaleAnswers = array(); foreach ($keys as $key) { - $aNew[$key] = $aScaleArray[$key]; + $sortedScaleAnswers[$key] = $scaleArray[$key]; } - $aAnswerOptions[$scaleId] = $aNew; + $answerOptions[$scaleId] = $sortedScaleAnswers; } - - return $aAnswerOptions; + return $answerOptions; } - // Alphabetic ordrer - $alphasort = $this->getQuestionAttribute('alphasort'); - if ($alphasort == 1) { - foreach ($aAnswerOptions as $scaleId => $aScaleArray) { - $aSorted = array(); + // Sort alphabetically if applicable + if ($this->shouldOrderAnswersAlphabetically()) { + foreach ($answerOptions as $scaleId => $scaleArray) { + $sorted = array(); - // We create an aray aSorted that will use the answer in the current language as key, and that will store its old index as value - foreach ($aScaleArray as $iKey => $oAnswer) { - $aSorted[$oAnswer->answerl10ns[$this->survey->language]->answer] = $iKey; + // We create an aray sorted that will use the answer in the current language as key, and that will store its old index as value + foreach ($scaleArray as $key => $answer) { + $sorted[$answer->answerl10ns[$this->survey->language]->answer] = $key; } + ksort($sorted); - ksort($aSorted); - - // Now, we create a new array that store the old values of $aAnswerOptions in the order of $aSorted - $aNew = array(); - foreach ($aSorted as $sAnswer => $iKey) { - $aNew[] = $aScaleArray[$iKey]; + // Now, we create a new array that store the old values of $answerOptions in the order of $sorted + $sortedScaleAnswers = array(); + foreach ($sorted as $answer => $key) { + $sortedScaleAnswers[] = $scaleArray[$key]; } - $aAnswerOptions[$scaleId] = $aNew; + $answerOptions[$scaleId] = $sortedScaleAnswers; } - return $aAnswerOptions; + return $answerOptions; } - foreach ($aAnswerOptions as $scaleId => $aScaleArray) { - usort($aScaleArray, function ($a, $b) { + // Sort by Answer's own sort order + foreach ($answerOptions as $scaleId => $scaleArray) { + usort($scaleArray, function ($a, $b) { return $a->sortorder > $b->sortorder ? 1 : ($a->sortorder < $b->sortorder ? -1 : 0); }); - $aAnswerOptions[$scaleId] = $aScaleArray; + $answerOptions[$scaleId] = $scaleArray; } - return $aAnswerOptions; + return $answerOptions; + } + + /** + * Returns true if the answer options should be ordered randomly. + * @return bool + */ + private function shouldOrderAnswersRandomly() + { + // Question types supporting both Random Order and Alphabetical Order should + // implement the 'answer_order' attribute instead of using separate attributes. + $answerOrder = $this->getQuestionAttribute('answer_order'); + if (!is_null($answerOrder)) { + return $answerOrder == 'random'; + } + return $this->getQuestionAttribute('random_order') == 1 && $this->getQuestionType()->subquestions == 0; + } + + /** + * Returns true if the answer options should be ordered alphabetically. + * @return bool + */ + private function shouldOrderAnswersAlphabetically() + { + // Question types supporting both Random Order and Alphabetical Order should + // implement the 'answer_order' attribute instead of using separate attributes. + $answerOrder = $this->getQuestionAttribute('answer_order'); + if (!is_null($answerOrder)) { + return $answerOrder == 'alphabetical'; + } + return $this->getQuestionAttribute('alphasort') == 1; } /** diff --git a/application/views/survey/questions/answer/list_dropdown/config.xml b/application/views/survey/questions/answer/list_dropdown/config.xml index eda8c9a3342..3b37dc83117 100644 --- a/application/views/survey/questions/answer/list_dropdown/config.xml +++ b/application/views/survey/questions/answer/list_dropdown/config.xml @@ -73,23 +73,27 @@ - alphasort + answer_order Display 100 - switch + singleselect + - 0 - Sort the answer options alphabetically - Sort answers alphabetically + normal + Present answer options in normal, random or alphabetical order + Answer options order @@ -186,29 +190,6 @@ - - random_order - Display - 100 - singleselect - - - - - 0 - Present subquestions/answer options in random order - Random order - - - - - hide_tip Display diff --git a/application/views/survey/questions/answer/list_with_comment/config.xml b/application/views/survey/questions/answer/list_with_comment/config.xml index c5a97f17f1e..741a62cb576 100644 --- a/application/views/survey/questions/answer/list_with_comment/config.xml +++ b/application/views/survey/questions/answer/list_with_comment/config.xml @@ -60,46 +60,27 @@ - alphasort + answer_order Display 100 - switch + singleselect - - 0 - Sort the answer options alphabetically - Sort answers alphabetically - - - - - - - random_order - Display - 100 - singleselect - - - 0 - Present subquestions/answer options in random order - Random order + normal + Present answer options in normal, random or alphabetical order + Answer options order diff --git a/application/views/survey/questions/answer/listradio/config.xml b/application/views/survey/questions/answer/listradio/config.xml index eb72c1e0d6e..c8b6b27f9c2 100644 --- a/application/views/survey/questions/answer/listradio/config.xml +++ b/application/views/survey/questions/answer/listradio/config.xml @@ -61,23 +61,27 @@ - alphasort + answer_order Display 100 - switch + singleselect + - 0 - Sort the answer options alphabetically - Sort answers alphabetically + normal + Present answer options in normal, random or alphabetical order + Answer options order @@ -138,29 +142,6 @@ - - random_order - Display - 100 - singleselect - - - - - 0 - Present subquestions/answer options in random order - Random order - - - - - hide_tip Display diff --git a/application/views/survey/questions/answer/ranking/config.xml b/application/views/survey/questions/answer/ranking/config.xml index 965f44070b6..a879b1bf46a 100644 --- a/application/views/survey/questions/answer/ranking/config.xml +++ b/application/views/survey/questions/answer/ranking/config.xml @@ -347,23 +347,27 @@ - random_order + answer_order Display 100 singleselect + - 0 - Present subquestions/answer options in random order - Random order + normal + Present answer options in normal, random or alphabetical order + Answer options order diff --git a/docs/release_notes.txt b/docs/release_notes.txt index 51b5e431987..1e1781f7cb6 100644 --- a/docs/release_notes.txt +++ b/docs/release_notes.txt @@ -34,6 +34,19 @@ Thank you to everyone who helped with this new release! CHANGE LOG ------------------------------------------------------ +Changes from 5.4.14 (build 221205) to 5.4.15 (build 221212) December 12, 2022 +-Fixed issue #14310: Google Analytics functionality doesn't work (#2762) (Gabriel Jenik) +#Updated translation: Slovak by jelen1 +#Updated translation: Portuguese (Portugal) by samarta +#Updated translation: Polish by elissa +#Updated translation: Polish (Informal) by elissa +#Updated translation: Japanese by nomoto +#Updated translation: Finnish by Jmantysalo +#Updated translation: Czech by jelen1 +#Updated translation: Czech (Informal) by jelen1 +#Updated translation: Catalan by qualitatuvic + + Changes from 5.4.13 (build 221128) to 5.4.14 (build 221205) December 5, 2022 -Fixed issue #18337: Placeholders VALIDFROM and VALIDUNTIL at email templates do not use localized dates (#2591) (Gabriel Jenik) -Fixed issue #18250: Admin CSS hide logic file part (#2657) (Gabriel Jenik) diff --git a/locale/_template/limesurvey.pot b/locale/_template/limesurvey.pot index 3f8b717d2d7..324a94a6e13 100644 --- a/locale/_template/limesurvey.pot +++ b/locale/_template/limesurvey.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: LimeSurvey language file\n" "Report-Msgid-Bugs-To: http://translate.limesurvey.org/\n" -"POT-Creation-Date: 2022-12-05 09:31:49+00:00\n" +"POT-Creation-Date: 2022-12-12 15:10:14+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -33,29 +33,29 @@ msgstr "" #: application/core/plugins/TwoFactorAdminLogin/views/_partial/error.php:11 #: application/extensions/PanelBoxWidget/PanelBoxWidget.php:60 #: application/extensions/admin/grid/MassiveActionsWidget/views/modals/first-select.php:7 -#: application/helpers/SurveyRuntimeHelper.php:1153 +#: application/helpers/SurveyRuntimeHelper.php:1154 #: application/helpers/admin/import_helper.php:97 -#: application/helpers/admin/import_helper.php:204 -#: application/helpers/admin/import_helper.php:302 -#: application/helpers/admin/import_helper.php:749 -#: application/helpers/admin/import_helper.php:1351 -#: application/helpers/admin/import_helper.php:1354 -#: application/helpers/admin/import_helper.php:1392 -#: application/helpers/admin/import_helper.php:1516 -#: application/helpers/admin/import_helper.php:1622 -#: application/helpers/admin/import_helper.php:1796 -#: application/helpers/admin/import_helper.php:1803 -#: application/helpers/admin/import_helper.php:1881 -#: application/helpers/admin/import_helper.php:1912 -#: application/helpers/admin/import_helper.php:1938 -#: application/helpers/admin/import_helper.php:1965 -#: application/helpers/admin/import_helper.php:1987 -#: application/helpers/admin/import_helper.php:2010 -#: application/helpers/admin/import_helper.php:2113 -#: application/helpers/admin/import_helper.php:2294 -#: application/helpers/admin/import_helper.php:2656 -#: application/helpers/admin/import_helper.php:3287 -#: application/helpers/admin/import_helper.php:3332 +#: application/helpers/admin/import_helper.php:205 +#: application/helpers/admin/import_helper.php:304 +#: application/helpers/admin/import_helper.php:788 +#: application/helpers/admin/import_helper.php:1423 +#: application/helpers/admin/import_helper.php:1426 +#: application/helpers/admin/import_helper.php:1464 +#: application/helpers/admin/import_helper.php:1590 +#: application/helpers/admin/import_helper.php:1696 +#: application/helpers/admin/import_helper.php:1884 +#: application/helpers/admin/import_helper.php:1891 +#: application/helpers/admin/import_helper.php:1992 +#: application/helpers/admin/import_helper.php:2023 +#: application/helpers/admin/import_helper.php:2049 +#: application/helpers/admin/import_helper.php:2076 +#: application/helpers/admin/import_helper.php:2098 +#: application/helpers/admin/import_helper.php:2121 +#: application/helpers/admin/import_helper.php:2224 +#: application/helpers/admin/import_helper.php:2405 +#: application/helpers/admin/import_helper.php:2767 +#: application/helpers/admin/import_helper.php:3398 +#: application/helpers/admin/import_helper.php:3443 #: application/models/TemplateManifest.php:171 #: application/models/TemplateManifest.php:418 #: application/models/services/PasswordManagement.php:85 @@ -246,7 +246,7 @@ msgid "You do not have permission to access this page." msgstr "" #: application/controllers/AssessmentController.php:76 -#: application/controllers/PrintanswersController.php:154 +#: application/controllers/PrintanswersController.php:155 #: application/controllers/QuestionAdministrationController.php:185 #: application/controllers/QuestionAdministrationController.php:309 #: application/controllers/QuestionAdministrationController.php:1052 @@ -863,7 +863,7 @@ msgstr "" #: application/controllers/LimereplacementfieldsController.php:401 #: application/controllers/LimereplacementfieldsController.php:416 #: application/controllers/QuestionAdministrationController.php:1496 -#: application/models/Question.php:955 +#: application/models/Question.php:995 #: application/views/admin/survey/Question/massive_actions/_delete_results.php:10 msgid "Question ID" msgstr "" @@ -1421,7 +1421,7 @@ msgid "You can't reorder in an active survey" msgstr "" #: application/controllers/RegisterController.php:166 -#: application/helpers/SurveyRuntimeHelper.php:1651 +#: application/helpers/SurveyRuntimeHelper.php:1652 msgid "Your answer to the security question was not correct - please try again." msgstr "" @@ -1502,8 +1502,8 @@ msgid "Invalid response ID" msgstr "" #: application/controllers/ResponsesController.php:150 -#: application/helpers/common_helper.php:1335 -#: application/helpers/common_helper.php:2866 +#: application/helpers/common_helper.php:1337 +#: application/helpers/common_helper.php:2868 #: application/models/SurveyLink.php:233 application/models/Token.php:96 #: application/models/TokenDynamic.php:677 #: application/views/admin/dataentry/caption_view.php:36 @@ -1511,7 +1511,7 @@ msgid "Access code" msgstr "" #: application/controllers/ResponsesController.php:151 -#: application/helpers/common_helper.php:2846 +#: application/helpers/common_helper.php:2848 #: application/models/Participant.php:249 #: application/models/ParticipantShare.php:231 application/models/Token.php:92 #: application/models/TokenDynamic.php:643 @@ -1524,7 +1524,7 @@ msgid "First name" msgstr "" #: application/controllers/ResponsesController.php:152 -#: application/helpers/common_helper.php:2851 +#: application/helpers/common_helper.php:2853 #: application/models/Participant.php:250 #: application/models/ParticipantShare.php:226 application/models/Token.php:93 #: application/models/TokenDynamic.php:651 @@ -1559,7 +1559,7 @@ msgstr "" #: application/controllers/admin/DataEntry.php:525 #: application/controllers/admin/Quotas.php:259 #: application/controllers/admin/Tokens.php:1612 -#: application/helpers/common_helper.php:2896 +#: application/helpers/common_helper.php:2898 #: application/models/TemplateManifest.php:166 application/models/Token.php:102 #: application/views/admin/quotas/viewquotas_view.php:81 #: application/views/admin/token/exportdialog.php:17 @@ -1594,8 +1594,8 @@ msgstr "" #: application/controllers/ResponsesController.php:208 #: application/controllers/UploaderController.php:320 #: application/controllers/admin/DataEntry.php:966 -#: application/helpers/common_helper.php:1561 -#: application/helpers/common_helper.php:1810 +#: application/helpers/common_helper.php:1563 +#: application/helpers/common_helper.php:1812 #: application/helpers/export_helper.php:1285 #: application/helpers/update/updatedb_helper.php:648 #: application/helpers/update/updatedb_helper.php:904 @@ -1680,14 +1680,14 @@ msgstr "" #: application/controllers/ResponsesController.php:850 #: application/controllers/ResponsesController.php:864 -#: application/helpers/common_helper.php:1957 +#: application/helpers/common_helper.php:1959 msgid "Total time" msgstr "" #: application/controllers/ResponsesController.php:868 #: application/extensions/admin/survey/ListSurveysWidget/views/listSurveys.php:81 #: application/helpers/admin/export/HtmlWriter.php:72 -#: application/models/Assessment.php:143 application/models/Question.php:985 +#: application/models/Assessment.php:143 application/models/Question.php:1025 #: application/models/QuestionType.php:123 #: application/models/SurveysGroups.php:438 #: application/views/assessment/assessments_edit.php:34 @@ -1700,7 +1700,7 @@ msgstr "" #: application/controllers/ResponsesController.php:876 #: application/helpers/admin/statistics_helper.php:4305 -#: application/models/Question.php:971 +#: application/models/Question.php:1011 #: application/models/TemplateManifest.php:165 #: application/views/admin/conditions/includes/form_editconditions_header.php:67 #: application/views/admin/conditions/includes/quickAddConditionForm.php:22 @@ -2060,7 +2060,7 @@ msgid "Survey update failed" msgstr "" #: application/controllers/SurveyAdministrationController.php:825 -#: application/helpers/SurveyRuntimeHelper.php:1147 +#: application/helpers/SurveyRuntimeHelper.php:1148 #: application/helpers/update/update_helper.php:37 #: application/models/services/PasswordManagement.php:99 #: application/views/admin/dataentry/insert.php:37 @@ -2218,7 +2218,7 @@ msgstr "" #: application/controllers/admin/ParticipantsAction.php:873 #: application/controllers/admin/Themes.php:390 #: application/core/SurveyCommonAction.php:1132 -#: application/helpers/SurveyRuntimeHelper.php:1440 +#: application/helpers/SurveyRuntimeHelper.php:1441 #: application/helpers/frontend_helper.php:2226 #: application/models/services/CopySurveyResources.php:68 #: application/models/services/FilterImportedResources.php:69 @@ -2364,8 +2364,8 @@ msgstr "" #: application/helpers/SurveyRuntimeHelper.php:550 #: application/helpers/admin/statistics_helper.php:1221 #: application/helpers/admin/statistics_helper.php:1335 -#: application/helpers/common_helper.php:1027 -#: application/helpers/common_helper.php:1051 +#: application/helpers/common_helper.php:1029 +#: application/helpers/common_helper.php:1053 #: application/helpers/export_helper.php:377 #: application/helpers/export_helper.php:381 #: application/helpers/export_helper.php:1913 @@ -2524,9 +2524,9 @@ msgstr "" #: application/helpers/SurveyRuntimeHelper.php:550 #: application/helpers/admin/statistics_helper.php:1220 #: application/helpers/admin/statistics_helper.php:1334 -#: application/helpers/common_helper.php:1017 -#: application/helpers/common_helper.php:1024 -#: application/helpers/common_helper.php:1048 +#: application/helpers/common_helper.php:1019 +#: application/helpers/common_helper.php:1026 +#: application/helpers/common_helper.php:1050 #: application/helpers/export_helper.php:356 #: application/helpers/export_helper.php:367 #: application/helpers/export_helper.php:376 @@ -2772,7 +2772,7 @@ msgstr "" #: application/models/ParticipantAttributeName.php:249 #: application/models/ParticipantShare.php:221 #: application/models/Permissiontemplates.php:255 -#: application/models/Question.php:948 application/models/SavedControl.php:161 +#: application/models/Question.php:988 application/models/SavedControl.php:161 #: application/models/Surveymenu.php:399 #: application/models/SurveymenuEntries.php:194 #: application/models/SurveymenuEntries.php:207 @@ -2934,7 +2934,7 @@ msgstr "" #: application/extensions/TopbarWidget/views/tokensTopbar_view.php:34 #: application/extensions/admin/survey/LanguagesWidget/LanguagesWidget.php:22 #: application/extensions/admin/survey/ListSurveysWidget/views/massive_actions/_export_archive_results.php:44 -#: application/helpers/SurveyRuntimeHelper.php:1439 +#: application/helpers/SurveyRuntimeHelper.php:1440 #: application/models/Box.php:152 #: application/models/TemplateConfiguration.php:773 #: application/models/TemplateConfiguration.php:786 @@ -3388,8 +3388,8 @@ msgstr "" #: application/core/QuestionTypes/RankingStyle/RenderRanking.php:76 #: application/helpers/common_helper.php:180 #: application/helpers/common_helper.php:650 -#: application/helpers/common_helper.php:4415 -#: application/helpers/common_helper.php:4461 +#: application/helpers/common_helper.php:4417 +#: application/helpers/common_helper.php:4463 #: application/helpers/qanda_helper.php:723 #: application/helpers/qanda_helper.php:1318 #: application/helpers/qanda_helper.php:3775 @@ -4112,8 +4112,8 @@ msgstr "" #: application/helpers/admin/statistics_helper.php:2376 #: application/helpers/admin/statistics_helper.php:3291 #: application/helpers/admin/statistics_helper.php:3298 -#: application/helpers/common_helper.php:1030 -#: application/helpers/common_helper.php:1042 +#: application/helpers/common_helper.php:1032 +#: application/helpers/common_helper.php:1044 #: application/helpers/qanda_helper.php:828 #: application/helpers/qanda_helper.php:1161 #: application/helpers/qanda_helper.php:1219 @@ -4138,7 +4138,7 @@ msgstr "" #: application/controllers/admin/ConditionsAction.php:663 #: application/controllers/admin/Tokens.php:1554 -#: application/helpers/SurveyRuntimeHelper.php:1162 +#: application/helpers/SurveyRuntimeHelper.php:1163 #: application/views/admin/dataentry/import.php:34 #: application/views/admin/dataentry/vvimport_result.php:22 #: application/views/admin/survey/subview/accordion/_tokens_panel.php:191 @@ -4224,7 +4224,7 @@ msgstr "" #: application/core/plugins/ExportSPSSsav/SPSSWriter.php:217 #: application/core/plugins/ExportSTATAxml/STATAxmlWriter.php:245 #: application/helpers/admin/statistics_helper.php:1222 -#: application/helpers/common_helper.php:1054 +#: application/helpers/common_helper.php:1056 #: application/helpers/export_helper.php:382 #: application/helpers/export_helper.php:1934 #: application/helpers/expressions/em_manager_helper.php:3355 @@ -4241,7 +4241,7 @@ msgstr "" #: application/core/plugins/ExportSPSSsav/SPSSWriter.php:222 #: application/core/plugins/ExportSTATAxml/STATAxmlWriter.php:250 #: application/helpers/admin/statistics_helper.php:1238 -#: application/helpers/common_helper.php:1061 +#: application/helpers/common_helper.php:1063 #: application/helpers/export_helper.php:385 #: application/helpers/export_helper.php:1939 #: application/helpers/expressions/em_manager_helper.php:3358 @@ -4258,7 +4258,7 @@ msgstr "" #: application/core/plugins/ExportSPSSsav/SPSSWriter.php:226 #: application/core/plugins/ExportSTATAxml/STATAxmlWriter.php:254 #: application/helpers/admin/statistics_helper.php:1239 -#: application/helpers/common_helper.php:1067 +#: application/helpers/common_helper.php:1069 #: application/helpers/export_helper.php:386 #: application/helpers/export_helper.php:1939 #: application/helpers/expressions/em_manager_helper.php:3359 @@ -4275,7 +4275,7 @@ msgstr "" #: application/core/plugins/ExportSPSSsav/SPSSWriter.php:230 #: application/core/plugins/ExportSTATAxml/STATAxmlWriter.php:258 #: application/helpers/admin/statistics_helper.php:1240 -#: application/helpers/common_helper.php:1064 +#: application/helpers/common_helper.php:1066 #: application/helpers/export_helper.php:387 #: application/helpers/export_helper.php:1939 #: application/helpers/expressions/em_manager_helper.php:3360 @@ -4286,13 +4286,13 @@ msgid "Decrease" msgstr "" #: application/controllers/admin/ConditionsAction.php:1502 -#: application/helpers/common_helper.php:1645 +#: application/helpers/common_helper.php:1647 #: application/helpers/update/updatedb_helper.php:732 msgid "Scale 1" msgstr "" #: application/controllers/admin/ConditionsAction.php:1503 -#: application/helpers/common_helper.php:1669 +#: application/helpers/common_helper.php:1671 #: application/helpers/update/updatedb_helper.php:756 msgid "Scale 2" msgstr "" @@ -4321,7 +4321,7 @@ msgstr "" #: application/core/plugins/ExportSPSSsav/SPSSWriter.php:191 #: application/core/plugins/ExportSTATAxml/STATAxmlWriter.php:219 #: application/helpers/admin/statistics_helper.php:1327 -#: application/helpers/common_helper.php:1039 +#: application/helpers/common_helper.php:1041 #: application/helpers/export_helper.php:372 #: application/helpers/export_helper.php:1918 #: application/helpers/expressions/em_manager_helper.php:3346 @@ -4341,7 +4341,7 @@ msgstr "" #: application/core/plugins/ExportSPSSsav/SPSSWriter.php:195 #: application/core/plugins/ExportSTATAxml/STATAxmlWriter.php:223 #: application/helpers/admin/statistics_helper.php:1328 -#: application/helpers/common_helper.php:1036 +#: application/helpers/common_helper.php:1038 #: application/helpers/export_helper.php:373 #: application/helpers/export_helper.php:1918 #: application/helpers/expressions/em_manager_helper.php:3345 @@ -4365,10 +4365,10 @@ msgstr "" #: application/helpers/admin/statistics_helper.php:1614 #: application/helpers/admin/statistics_helper.php:2263 #: application/helpers/admin/statistics_helper.php:2381 -#: application/helpers/common_helper.php:1010 -#: application/helpers/common_helper.php:1081 -#: application/helpers/common_helper.php:1527 -#: application/helpers/common_helper.php:1835 +#: application/helpers/common_helper.php:1012 +#: application/helpers/common_helper.php:1083 +#: application/helpers/common_helper.php:1529 +#: application/helpers/common_helper.php:1837 #: application/helpers/export_helper.php:1184 #: application/helpers/export_helper.php:1194 #: application/helpers/export_helper.php:1322 @@ -4391,7 +4391,8 @@ msgstr "" #: application/helpers/userstatistics_helper.php:1355 #: application/helpers/userstatistics_helper.php:1475 #: application/helpers/userstatistics_helper.php:1593 -#: application/models/Question.php:999 application/models/SurveyDynamic.php:844 +#: application/models/Question.php:1039 +#: application/models/SurveyDynamic.php:844 #: application/models/SurveyDynamic.php:914 #: application/views/admin/dataentry/content_view.php:175 #: application/views/admin/dataentry/content_view.php:179 @@ -4546,8 +4547,8 @@ msgstr "" #: application/core/SurveyCommonAction.php:868 #: application/helpers/LayoutHelper.php:136 #: application/helpers/common_helper.php:652 -#: application/helpers/common_helper.php:4417 -#: application/helpers/common_helper.php:4463 +#: application/helpers/common_helper.php:4419 +#: application/helpers/common_helper.php:4465 #: application/helpers/questionHelper.php:1201 #: application/views/admin/dataentry/content_view.php:250 #: application/views/admin/survey/subview/accordion/_notification_panel.php:23 @@ -5294,8 +5295,8 @@ msgstr "" #: application/extensions/admin/grid/MassiveActionsWidget/views/modals/unkown_modal_type.php:14 #: application/extensions/admin/grid/MassiveActionsWidget/views/modals/yes-no-lg.php:52 #: application/extensions/admin/grid/MassiveActionsWidget/views/modals/yes-no.php:52 -#: application/helpers/replacements_helper.php:350 -#: application/helpers/replacements_helper.php:463 +#: application/helpers/replacements_helper.php:322 +#: application/helpers/replacements_helper.php:435 #: application/models/TemplateConfig.php:609 #: application/models/TemplateConfig.php:610 #: application/views/admin/emailtemplates/email_language_template_tab.php:126 @@ -7371,27 +7372,27 @@ msgstr "" msgid "There is no matching saved response." msgstr "" -#: application/controllers/survey/index.php:490 +#: application/controllers/survey/index.php:491 msgid "This invitation has already been used." msgstr "" -#: application/controllers/survey/index.php:492 +#: application/controllers/survey/index.php:493 msgid "This invitation has no uses left." msgstr "" -#: application/controllers/survey/index.php:494 +#: application/controllers/survey/index.php:495 msgid "This invitation is not valid yet." msgstr "" -#: application/controllers/survey/index.php:496 +#: application/controllers/survey/index.php:497 msgid "This invitation is not valid anymore." msgstr "" -#: application/controllers/survey/index.php:499 +#: application/controllers/survey/index.php:500 msgid "This is a controlled survey. You need a valid access code to participate." msgstr "" -#: application/controllers/survey/index.php:503 +#: application/controllers/survey/index.php:504 msgid "We are sorry but you are not allowed to enter this survey." msgstr "" @@ -9495,7 +9496,7 @@ msgid "If you want to change the question group this question is in." msgstr "" #: application/extensions/GeneralOptionWidget/settings/MandatoryGeneralOption.php:15 -#: application/models/Question.php:991 +#: application/models/Question.php:1031 #: application/views/survey/system/required.php:6 #: tmp/runtime/twig_cache/12/122648e0e3478298938e2ea375963e6c70db0c49de9611f78313778177aca848.php:205 #: tmp/runtime/twig_cache/12/122648e0e3478298938e2ea375963e6c70db0c49de9611f78313778177aca848.php:260 @@ -9514,7 +9515,7 @@ msgid "Makes this question mandatory in your survey. Option \"Soft\" gives a pos msgstr "" #: application/extensions/GeneralOptionWidget/settings/MandatoryGeneralOption.php:26 -#: application/models/Question.php:847 +#: application/models/Question.php:887 #: application/views/admin/survey/Question/massive_actions/_set_questions_mandatory.php:21 #: application/views/questionAdministration/summary.php:170 msgid "Soft" @@ -10407,77 +10408,77 @@ msgstr "" msgid "We are sorry but you can't proceed without first agreeing to our survey privacy policy." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1148 +#: application/helpers/SurveyRuntimeHelper.php:1149 msgid "Your responses were successfully saved." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1154 +#: application/helpers/SurveyRuntimeHelper.php:1155 msgid "Your responses were not saved. Please contact the survey administrator." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1163 +#: application/helpers/SurveyRuntimeHelper.php:1164 msgid "Saving responses is disabled if survey is not activated." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1268 +#: application/helpers/SurveyRuntimeHelper.php:1269 #: tmp/runtime/twig_cache/93/9311accde5c3ef94a9997e314f2249e1fa41a05258dcf14586fe7782d2960447.php:174 msgid "Print your answers." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1269 -#: application/helpers/SurveyRuntimeHelper.php:1277 +#: application/helpers/SurveyRuntimeHelper.php:1270 +#: application/helpers/SurveyRuntimeHelper.php:1278 msgid "Note: This link only works if the survey is activated." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1276 +#: application/helpers/SurveyRuntimeHelper.php:1277 #: tmp/runtime/twig_cache/93/9311accde5c3ef94a9997e314f2249e1fa41a05258dcf14586fe7782d2960447.php:212 msgid "View the statistics for this survey." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1353 +#: application/helpers/SurveyRuntimeHelper.php:1354 msgid "Note: Automatically loading the end URL works only if the survey is activated." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1464 +#: application/helpers/SurveyRuntimeHelper.php:1465 #: application/helpers/qanda_helper.php:323 msgid "One or more mandatory questions have not been answered. You cannot proceed until these have been completed." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1466 +#: application/helpers/SurveyRuntimeHelper.php:1467 #: application/helpers/qanda_helper.php:316 msgid "One or more mandatory questions have not been answered. If possible, please complete them before continuing to the next page." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1472 +#: application/helpers/SurveyRuntimeHelper.php:1473 #: application/helpers/qanda_helper.php:345 msgid "One or more questions have not been answered in a valid manner. You cannot proceed until these answers are valid." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1477 +#: application/helpers/SurveyRuntimeHelper.php:1478 msgid "One or more uploaded files are not in proper format/size. You cannot proceed until these files are valid." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1653 +#: application/helpers/SurveyRuntimeHelper.php:1654 msgid "Your have to answer the security question - please try again." msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1752 +#: application/helpers/SurveyRuntimeHelper.php:1753 msgid "Invalid group number for this survey: " msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1758 +#: application/helpers/SurveyRuntimeHelper.php:1759 msgid "This group contains no questions. You must add questions to this group before you can preview it" msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1768 +#: application/helpers/SurveyRuntimeHelper.php:1769 msgid "This group is empty" msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1786 +#: application/helpers/SurveyRuntimeHelper.php:1787 msgid "Submit your answers" msgstr "" -#: application/helpers/SurveyRuntimeHelper.php:1787 +#: application/helpers/SurveyRuntimeHelper.php:1788 msgid "There are no more questions. Please press the button to finish this survey." msgstr "" @@ -10561,135 +10562,135 @@ msgstr "" msgid "The languages of the imported group file must at least include the base language of this survey." msgstr "" -#: application/helpers/admin/import_helper.php:208 -#: application/helpers/admin/import_helper.php:306 -#: application/helpers/admin/import_helper.php:753 -#: application/helpers/admin/import_helper.php:1520 -#: application/helpers/admin/import_helper.php:1626 +#: application/helpers/admin/import_helper.php:209 +#: application/helpers/admin/import_helper.php:308 +#: application/helpers/admin/import_helper.php:792 +#: application/helpers/admin/import_helper.php:1594 +#: application/helpers/admin/import_helper.php:1700 msgid "Error while saving: " msgstr "" -#: application/helpers/admin/import_helper.php:221 -#: application/helpers/admin/import_helper.php:632 -#: application/helpers/admin/import_helper.php:1534 +#: application/helpers/admin/import_helper.php:223 +#: application/helpers/admin/import_helper.php:671 +#: application/helpers/admin/import_helper.php:1608 msgid "Question code %s was updated to %s." msgstr "" -#: application/helpers/admin/import_helper.php:321 -#: application/helpers/admin/import_helper.php:769 -#: application/helpers/admin/import_helper.php:1641 +#: application/helpers/admin/import_helper.php:323 +#: application/helpers/admin/import_helper.php:808 +#: application/helpers/admin/import_helper.php:1715 msgid "Title of subquestion %s was updated to %s." msgstr "" -#: application/helpers/admin/import_helper.php:516 -#: application/helpers/admin/import_helper.php:2127 +#: application/helpers/admin/import_helper.php:555 +#: application/helpers/admin/import_helper.php:2238 msgid "Attention: Several question codes were updated. Please check these carefully as the update may not be perfect with customized expressions." msgstr "" -#: application/helpers/admin/import_helper.php:563 +#: application/helpers/admin/import_helper.php:602 msgid "The languages of the imported question file must at least include the base language of this survey." msgstr "" -#: application/helpers/admin/import_helper.php:627 -#: application/helpers/admin/import_helper.php:647 +#: application/helpers/admin/import_helper.php:666 +#: application/helpers/admin/import_helper.php:686 msgid "The question could not be imported for the following reasons:" msgstr "" -#: application/helpers/admin/import_helper.php:1133 +#: application/helpers/admin/import_helper.php:1205 msgid "Unable to create survey participants table" msgstr "" -#: application/helpers/admin/import_helper.php:1179 +#: application/helpers/admin/import_helper.php:1251 msgid "This is not a valid LimeSurvey survey structure XML file." msgstr "" -#: application/helpers/admin/import_helper.php:1282 +#: application/helpers/admin/import_helper.php:1354 msgid "This survey setting has not been imported: %s => %s" msgstr "" -#: application/helpers/admin/import_helper.php:1289 +#: application/helpers/admin/import_helper.php:1361 msgid "The desired survey ID was already in use, therefore a random one was assigned." msgstr "" -#: application/helpers/admin/import_helper.php:1292 +#: application/helpers/admin/import_helper.php:1364 msgid "Unable to import survey." msgstr "" -#: application/helpers/admin/import_helper.php:1434 +#: application/helpers/admin/import_helper.php:1506 msgid "Error while saving group: " msgstr "" -#: application/helpers/admin/import_helper.php:2033 +#: application/helpers/admin/import_helper.php:2144 msgid "Error when saving %s for plugin %s" msgstr "" -#: application/helpers/admin/import_helper.php:2036 +#: application/helpers/admin/import_helper.php:2147 msgid "Plugin %s didn't exist, settings not imported" msgstr "" -#: application/helpers/admin/import_helper.php:2176 +#: application/helpers/admin/import_helper.php:2287 msgid "This is not a valid participant data XML file." msgstr "" -#: application/helpers/admin/import_helper.php:2220 +#: application/helpers/admin/import_helper.php:2331 msgid "Skipped participant entry:" msgstr "" -#: application/helpers/admin/import_helper.php:2263 +#: application/helpers/admin/import_helper.php:2374 msgid "This is not a valid response data XML file." msgstr "" -#: application/helpers/admin/import_helper.php:2313 +#: application/helpers/admin/import_helper.php:2424 #: application/views/surveyAdministration/_activation_error.php:13 msgid "The survey response table could not be created." msgstr "" -#: application/helpers/admin/import_helper.php:2313 +#: application/helpers/admin/import_helper.php:2424 #: application/views/surveyAdministration/_activation_error.php:14 msgid "Usually this is caused by having too many (sub-)questions in your survey. Please try removing questions from your survey." msgstr "" -#: application/helpers/admin/import_helper.php:2362 +#: application/helpers/admin/import_helper.php:2473 msgid "File is empty or you selected an invalid character set (%s)." msgstr "" -#: application/helpers/admin/import_helper.php:2375 +#: application/helpers/admin/import_helper.php:2486 msgid "File seems empty or has only one line" msgstr "" -#: application/helpers/admin/import_helper.php:2425 +#: application/helpers/admin/import_helper.php:2536 msgid "Import failed: Forced import was requested but the input file doesn't contain enough columns to fill the survey." msgstr "" -#: application/helpers/admin/import_helper.php:2432 +#: application/helpers/admin/import_helper.php:2543 msgid "Import failed: No answers could be mapped." msgstr "" -#: application/helpers/admin/import_helper.php:2592 +#: application/helpers/admin/import_helper.php:2703 msgid "%s response lines in your file." msgstr "" -#: application/helpers/admin/import_helper.php:2594 +#: application/helpers/admin/import_helper.php:2705 msgid "No response lines in your file." msgstr "" -#: application/helpers/admin/import_helper.php:2597 +#: application/helpers/admin/import_helper.php:2708 msgid "%s responses were inserted." msgstr "" -#: application/helpers/admin/import_helper.php:2601 +#: application/helpers/admin/import_helper.php:2712 msgid "%s responses were updated." msgstr "" -#: application/helpers/admin/import_helper.php:2604 +#: application/helpers/admin/import_helper.php:2715 msgid "%s responses cannot be inserted or updated." msgstr "" -#: application/helpers/admin/import_helper.php:2607 +#: application/helpers/admin/import_helper.php:2718 msgid "%s responses already exist." msgstr "" -#: application/helpers/admin/import_helper.php:2624 +#: application/helpers/admin/import_helper.php:2735 msgid "This is not a valid timings data XML file." msgstr "" @@ -11104,64 +11105,64 @@ msgstr "" msgid "Expired" msgstr "" -#: application/helpers/common_helper.php:1296 +#: application/helpers/common_helper.php:1298 #: application/models/FailedEmail.php:154 msgid "Response ID" msgstr "" -#: application/helpers/common_helper.php:1303 +#: application/helpers/common_helper.php:1305 msgid "Date submitted" msgstr "" -#: application/helpers/common_helper.php:1310 +#: application/helpers/common_helper.php:1312 msgid "Last page" msgstr "" -#: application/helpers/common_helper.php:1317 +#: application/helpers/common_helper.php:1319 msgid "Start language" msgstr "" -#: application/helpers/common_helper.php:1324 +#: application/helpers/common_helper.php:1326 msgid "Seed" msgstr "" -#: application/helpers/common_helper.php:1348 +#: application/helpers/common_helper.php:1350 msgid "Date started" msgstr "" -#: application/helpers/common_helper.php:1360 +#: application/helpers/common_helper.php:1362 msgid "Date last action" msgstr "" -#: application/helpers/common_helper.php:1373 +#: application/helpers/common_helper.php:1375 #: application/models/SavedControl.php:177 #: application/views/admin/dataentry/caption_view.php:85 msgid "IP address" msgstr "" -#: application/helpers/common_helper.php:1382 +#: application/helpers/common_helper.php:1384 msgid "Referrer URL" msgstr "" -#: application/helpers/common_helper.php:1698 +#: application/helpers/common_helper.php:1700 #: application/helpers/update/updatedb_helper.php:792 msgid "Rank %s" msgstr "" -#: application/helpers/common_helper.php:1858 +#: application/helpers/common_helper.php:1860 #: application/helpers/update/updatedb_helper.php:952 msgid "Other comment" msgstr "" -#: application/helpers/common_helper.php:1963 +#: application/helpers/common_helper.php:1965 msgid "Group time" msgstr "" -#: application/helpers/common_helper.php:1969 +#: application/helpers/common_helper.php:1971 msgid "Question time" msgstr "" -#: application/helpers/common_helper.php:2856 +#: application/helpers/common_helper.php:2858 #: application/models/Participant.php:251 #: application/models/ParticipantShare.php:236 #: application/models/SavedControl.php:185 application/models/Token.php:94 @@ -11172,181 +11173,181 @@ msgstr "" msgid "Email address" msgstr "" -#: application/helpers/common_helper.php:2861 application/models/Token.php:95 +#: application/helpers/common_helper.php:2863 application/models/Token.php:95 #: application/models/TokenDynamic.php:668 msgid "Email status" msgstr "" -#: application/helpers/common_helper.php:2871 application/models/Token.php:97 +#: application/helpers/common_helper.php:2873 application/models/Token.php:97 msgid "Language code" msgstr "" -#: application/helpers/common_helper.php:2876 application/models/Token.php:99 +#: application/helpers/common_helper.php:2878 application/models/Token.php:99 msgid "Invitation sent date" msgstr "" -#: application/helpers/common_helper.php:2881 application/models/Token.php:100 +#: application/helpers/common_helper.php:2883 application/models/Token.php:100 msgid "Last reminder sent date" msgstr "" -#: application/helpers/common_helper.php:2886 application/models/Token.php:101 +#: application/helpers/common_helper.php:2888 application/models/Token.php:101 msgid "Total numbers of sent reminders" msgstr "" -#: application/helpers/common_helper.php:2891 application/models/Token.php:103 +#: application/helpers/common_helper.php:2893 application/models/Token.php:103 #: application/models/TokenDynamic.php:728 msgid "Uses left" msgstr "" -#: application/helpers/common_helper.php:4246 +#: application/helpers/common_helper.php:4248 msgid "SQL command failed: %s" msgstr "" -#: application/helpers/common_helper.php:4567 +#: application/helpers/common_helper.php:4569 msgid "ARMSCII-8 Armenian" msgstr "" -#: application/helpers/common_helper.php:4568 +#: application/helpers/common_helper.php:4570 msgid "US ASCII" msgstr "" -#: application/helpers/common_helper.php:4569 +#: application/helpers/common_helper.php:4571 msgid "Big5 Traditional Chinese" msgstr "" -#: application/helpers/common_helper.php:4570 +#: application/helpers/common_helper.php:4572 msgid "Binary pseudo charset" msgstr "" -#: application/helpers/common_helper.php:4571 +#: application/helpers/common_helper.php:4573 msgid "Windows Central European (Windows-1250)" msgstr "" -#: application/helpers/common_helper.php:4572 +#: application/helpers/common_helper.php:4574 msgid "Windows Cyrillic (Windows-1251)" msgstr "" -#: application/helpers/common_helper.php:4573 +#: application/helpers/common_helper.php:4575 msgid "Windows Arabic (Windows-1256)" msgstr "" -#: application/helpers/common_helper.php:4574 +#: application/helpers/common_helper.php:4576 msgid "Windows Baltic (Windows-1257)" msgstr "" -#: application/helpers/common_helper.php:4575 +#: application/helpers/common_helper.php:4577 msgid "DOS West European (cp850)" msgstr "" -#: application/helpers/common_helper.php:4576 +#: application/helpers/common_helper.php:4578 msgid "DOS Central European (cp852)" msgstr "" -#: application/helpers/common_helper.php:4577 +#: application/helpers/common_helper.php:4579 msgid "DOS Cyrillic (cp866)" msgstr "" -#: application/helpers/common_helper.php:4578 +#: application/helpers/common_helper.php:4580 msgid "Windows-31J - SJIS for Windows Japanese (cp932)" msgstr "" -#: application/helpers/common_helper.php:4579 +#: application/helpers/common_helper.php:4581 msgid "DEC West European" msgstr "" -#: application/helpers/common_helper.php:4580 +#: application/helpers/common_helper.php:4582 msgid "UJIS for Windows Japanese" msgstr "" -#: application/helpers/common_helper.php:4581 +#: application/helpers/common_helper.php:4583 msgid "EUC-KR Korean" msgstr "" -#: application/helpers/common_helper.php:4582 +#: application/helpers/common_helper.php:4584 msgid "GB2312 Simplified Chinese" msgstr "" -#: application/helpers/common_helper.php:4583 +#: application/helpers/common_helper.php:4585 msgid "GBK Simplified Chinese" msgstr "" -#: application/helpers/common_helper.php:4584 +#: application/helpers/common_helper.php:4586 msgid "GEOSTD8 Georgian" msgstr "" -#: application/helpers/common_helper.php:4585 +#: application/helpers/common_helper.php:4587 msgid "ISO 8859-7 Greek" msgstr "" -#: application/helpers/common_helper.php:4586 +#: application/helpers/common_helper.php:4588 msgid "ISO 8859-8 Hebrew" msgstr "" -#: application/helpers/common_helper.php:4587 +#: application/helpers/common_helper.php:4589 msgid "HP West European" msgstr "" -#: application/helpers/common_helper.php:4588 +#: application/helpers/common_helper.php:4590 msgid "DOS Kamenicky Czech-Slovak (cp895)" msgstr "" -#: application/helpers/common_helper.php:4589 +#: application/helpers/common_helper.php:4591 msgid "KOI8-R Relcom Russian" msgstr "" -#: application/helpers/common_helper.php:4590 +#: application/helpers/common_helper.php:4592 msgid "KOI8-U Ukrainian" msgstr "" -#: application/helpers/common_helper.php:4591 +#: application/helpers/common_helper.php:4593 msgid "ISO 8859-1 West European (latin1)" msgstr "" -#: application/helpers/common_helper.php:4592 +#: application/helpers/common_helper.php:4594 msgid "ISO 8859-2 Central European (latin2)" msgstr "" -#: application/helpers/common_helper.php:4593 +#: application/helpers/common_helper.php:4595 msgid "ISO 8859-9 Turkish (latin5)" msgstr "" -#: application/helpers/common_helper.php:4594 +#: application/helpers/common_helper.php:4596 msgid "ISO 8859-13 Baltic (latin7)" msgstr "" -#: application/helpers/common_helper.php:4595 +#: application/helpers/common_helper.php:4597 msgid "Mac Central European" msgstr "" -#: application/helpers/common_helper.php:4596 +#: application/helpers/common_helper.php:4598 msgid "Mac West European" msgstr "" -#: application/helpers/common_helper.php:4597 +#: application/helpers/common_helper.php:4599 msgid "Shift-JIS Japanese" msgstr "" -#: application/helpers/common_helper.php:4598 +#: application/helpers/common_helper.php:4600 msgid "7bit Swedish" msgstr "" -#: application/helpers/common_helper.php:4599 +#: application/helpers/common_helper.php:4601 msgid "TIS620 Thai" msgstr "" -#: application/helpers/common_helper.php:4600 +#: application/helpers/common_helper.php:4602 msgid "UCS-2 Unicode" msgstr "" -#: application/helpers/common_helper.php:4601 +#: application/helpers/common_helper.php:4603 msgid "EUC-JP Japanese" msgstr "" -#: application/helpers/common_helper.php:4602 +#: application/helpers/common_helper.php:4604 msgid "UTF-8 Unicode" msgstr "" -#: application/helpers/common_helper.php:4606 +#: application/helpers/common_helper.php:4608 msgid "(Automatic)" msgstr "" @@ -13759,8 +13760,8 @@ msgstr "" #: application/helpers/replacements_helper.php:154 #: application/helpers/replacements_helper.php:156 -#: application/helpers/replacements_helper.php:398 -#: application/helpers/replacements_helper.php:400 +#: application/helpers/replacements_helper.php:370 +#: application/helpers/replacements_helper.php:372 #: tmp/runtime/twig_cache/1d/1d98725c5691b1ee2d6f4b77a74d35f983b237dfa07a4df5003c258732ec7106.php:292 msgid "Please contact %s ( %s ) for further assistance." msgstr "" @@ -13786,17 +13787,17 @@ msgstr "" msgid "Note: Print will not include items on this page" msgstr "" -#: application/helpers/replacements_helper.php:306 +#: application/helpers/replacements_helper.php:278 #: tmp/runtime/twig_cache/56/56295e12f3097b51bdda1f02711545f53968ec9067bcbb238728e0e6a6a17670.php:47 msgid "Answers cleared" msgstr "" -#: application/helpers/replacements_helper.php:307 +#: application/helpers/replacements_helper.php:279 #: tmp/runtime/twig_cache/e8/e8ad6ab48b8b17f198fc5cf46bc09176974bbfc1473cb346afbcefa094807413.php:58 msgid "Your assessment" msgstr "" -#: application/helpers/replacements_helper.php:425 +#: application/helpers/replacements_helper.php:397 msgid "Unkown" msgstr "" @@ -15277,15 +15278,15 @@ msgstr "" msgid "Deleting will also delete any answer options and subquestions it includes. Are you sure you want to continue?" msgstr "" -#: application/models/Question.php:852 application/models/Question.php:866 +#: application/models/Question.php:892 application/models/Question.php:906 msgid "Not relevant for this question type" msgstr "" -#: application/models/Question.php:960 +#: application/models/Question.php:1000 msgid "Group / Question order" msgstr "" -#: application/models/Question.php:965 application/models/QuestionType.php:121 +#: application/models/Question.php:1005 application/models/QuestionType.php:121 #: application/models/SurveysGroups.php:95 #: application/models/SurveysGroups.php:141 #: application/views/admin/labels/_labelviewtabcontent_view.php:18 @@ -15293,7 +15294,7 @@ msgstr "" msgid "Code" msgstr "" -#: application/models/Question.php:977 +#: application/models/Question.php:1017 #: application/views/questionAdministration/typeSelector.php:52 msgid "Question type" msgstr "" diff --git a/locale/az/az.mo b/locale/az/az.mo index 685b9841eea..c73adddf732 100644 Binary files a/locale/az/az.mo and b/locale/az/az.mo differ diff --git a/locale/bs/bs.mo b/locale/bs/bs.mo index ddd4fe0e98b..a889b109087 100644 Binary files a/locale/bs/bs.mo and b/locale/bs/bs.mo differ diff --git a/locale/ca/ca.mo b/locale/ca/ca.mo index 7030bac85e5..979a0dc05a2 100644 Binary files a/locale/ca/ca.mo and b/locale/ca/ca.mo differ diff --git a/locale/cs-informal/cs-informal.mo b/locale/cs-informal/cs-informal.mo index 42cae070ebe..4f5bc497d4b 100644 Binary files a/locale/cs-informal/cs-informal.mo and b/locale/cs-informal/cs-informal.mo differ diff --git a/locale/cs/cs.mo b/locale/cs/cs.mo index 9c05dbe6b80..5d75d531928 100644 Binary files a/locale/cs/cs.mo and b/locale/cs/cs.mo differ diff --git a/locale/fi/fi.mo b/locale/fi/fi.mo index fe68ab607ce..09e208f09f4 100644 Binary files a/locale/fi/fi.mo and b/locale/fi/fi.mo differ diff --git a/locale/ja/ja.mo b/locale/ja/ja.mo index 6a0386a04d2..b4f3640805c 100644 Binary files a/locale/ja/ja.mo and b/locale/ja/ja.mo differ diff --git a/locale/pl-informal/pl-informal.mo b/locale/pl-informal/pl-informal.mo index 8b2d75a8bbd..7bdaa55e0f5 100644 Binary files a/locale/pl-informal/pl-informal.mo and b/locale/pl-informal/pl-informal.mo differ diff --git a/locale/pl/pl.mo b/locale/pl/pl.mo index 5978e23deb3..59c75192a1a 100644 Binary files a/locale/pl/pl.mo and b/locale/pl/pl.mo differ diff --git a/locale/pt/pt.mo b/locale/pt/pt.mo index 980fbe448d8..87ea646bca3 100644 Binary files a/locale/pt/pt.mo and b/locale/pt/pt.mo differ diff --git a/locale/sk/sk.mo b/locale/sk/sk.mo index d4dabe1e7be..6015d315f8c 100644 Binary files a/locale/sk/sk.mo and b/locale/sk/sk.mo differ diff --git a/locale/uk/uk.mo b/locale/uk/uk.mo index 0e01ded39f2..c2af2ab9aed 100644 Binary files a/locale/uk/uk.mo and b/locale/uk/uk.mo differ diff --git a/tests/unit/helpers/RemoteControlListParticipantsTest.php b/tests/unit/helpers/RemoteControlListParticipantsTest.php index ef32eb115ac..618b45ec0b1 100644 --- a/tests/unit/helpers/RemoteControlListParticipantsTest.php +++ b/tests/unit/helpers/RemoteControlListParticipantsTest.php @@ -188,7 +188,7 @@ public function testConditionEmptyResult() 999, false, ['validuntil', 'validfrom'], - ['validuntil' => ''] + ['validuntil' => null] ); $expected = [