diff --git a/admin/assignsample.php b/admin/assignsample.php index 49e0460f..eec75a46 100644 --- a/admin/assignsample.php +++ b/admin/assignsample.php @@ -104,6 +104,9 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' if (isset($_GET['generatecases'])) { include_once("../functions/functions.operator.php"); + + //TODO: check here if attributes available for assigning sample variables + //if not - fail $db->StartTrans(); @@ -113,7 +116,8 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' //add limesurvey attribute for each sample var record $sql = "SELECT var,type FROM sample_import_var_restrict - WHERE sample_import_id = '$sid'"; + WHERE sample_import_id = '$sid' + ORDER BY var_id ASC"; $rs = $db->GetAll($sql); @@ -127,17 +131,8 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' $fieldcontents.='attribute_'.$i.'='.$r['var']."\n"; $i++; } - $dict = NewDataDictionary($db); - $sqlarray = $dict->ChangeTableSQL(LIME_PREFIX ."tokens_$lime_sid", $fields); - $execresult=$dict->ExecuteSQLArray($sqlarray, false); - $sql = "UPDATE " . LIME_PREFIX . "surveys - SET attributedescriptions = " . $db->qstr($fieldcontents) . " - WHERE sid='$lime_sid'"; - - $db->Execute($sql); - - //generate one case for each sample record and set outcome to 41 + //generate one case for each sample record and set outcome to 41 $sql = "SELECT sample_id FROM sample WHERE import_id = '$sid'"; @@ -146,7 +141,8 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' foreach($rs as $r) { - set_time_limit(30); + set_time_limit(30); + //TODO : update add_case function to include attributes based on var_id ASC add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, true); } diff --git a/admin/clientquestionnaire.php b/admin/clientquestionnaire.php index 1a00c2f7..ca10ec8a 100644 --- a/admin/clientquestionnaire.php +++ b/admin/clientquestionnaire.php @@ -96,16 +96,6 @@ function vqi($client_id,$questionnaire_id,$lime_sid,$uid) $db->Execute($sql); - $rs = $db->GetAll("SELECT * FROM " . LIME_PREFIX . "survey_permissions WHERE `sid` = '$lime_sid' AND `uid` = '$uid'"); - - /* Add client questionnaire permissions to view Lime results + statistics and quotas, //preserve superadmin permissions */ - if ($uid != 1 && empty($rs)) - { - $sql = "INSERT INTO " . LIME_PREFIX . "survey_permissions (`sid`,`uid`,`permission`,`create_p`,`read_p`,`update_p`,`delete_p`,`import_p`,`export_p`) - VALUES ($lime_sid,$uid,'survey',0,1,0,0,0,0),($lime_sid,$uid,'statistics',0,1,0,0,0,0),($lime_sid,$uid,'quotas',0,1,0,0,0,0)"; - $db->Execute($sql); - } - $db->CompleteTrans(); } @@ -118,18 +108,6 @@ if (isset($_POST['submit'])) $sql = "DELETE FROM client_questionnaire WHERE questionnaire_id IN ( SELECT questionnaire_id FROM questionnaire WHERE enabled = 1)"; $db->Execute($sql); -/*Currently disabled -> need to decide how to manage permissions set earlier*/ -/* $questionnaires = $db->GetAll("SELECT lime_sid FROM questionnaire WHERE enabled = 1"); - - $clients = $db->GetAll("SELECT uid FROM client, " . LIME_PREFIX . "users WHERE `users_name` = `username`"); - - foreach($questionnaires as $q){ - foreach($clients as $v){ - $sql = "DELETE FROM " . LIME_PREFIX . "survey_permissions WHERE `uid` = {$v['uid']} AND `sid`={$q['lime_sid']} AND `uid` != 1"; - $db->Execute($sql); - } - } */ - /* - end - */ foreach ($_POST as $g => $v) { @@ -154,18 +132,6 @@ if (isset($_GET['delete']) && isset($_GET['uid']) && isset($_GET['uname'])) $db->StartTrans(); - $sql = "DELETE FROM " . LIME_PREFIX . "templates_rights WHERE `uid` = '$uid' AND `uid` != 1"; - $db->Execute($sql); - - $sql = "DELETE FROM " . LIME_PREFIX . "survey_permissions WHERE `uid` = '$uid' AND `uid` != 1"; - $db->Execute($sql); - - $sql = "DELETE FROM " . LIME_PREFIX . "user_in_groups WHERE `uid` = '$uid' AND `uid` != 1"; - $db->Execute($sql); - - $sql = "DELETE FROM " . LIME_PREFIX . "users WHERE `uid` = '$uid' AND `uid` != 1"; - $db->Execute($sql); - $sql = "DELETE FROM `client_questionnaire` WHERE `client_id` = '$client_id' "; $db->Execute($sql); @@ -182,15 +148,16 @@ if (isset($_GET['delete']) && isset($_GET['uid']) && isset($_GET['uname'])) } -$sql = "SELECT questionnaire_id,description, lime_sid - FROM questionnaire - WHERE enabled = 1 +$sql = "SELECT q.questionnaire_id,q.description, q.lime_sid, r.entry_url + FROM questionnaire as q, remote as r + WHERE enabled = 1 + AND q.remote_id = r.id ORDER by questionnaire_id ASC"; $questionnaires = $db->GetAll($sql); $sql = "SELECT client_id, CONCAT(firstName,' ', lastName ) as description, username, uid - FROM client, " . LIME_PREFIX . "users + FROM client, users WHERE `users_name` = `username` ORDER by client_id ASC"; @@ -293,7 +260,7 @@ print "
" . T_("Questionnaire permissions") . " + print ""; } diff --git a/admin/dataoutput.php b/admin/dataoutput.php index 2d43c022..c92ee455 100644 --- a/admin/dataoutput.php +++ b/admin/dataoutput.php @@ -206,14 +206,15 @@ display_questionnaire_chooser($questionnaire_id,false,"form-inline col-lg-4 pull if ($questionnaire_id) { - $sql = "SELECT lime_sid - FROM questionnaire - WHERE questionnaire_id = $questionnaire_id"; + $sql = "SELECT q.lime_sid, r.entry_url + FROM questionnaire as q, remote as r + WHERE q.questionnaire_id = $questionnaire_id + AND r.id = q.remote_id"; $ls = $db->GetRow($sql); $lsid = $ls['lime_sid']; - print " ". T_("Download data for this questionnaire via Limesurvey") . ""; + print " ". T_("Download data for this questionnaire via Limesurvey") . ""; print "

" . T_("Please select a sample") . ": 

"; $sample_import_id = false; @@ -222,7 +223,6 @@ if ($questionnaire_id) if ($sample_import_id) { - print " " . T_("Download data for this sample via Limesurvey") . "
"; //get sample vars $sql = "SELECT sivr.var_id as value, sivr.var as description FROM `sample_import_var_restrict` as sivr diff --git a/admin/questionnaireprefill.php b/admin/questionnaireprefill.php index f4c87cf7..e04ca68c 100644 --- a/admin/questionnaireprefill.php +++ b/admin/questionnaireprefill.php @@ -149,15 +149,15 @@ if ($questionnaire_id != false) $sgqa = false; if (isset($_GET['sgqa'])) $sgqa = $_GET['sgqa']; - $sql = "SELECT CONCAT( q.sid, 'X', q.gid, 'X', q.qid) AS value, - CONCAT( q.sid, 'X', q.gid, 'X', q.qid, ' -> ' , CASE WHEN qo.question IS NULL THEN q.question ELSE CONCAT(qo.question,' : ',q.question) END) as description, - CASE WHEN CONCAT(q.sid, 'X', q.gid, 'X', q.qid) = '$sgqa' THEN 'selected=\'selected\'' ELSE '' END AS selected - FROM `" . LIME_PREFIX . "questions` AS q - LEFT JOIN `" . LIME_PREFIX . "questions` as qo ON (qo.qid = q.parent_qid) - WHERE q.sid = '$lime_sid' - ORDER BY CASE WHEN qo.question_order IS NULL THEN q.question_order ELSE qo.question_order + (q.question_order / 1000) END ASC"; + /** + * Display functions + */ + include_once("../functions/functions.limesurvey.php"); - $rs = $db->GetAll($sql); + $rs = lime_list_questions($questionnaire_id); + + //TODO: Test output of listing questions + var_dump($rs); die(); for ($i=0; $iGetAll($sql),"sgqa","sgqa",true,"questionnaire_id=$questionnaire_id&sample_import_id=$sample_import_id",true,true,false,true,"form-group"); + include_once("../functions/functions.limesurvey.php"); + + $rs = lime_list_questions($questionnaire_id); + + var_dump($rs); die(); //TODO: make sure query below works with this function + + display_chooser($rs,"sgqa","sgqa",true,"questionnaire_id=$questionnaire_id&sample_import_id=$sample_import_id",true,true,false,true,"form-group"); print "
"; @@ -244,11 +241,11 @@ if ($questionnaire_id != false) $qid = explode("X", $sgqa); $qid = $qid[2]; - $sql = "SELECT CONCAT(' ', l.code , '')as code,l.answer as title - FROM `" . LIME_PREFIX . "answers` as l - WHERE l.qid = '$qid'"; - $rs = $db->GetAll($sql); + $rs = lime_list_answeroptions($questionnaire_id,$sgqa); + + //TODO: Check this result + var_dump($rs); die(); if (!isset($rs) || empty($rs)) print "

" . T_("No labels defined for this question") ."

"; diff --git a/functions/functions.limesurvey.php b/functions/functions.limesurvey.php index bcf149ee..328442fb 100644 --- a/functions/functions.limesurvey.php +++ b/functions/functions.limesurvey.php @@ -92,6 +92,70 @@ function limerpc_init_qid($qid) } +function lime_list_questions($qid) +{ + global $limeKey; + global $limeRPC; + + $ret = false; + $lime_id = limerpc_init_qid($qid); + + if ($lime_id !== false) { + $q = $limeRPC->list_questions($limeKey,$lime_id); + if (!isset($q['status'])) { + $ret = $q; + } + } + + return $ret; +} + + +function lime_list_answeroptions($qid,$qcode) +{ + global $limeKey; + global $limeRPC; + + $ret = false; + + $q = lime_list_questions($qid); + + if ($q !== false) + { + + foreach($q as $qid => $val) { + if ($val['title'] == $qcode) { + $qp = $limeRPC->get_question_properties($limeKey,$qid,array('answeroptions')); + if (!isset($qp['status'])) { + $ret = $qp; + } + break; + } + } + } + + return $ret; + +} + +/** Get completed responses as an array based on the case_id + */ +function lime_get_responses_by_case($case_id,$fields) +{ + + +} + +/** Get completd responses as an array based on the questionnaire + */ +function lime_get_responses_by_questionnaire($qid,$fields) +{ + + +} + + + function lime_add_token($qid,$params) { global $limeKey;
" . T_("Questionnaire permissions") . "
{$q['description']}