diff --git a/CHANGELOG b/CHANGELOG
index 93dc3425..4f2371b0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -52,8 +52,8 @@ WHERE 1;
DROP TABLE `sessions2`;
/* Add sort order feature to questionnaire sample table */
-ALTER TABLE `questionnaire_sample` ADD `sort_order` INT( 11 ) NOT NULL DEFAULT '0';
-UPDATE `questionnaire_sample` SET sort_order = sample_import_id;
+/* after update just open "Assign & Sort questionnaire samples" admin page (assignsample.php) and set required sort_order*/
+ALTER TABLE `questionnaire_sample` ADD `sort_order` INT( 11 ) NOT NULL DEFAULT '1';
/* Add default outcomes feature */
@@ -70,6 +70,14 @@ ALTER TABLE `questionnaire` ADD `outcomes` VARCHAR(256) NULL DEFAULT '1,2,3,7,9,
UPDATE `questionnaire` SET `outcomes` = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,40,41,42,43,44,45' ;
+!!-- IMPORTANT --!!
+If you had more than 1 sample assigned to a questionaire before "samplesort" update, you'll need to have different sort_order values (llike 0,1,2 e.t.c.)for each sample per questionnaire to make "samplesort" feature work.
+
+Easy way: unassign samples from quesionnaires (no more than 1 could be left per questionnaire) and reassign them back.
+
+Check that you have different "Sort order" values for each sample per questionnaire, test order change with up/down arrows.
+!!
+
queXS 1.13.1 - Changes since 1.13.0
Fixed Bug: Remove references to old DEFAULT_TIME_ZONE config constant (use get_settings instead)
diff --git a/admin/assignsample.php b/admin/assignsample.php
index 7d9eaa94..a848d041 100644
--- a/admin/assignsample.php
+++ b/admin/assignsample.php
@@ -93,11 +93,8 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET['
$an = 0;
if (isset($_GET['allownew'])) $an = 1;
- $sql = "SELECT MAX(sort_order) + 1
- FROM questionnaire_sample
- WHERE questionnaire_id = '$questionnaire_id'";
-
- $so = $db->GetOne($sql);
+ $sql = "SELECT MAX(sort_order) + 1 FROM questionnaire_sample";
+ if(!$so = $db->GetOne($sql)) $so = 1;
$sql = "INSERT INTO questionnaire_sample(questionnaire_id,sample_import_id,call_max,call_attempt_max,random_select,answering_machine_messages,allow_new,sort_order)
VALUES('$questionnaire_id','$sid','$cm','$cam','$selecttype','$am', '$an', '$so')";
@@ -191,15 +188,15 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['rsid']))
if (isset($_GET['edit']))
{
$subtitle = T_("Edit assignment parameters");
- xhtml_head(T_("Assign samples to questionnaire: "),true,$css,$js_head,false,false,false,$subtitle);//array("../css/table.css"),array("../js/window.js")
+ xhtml_head(T_("Assign samples to questionnaire: "),true,$css,$js_head,false,false,false,$subtitle);
$sql = "SELECT si.description as description,
qr.description as qdescription,
q.call_max,
q.call_attempt_max,
q.random_select,
- q.answering_machine_messages,
- q.allow_new
+ q.answering_machine_messages,
+ q.allow_new
FROM questionnaire_sample as q, sample_import as si, questionnaire as qr
WHERE q.sample_import_id = si.sample_import_id
AND q.questionnaire_id = '$questionnaire_id'
@@ -210,9 +207,9 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['rsid']))
//print "
". T_("Samples selected for this questionnaire") .":
";
+ print "
+
". T_("Samples assigned to questionnaire") ." " . $db->GetOne("SELECT description from questionnaire WHERE questionnaire_id = $questionnaire_id") . "
";
- $sql = "SELECT q.sort_order as sort_order, si.description as description,si.sample_import_id,
+ $sql = "SELECT q.sort_order, si.description as description,si.sample_import_id,
CASE WHEN q.call_max = 0 THEN '". TQ_("Unlimited") ."' ELSE q.call_max END as call_max,
CASE WHEN q.call_attempt_max = 0 THEN '". TQ_("Unlimited") . "' ELSE q.call_attempt_max END AS call_attempt_max,
CASE WHEN q.random_select = 0 THEN '". TQ_("Sequential") ."' ELSE '". TQ_("Random") . "' END as random_select,
CASE WHEN q.answering_machine_messages = 0 THEN '". TQ_("Never") . "' ELSE q.answering_machine_messages END as answering_machine_messages,
CASE WHEN q.allow_new = 0 THEN '". TQ_("No") ."' ELSE '".TQ_("Yes")."' END as allow_new,
CONCAT('') as edit,
- CONCAT('') as unassign
- FROM questionnaire_sample as q, sample_import as si
- WHERE q.sample_import_id = si.sample_import_id
- AND q.questionnaire_id = '$questionnaire_id'
- ORDER BY q.sort_order ASC";
-
+ CONCAT('') as unassign
+ FROM questionnaire_sample as q, sample_import as si
+ WHERE q.sample_import_id = si.sample_import_id
+ AND q.questionnaire_id = '$questionnaire_id'
+ ORDER BY q.sort_order ASC";
$qs = $db->GetAll($sql);
if (!empty($qs))
{
- $co = count($qs);
- if ($co > 1)
- {
- for($i = 0; $i < $co; $i++)
- {
+ $co = count($qs);
+ if ($co > 1)
+ {
+ for($i = 0; $i < $co; $i++)
+ {
$down = "";
$up = "";
- if ($i == 0) //down only
- {
- $qs[$i]['sort_order'] = "
". T_("No samples selected for this questionnaire") ."
";
-
+ print"
";
+
$sql = "SELECT si.sample_import_id,si.description
FROM sample_import as si
LEFT JOIN questionnaire_sample as q ON (q.questionnaire_id = '$questionnaire_id' AND q.sample_import_id = si.sample_import_id)
WHERE q.questionnaire_id is NULL
AND si.enabled = 1";
-
$qs = $db->GetAll($sql);
- print"