From 5e71e9d109fe8173a6a9467cde6498c864bab376 Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Wed, 3 Aug 2016 11:02:44 +1000 Subject: [PATCH 01/13] Database and function changes for weighted timeslots --- CHANGELOG | 3 +++ admin/systemsortprocess.php | 4 ++-- database/quexs.sql | 2 ++ functions/functions.operator.php | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 849db275..331a523d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +ALTER TABLE `questionnaire_timeslot` ADD `weight` INT( 11 ) NOT NULL DEFAULT '1'; +ALTER TABLE `questionnaire_sample_timeslot` ADD `weight` INT( 11 ) NOT NULL DEFAULT '1'; + queXS 1.14.2 - Changes since 1.14.1 A bug fix release for the 1.14 series of queXS diff --git a/admin/systemsortprocess.php b/admin/systemsortprocess.php index aea2ed90..474a59b2 100644 --- a/admin/systemsortprocess.php +++ b/admin/systemsortprocess.php @@ -276,9 +276,9 @@ while (!is_process_killed($process_id)) //check if process killed every $sleepin AND c.questionnaire_id = '$questionnaire_id' AND ((apn.appointment_id IS NOT NULL) OR casa.case_id IS NULL OR (ava.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= ava.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= ava.end )) - AND ((apn.appointment_id IS NOT NULL) OR qast.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = ( SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) + AND ((apn.appointment_id IS NOT NULL) OR qast.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) <= (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) - (questionnaire_timeslot.weight - 1) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) - AND ((apn.appointment_id IS NOT NULL) OR qasts.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = ( SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) + AND ((apn.appointment_id IS NOT NULL) OR qasts.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) <= (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) - (questionnaire_sample_timeslot.weight - 1) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) AND (a.call_id is NULL or (a.end < CONVERT_TZ(DATE_SUB(NOW(), INTERVAL ou.default_delay_minutes MINUTE),'System','UTC'))) AND ap.case_id is NULL diff --git a/database/quexs.sql b/database/quexs.sql index 4f4d7c3b..aac0d1a2 100644 --- a/database/quexs.sql +++ b/database/quexs.sql @@ -1353,6 +1353,7 @@ CREATE TABLE `questionnaire_sample_timeslot` ( `questionnaire_id` bigint(20) NOT NULL, `sample_import_id` bigint(20) NOT NULL, `availability_group_id` bigint(20) NOT NULL, + `weight` int(11) NOT NULL DEFAULT '1', PRIMARY KEY (`questionnaire_id`,`availability_group_id`,`sample_import_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; @@ -1365,6 +1366,7 @@ CREATE TABLE `questionnaire_sample_timeslot` ( CREATE TABLE `questionnaire_timeslot` ( `questionnaire_id` bigint(20) NOT NULL, `availability_group_id` bigint(20) NOT NULL, + `weight` int(11) NOT NULL DEFAULT '1', PRIMARY KEY (`questionnaire_id`,`availability_group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; diff --git a/functions/functions.operator.php b/functions/functions.operator.php index 5b0917bd..1fa761d8 100644 --- a/functions/functions.operator.php +++ b/functions/functions.operator.php @@ -709,8 +709,8 @@ function get_case_id($operator_id, $create = false) JOIN operator_skill as os on (os.operator_id = op.operator_id and os.outcome_type_id = ou.outcome_type_id) WHERE c.current_operator_id IS NULL AND ((apn.appointment_id IS NOT NULL) OR (casa.case_id IS NULL) OR (ava.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= ava.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= ava.end )) - AND ((apn.appointment_id IS NOT NULL) OR (qast.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) - AND ((apn.appointment_id IS NOT NULL) OR (qasts.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = ( SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) + AND ((apn.appointment_id IS NOT NULL) OR (qast.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) <= (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) - (questionnaire_timeslot.weight - 1) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) + AND ((apn.appointment_id IS NOT NULL) OR (qasts.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) <= (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) - (questionnaire_sample_timeslot.weight - 1) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) AND ((a.call_id is NULL) OR (a.end < CONVERT_TZ(DATE_SUB(NOW(), INTERVAL ou.default_delay_minutes MINUTE),'System','UTC'))) AND ap.case_id is NULL AND ((qsep.questionnaire_id is NULL) OR (qsep.exclude = 0)) From 498f2ae7ad7cc840f8e53efaf6cebe00da5b1655 Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Wed, 3 Aug 2016 11:26:44 +1000 Subject: [PATCH 02/13] Added gui elements for timeslot weighting --- admin/assigntimeslots.php | 51 ++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/admin/assigntimeslots.php b/admin/assigntimeslots.php index a0d8a877..64a4196f 100644 --- a/admin/assigntimeslots.php +++ b/admin/assigntimeslots.php @@ -105,9 +105,10 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['ca_availability_group'])) //need to add availability_group to questionnaire $questionnaire_id = bigintval($_GET['questionnaire_id']); $availability_group = bigintval($_GET['ca_availability_group']); + $weight = bigintval($_GET['weight']); - $sql = "INSERT INTO questionnaire_timeslot(questionnaire_id,availability_group_id) - VALUES('$questionnaire_id','$availability_group')"; + $sql = "INSERT INTO questionnaire_timeslot(questionnaire_id,availability_group_id,weight) + VALUES('$questionnaire_id','$availability_group','$weight')"; $db->Execute($sql); } @@ -131,9 +132,10 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample_import_id']) && isse $questionnaire_id = bigintval($_GET['questionnaire_id']); $sample_import_id = bigintval($_GET['sample_import_id']); $availability_group = bigintval($_GET['qs_availability_group']); + $weight = bigintval($_GET['weights']); - $sql = "INSERT INTO questionnaire_sample_timeslot (questionnaire_id,sample_import_id,availability_group_id) - VALUES('$questionnaire_id','$sample_import_id','$availability_group')"; + $sql = "INSERT INTO questionnaire_sample_timeslot (questionnaire_id,sample_import_id,availability_group_id,weight) + VALUES('$questionnaire_id','$sample_import_id','$availability_group','$weight')"; $db->Execute($sql); } @@ -216,11 +218,12 @@ print ""; print "

" . T_("Call attempt time slots") . "

"; print "
" . T_("Assigning call attempt time slots to questionnaires will only allow cases to be attempted in a time slot for the n + 1th time where it has been attempted at least n times in all assigned timeslots. Please note timeslots must cover all possible time periods otherwise no cases will be available during missing timeslots.") ."
"; - $sql = "SELECT q.availability_group_id,a.description as description, CONCAT('" . T_("Click to unassign") . "') as link - - FROM questionnaire_timeslot as q, availability_group as a - WHERE q.availability_group_id = a.availability_group_id - AND q.questionnaire_id = '$questionnaire_id'"; +$sql = "SELECT q.availability_group_id,a.description as description, + CONCAT('" . T_("Click to unassign") . "') as link, + q.weight + FROM questionnaire_timeslot as q, availability_group as a + WHERE q.availability_group_id = a.availability_group_id + AND q.questionnaire_id = '$questionnaire_id'"; $qs = $db->GetAll($sql); print "
"; @@ -231,7 +234,7 @@ print "
" . T_("Assigning call attempt time slots to questionna else { print "

" . T_("Call attempt time slots selected for this questionnaire") . "

"; - xhtml_table ($qs,array("availability_group_id","description","link"),false,"table table-hover"); + xhtml_table ($qs,array("description","weight","link"),array(T_("Availability group"),T_("Weight"),T_("Unassign")),"table table-hover"); } print "
"; @@ -251,9 +254,15 @@ print "
" . T_("Assigning call attempt time slots to questionna { print ""; } - print "
- -   + print "
"; +?> +
+ +
+
+ +  
"; } print ""; @@ -270,7 +279,9 @@ print "
" . T_("Assigning call attempt time slots to questionna if ($sample_import_id !== false) { - $sql = "SELECT q.availability_group_id,a.description as description, CONCAT('" . T_("Click to unassign") . "') as link + $sql = "SELECT q.availability_group_id,a.description as description, + CONCAT('" . T_("Click to unassign") . "') as link, + q.weight FROM questionnaire_sample_timeslot as q, availability_group as a WHERE q.availability_group_id = a.availability_group_id AND q.questionnaire_id = '$questionnaire_id' @@ -285,7 +296,7 @@ print "
" . T_("Assigning call attempt time slots to questionna else { print "

" . T_("Call attempt time slots selected for this sample") . ":

"; - xhtml_table ($qs,array("availability_group_id","description","link"),false,"table table-hover"); + xhtml_table ($qs,array("description","weight","link"),array(T_("Availability group"),T_("Weight"),T_("Unassign")),"table table-hover"); } $sql = "SELECT si.availability_group_id,si.description @@ -304,8 +315,14 @@ print "
" . T_("Assigning call attempt time slots to questionna { print ""; } - print "
- + print "
"; +?> +
+ +
+
+
"; From 520350a1fab9b09e845aa88e5e63a61cd4c41f6c Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Wed, 3 Aug 2016 15:26:01 +1000 Subject: [PATCH 03/13] Corrected logical errors in selection of weighted timeslots Dev: Use FLOOR(number of attempts / weight) to even out selection --- admin/systemsortprocess.php | 7 ++----- functions/functions.operator.php | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/admin/systemsortprocess.php b/admin/systemsortprocess.php index 474a59b2..9a49abad 100644 --- a/admin/systemsortprocess.php +++ b/admin/systemsortprocess.php @@ -275,11 +275,8 @@ while (!is_process_killed($process_id)) //check if process killed every $sleepin WHERE c.current_operator_id IS NULL AND c.questionnaire_id = '$questionnaire_id' AND ((apn.appointment_id IS NOT NULL) OR casa.case_id IS NULL OR (ava.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= ava.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= ava.end )) - - AND ((apn.appointment_id IS NOT NULL) OR qast.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) <= (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) - (questionnaire_timeslot.weight - 1) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) - - AND ((apn.appointment_id IS NOT NULL) OR qasts.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) <= (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) - (questionnaire_sample_timeslot.weight - 1) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) - + AND ((apn.appointment_id IS NOT NULL) OR qast.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT FLOOR(COUNT(call_attempt_id) / questionnaire_timeslot.weight) FROM `call_attempt`, availability, questionnaire_timeslot WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_timeslot.availability_group_id = availability.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT FLOOR((SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) / questionnaire_timeslot.weight) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) + AND ((apn.appointment_id IS NOT NULL) OR qasts.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT FLOOR(COUNT(call_attempt_id) / questionnaire_sample_timeslot.weight) FROM `call_attempt`, availability, questionnaire_sample_timeslot WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.availability_group_id = availability.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT FLOOR((SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) / questionnaire_sample_timeslot.weight) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) AND (a.call_id is NULL or (a.end < CONVERT_TZ(DATE_SUB(NOW(), INTERVAL ou.default_delay_minutes MINUTE),'System','UTC'))) AND ap.case_id is NULL AND ((qsep.questionnaire_id is NULL) or qsep.exclude = 0) diff --git a/functions/functions.operator.php b/functions/functions.operator.php index 1fa761d8..e30cbdd9 100644 --- a/functions/functions.operator.php +++ b/functions/functions.operator.php @@ -709,8 +709,8 @@ function get_case_id($operator_id, $create = false) JOIN operator_skill as os on (os.operator_id = op.operator_id and os.outcome_type_id = ou.outcome_type_id) WHERE c.current_operator_id IS NULL AND ((apn.appointment_id IS NOT NULL) OR (casa.case_id IS NULL) OR (ava.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= ava.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= ava.end )) - AND ((apn.appointment_id IS NOT NULL) OR (qast.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) <= (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) - (questionnaire_timeslot.weight - 1) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) - AND ((apn.appointment_id IS NOT NULL) OR (qasts.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) <= (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) - (questionnaire_sample_timeslot.weight - 1) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) + AND ((apn.appointment_id IS NOT NULL) OR (qast.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT FLOOR(COUNT(call_attempt_id) / questionnaire_timeslot.weight) FROM `call_attempt`, availability, questionnaire_timeslot WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND questionnaire_timeslot.availability_group_id = availability.availability_group_id AND questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT FLOOR((SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) / questionnaire_timeslot.weight) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) + AND ((apn.appointment_id IS NOT NULL) OR (qasts.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT FLOOR(COUNT(call_attempt_id) / questionnaire_sample_timeslot.weight) FROM `call_attempt`, availability, questionnaire_sample_timeslot WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND questionnaire_sample_timeslot.availability_group_id = availability.availability_group_id AND questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT FLOOR((SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) / questionnaire_sample_timeslot.weight) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1))) AND ((a.call_id is NULL) OR (a.end < CONVERT_TZ(DATE_SUB(NOW(), INTERVAL ou.default_delay_minutes MINUTE),'System','UTC'))) AND ap.case_id is NULL AND ((qsep.questionnaire_id is NULL) OR (qsep.exclude = 0)) From 2b6ce2ae1bf0c3ed13a2468535c6b1a3898707ed Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Tue, 10 Jan 2017 10:41:05 +1100 Subject: [PATCH 04/13] Default to selected mode of delivery if no token in queXS to determine mode of delivery --- include/limesurvey/group.php | 6 +++--- include/limesurvey/quexs.php | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/limesurvey/group.php b/include/limesurvey/group.php index b4b2e12e..7a3819ef 100644 --- a/include/limesurvey/group.php +++ b/include/limesurvey/group.php @@ -21,7 +21,9 @@ include_once("quexs.php"); //queXS funcitons $LEMdebugLevel=0; // LEM_DEBUG_TIMING; // (LEM_DEBUG_TIMING + LEM_DEBUG_VALIDATION_SUMMARY + LEM_DEBUG_VALIDATION_DETAIL); $LEMskipReprocessing=false; // true if used GetLastMoveResult to avoid generation of unneeded extra JavaScript -if ($interviewer) +$surveyMode=quexs_get_survey_mode($clienttoken); + +if ($interviewer || $surveyMode === false) { switch ($thissurvey['format']) { @@ -37,8 +39,6 @@ if ($interviewer) break; } } -else - $surveyMode=quexs_get_survey_mode($clienttoken); $radix=getRadixPointData($thissurvey['surveyls_numberformat']); $radix = $radix['seperator']; diff --git a/include/limesurvey/quexs.php b/include/limesurvey/quexs.php index a57a95c0..b1db8821 100644 --- a/include/limesurvey/quexs.php +++ b/include/limesurvey/quexs.php @@ -109,7 +109,13 @@ function quexs_get_survey_mode($clienttoken) WHERE q.questionnaire_id = c.questionnaire_id AND c.token = '$clienttoken'"; - return $db->GetOne($sql); + $md = $db->GetOne($sql); + + if (empty($md)) { + return false; + } else { + return $md; + } } From 9b48b3eb3f2556034eef7da022ed07bade129d8b Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Fri, 13 Jan 2017 10:35:46 +1100 Subject: [PATCH 05/13] Fix issue with admin permissions not propogating to Limesurvey --- admin/operatorlist.php | 6 +++++- admin/operators.php | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/admin/operatorlist.php b/admin/operatorlist.php index 16821cbc..150bb5ac 100644 --- a/admin/operatorlist.php +++ b/admin/operatorlist.php @@ -72,7 +72,11 @@ if (isset($_POST['submit'])) SET users_name = " . $db->qstr($_POST['username']) . ", email = " . $db->qstr($_POST['email']) . ", full_name = " . $db->qstr($_POST['firstName']) . ", - superadmin = $superadmin"; + superadmin = $superadmin, + create_survey = $superadmin, + configurator = $superadmin, + manage_template = $superadmin, + manage_label = $superadmin"; if (!empty($_POST['password'])) { diff --git a/admin/operators.php b/admin/operators.php index 70efe53d..75380c2c 100644 --- a/admin/operators.php +++ b/admin/operators.php @@ -118,8 +118,8 @@ if (isset($_POST['operator']) && isset($_POST['adduser'])) include_once("../include/limesurvey/admin/classes/core/sha256.php"); //Insert into lime_users - $sql = "INSERT INTO " . LIME_PREFIX . "users (`users_name`,`password`,`full_name`,`parent_id`,`superadmin`,`email`,`lang`) - VALUES ($operator, '" . SHA256::hashing($_POST['password']) . "',$firstname,1,$admin,$email,'auto')"; + $sql = "INSERT INTO " . LIME_PREFIX . "users (`users_name`,`password`,`full_name`,`parent_id`,`superadmin`,`create_survey`,`configurator`,`manage_template`,`manage_label`,`email`,`lang`) + VALUES ($operator, '" . SHA256::hashing($_POST['password']) . "',$firstname,1,$admin,$admin,$admin,$admin,$admin,$email,'auto')"; $db->Execute($sql); From 20e80e3e4e2eb9011803f89aa61f7de1449d58fb Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Wed, 1 Feb 2017 14:38:53 +1100 Subject: [PATCH 06/13] Allow for tokens to be imported --- CHANGELOG | 3 +++ admin/assignsample.php | 13 +++++++++++-- database/quexs.sql | 1 + functions/functions.import.php | 12 ++++++++++++ functions/functions.operator.php | 19 +++++++++++++++++-- 5 files changed, 44 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index bce65ec0..2fbc8c8b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(9, 'Token', ''); + + queXS 1.14.4 - Changes since 1.14.3 Fourth bug fix release. diff --git a/admin/assignsample.php b/admin/assignsample.php index 49e0460f..492ca220 100644 --- a/admin/assignsample.php +++ b/admin/assignsample.php @@ -79,6 +79,8 @@ $js_foot = array( ); global $db; +$error = ""; + if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET['call_max']) && isset($_GET['call_attempt_max'])) { //need to add sample to questionnaire @@ -144,10 +146,14 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' $rs = $db->GetAll($sql); + $count = 0; foreach($rs as $r) - { + { + $count++; set_time_limit(30); - add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, true); + if (add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, true) === false) { + $error .= "
Failed to add case for record #$count"; + } } $db->CompleteTrans(); @@ -306,6 +312,9 @@ xhtml_head(T_("Assign samples to questionnaires"),true,$css,$js_head,false,false print " " . T_("Go back") . ""; +if (!empty($error)) { + print "
$error
"; +} $questionnaire_id = false; if (isset($_GET['questionnaire_id'])) $questionnaire_id = bigintval($_GET['questionnaire_id']); diff --git a/database/quexs.sql b/database/quexs.sql index ab62eab1..ad7fee93 100644 --- a/database/quexs.sql +++ b/database/quexs.sql @@ -1523,6 +1523,7 @@ INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(5, 'Postco INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(6, 'Respondent first name', ''); INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(7, 'Respondent last name', ''); INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(8, 'Email address', ''); +INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(9, 'Token', ''); -- -------------------------------------------------------- diff --git a/functions/functions.import.php b/functions/functions.import.php index 500bc08d..440abed9 100644 --- a/functions/functions.import.php +++ b/functions/functions.import.php @@ -95,6 +95,18 @@ function verify_fields($fields) } } + //check that only 0 or 1 token fields selected + $count = 0; + foreach($names as $val) + { + if ($val == 9) $count++; + } + + if ($count > 1) + { + return T_("No more than one field may be a token field"); + } + //check that there is one and one only primary phone selected $count = 0; foreach($names as $val) diff --git a/functions/functions.operator.php b/functions/functions.operator.php index 31a42c01..f6518588 100644 --- a/functions/functions.operator.php +++ b/functions/functions.operator.php @@ -354,10 +354,23 @@ function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing = { global $db; + //if token is specified, get from sample + $sql = "SELECT sv.val + FROM sample_var as sv, sample_import_var_restrict as sivr + WHERE sv.sample_id = '$sample_id' + AND sv.var_id = sivr.var_id + AND sivr.type = 9"; //9 is the token value + + $dtoken = $db->GetOne($sql); + $ttries = 0; do { - $token = sRandomChars(); + if (empty($dtoken)) { + $token = sRandomChars(); + } else { + $token = $dtoken; + } $sql = "SELECT count(*) as c FROM `case` @@ -365,7 +378,9 @@ function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing = $ttries++; } while ($db->GetOne($sql) > 0 && $ttries < 10); - + + if ($ttries >= 10) //failed to get a token + return false; $sql = "INSERT INTO `case` (case_id, sample_id, questionnaire_id, last_call_id, current_operator_id, current_call_id, current_outcome_id,token) VALUES (NULL, $sample_id, $questionnaire_id, NULL, $operator_id, NULL, '$current_outcome_id','$token')"; From d6f636035be2f96326fbabb61676d4eb5b31166c Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Wed, 1 Feb 2017 15:13:48 +1100 Subject: [PATCH 07/13] allow welcome screen if desired --- include/limesurvey/group.php | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/include/limesurvey/group.php b/include/limesurvey/group.php index 7a3819ef..ffbfd969 100644 --- a/include/limesurvey/group.php +++ b/include/limesurvey/group.php @@ -88,16 +88,15 @@ else { $totalquestions = buildsurveysession(); LimeExpressionManager::StartSurvey($thissurvey['sid'], $surveyMode, $surveyOptions, false,$LEMdebugLevel); -// $_SESSION['step'] = 0; - //if ($surveyMode == 'survey') { - // $move = "movenext"; // to force a call to NavigateForwards() - // } - // else if (isset($thissurvey['showwelcome']) && $thissurvey['showwelcome'] == 'N') { + $_SESSION['step'] = 0; + if ($surveyMode == 'survey') { + $move = "movenext"; // to force a call to NavigateForwards() + } + else if (isset($thissurvey['showwelcome']) && $thissurvey['showwelcome'] == 'N') { //If explicitply set, hide the welcome screen - // $_SESSION['step'] = 0; $_SESSION['step'] = 1; $move = "movenext"; - // } + } } if (!isset($_SESSION['totalsteps'])) {$_SESSION['totalsteps']=0;} @@ -718,11 +717,11 @@ echo sDefaultSubmitHandler(); if ($surveyMode == 'survey') { -// if(isset($thissurvey['showwelcome']) && $thissurvey['showwelcome'] == 'N') { + if(isset($thissurvey['showwelcome']) && $thissurvey['showwelcome'] == 'N') { //Hide the welcome screen if explicitly set - // } else { - // echo templatereplace(file_get_contents("$thistpl/welcome.pstpl"))."\n"; - // } + } else { + echo templatereplace(file_get_contents("$thistpl/welcome.pstpl"))."\n"; + } if ($thissurvey['anonymized'] == "Y") { From 7432621bd0c128f852e086e68db8c9ad96b22757 Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Fri, 10 Mar 2017 16:05:19 +1100 Subject: [PATCH 08/13] iAllow display of a save form --- include/limesurvey/group.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/limesurvey/group.php b/include/limesurvey/group.php index ffbfd969..16cdf578 100644 --- a/include/limesurvey/group.php +++ b/include/limesurvey/group.php @@ -244,9 +244,9 @@ else if ($thissurvey['active'] == "Y" && isset($_POST['saveall'])) { // must do this here to process the POSTed values - //$moveResult = LimeExpressionManager::JumpTo($_SESSION['step'],false); // by jumping to current step, saves data so far + $moveResult = LimeExpressionManager::JumpTo($_SESSION['step'],false); // by jumping to current step, saves data so far - //showsaveform(); // generates a form and exits, awaiting input + showsaveform(); // generates a form and exits, awaiting input if(!tableExists('tokens_'.$surveyid) || $thissurvey['anonymized']=='Y' || (tableExists('tokens_'.$surveyid) && $thissurvey['tokenanswerspersistence'] == 'N' )) { $moveResult = LimeExpressionManager::JumpTo($_SESSION['step'],false,true,false,false,true); // by jumping to current step, saves data so far From 4febd4e3840f62f3b81902be6280d2c310114c58 Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Fri, 10 Mar 2017 16:07:15 +1100 Subject: [PATCH 09/13] Only generate cases where a valid email address provided --- admin/assignsample.php | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/admin/assignsample.php b/admin/assignsample.php index 492ca220..3c1baf25 100644 --- a/admin/assignsample.php +++ b/admin/assignsample.php @@ -106,6 +106,7 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' if (isset($_GET['generatecases'])) { include_once("../functions/functions.operator.php"); + include_once("../functions/functions.limesurvey.php"); $db->StartTrans(); @@ -139,10 +140,11 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' $db->Execute($sql); - //generate one case for each sample record and set outcome to 41 - $sql = "SELECT sample_id - FROM sample - WHERE import_id = '$sid'"; + //generate one case for each sample record and set outcome to 41 (where an email address provided) + $sql = "SELECT s.sample_id, sv.val as email + FROM sample as s + LEFT JOIN (sample_var as sv, sample_import_var_restrict as sivr) ON (sv.sample_id = s.sample_id and sv.var_id = sivr.var_id and sivr.type = 8) + WHERE s.import_id = '$sid'"; $rs = $db->GetAll($sql); @@ -151,9 +153,12 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET[' { $count++; set_time_limit(30); - if (add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, true) === false) { - $error .= "
Failed to add case for record #$count"; - } + //only if a valid email + if (validate_email($r['email'])) { + if (add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, true) === false) { + $error .= "
Failed to add case for record #$count"; + } + } } $db->CompleteTrans(); @@ -415,7 +420,7 @@ if ($questionnaire_id != false) GetOne("SELECT self_complete FROM questionnaire WHERE questionnaire_id = '$questionnaire_id'"); if ($self_complete) {?> - +
" data-off="" data-width="85"/>
*

From 3e6f2e1759fd00b43bf03ff6ace7b286c822d784 Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Tue, 21 Mar 2017 14:05:51 +1100 Subject: [PATCH 10/13] Added optimisations to database structure --- CHANGELOG | 2 ++ database/quexs.sql | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 2fbc8c8b..a3100472 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,6 @@ INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(9, 'Token', ''); +ALTER TABLE `sample_import_var_restrict` ADD INDEX ( `var` ) ; +ALTER TABLE `sample_import_var_restrict` ADD INDEX ( `sample_import_id` ) ; queXS 1.14.4 - Changes since 1.14.3 diff --git a/database/quexs.sql b/database/quexs.sql index ad7fee93..3ea2be49 100644 --- a/database/quexs.sql +++ b/database/quexs.sql @@ -1445,7 +1445,9 @@ CREATE TABLE `sample_import_var_restrict` ( `var` char(128) COLLATE utf8_unicode_ci DEFAULT NULL, `type` smallint(10) unsigned NOT NULL, `restrict` tinyint(1) NOT NULL DEFAULT '0', - PRIMARY KEY (`var_id`) + PRIMARY KEY (`var_id`), + KEY (`var`), + KEY (`sample_import_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -------------------------------------------------------- From 88061a809bd7773076f694da6d4126d5bc4e5aea Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Tue, 21 Mar 2017 14:23:30 +1100 Subject: [PATCH 11/13] Updated translation template --- locale/quexs.pot | 323 +++++++++++++++++++++++++---------------------- 1 file changed, 170 insertions(+), 153 deletions(-) diff --git a/locale/quexs.pot b/locale/quexs.pot index 2961e83f..a7766cd6 100644 --- a/locale/quexs.pot +++ b/locale/quexs.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: queXS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-06 15:16+1100\n" +"POT-Creation-Date: 2017-03-21 14:23+1100\n" "PO-Revision-Date: \n" "Last-Translator: Adam Zammit \n" "Language-Team: \n" @@ -49,7 +49,7 @@ msgid "Add this respondent" msgstr "" #: appointment.php:153 admin/operators.php:257 admin/clients.php:245 -#: admin/operatorlist.php:240 admin/supervisor.php:330 +#: admin/operatorlist.php:244 admin/supervisor.php:330 #: admin/casestatus.php:126 msgid "Timezone" msgstr "" @@ -160,7 +160,7 @@ msgstr "" #: myappointments.php:118 nocaseavailable.php:147 admin/sortsample.php:139 #: admin/callhistory.php:132 admin/callhistory.php:157 #: admin/callhistory.php:162 admin/set_outcomes.php:200 admin/quota.php:115 -#: admin/assignsample.php:210 admin/quotarow.php:293 admin/casestatus.php:241 +#: admin/assignsample.php:221 admin/quotarow.php:293 admin/casestatus.php:241 #: admin/displayappointments.php:313 admin/displayappointments.php:337 #: admin/new.php:148 admin/new.php:156 shifts.php:109 msgid "Questionnaire" @@ -211,31 +211,35 @@ msgstr "" msgid "Duplicate column name" msgstr "" -#: functions/functions.import.php:111 +#: functions/functions.import.php:107 +msgid "No more than one field may be a token field" +msgstr "" + +#: functions/functions.import.php:123 msgid "You must select one and one only Primary Phone number" msgstr "" -#: functions/functions.import.php:127 +#: functions/functions.import.php:139 msgid "Selected file column name" msgstr "" -#: functions/functions.import.php:127 +#: functions/functions.import.php:139 msgid "Import ?" msgstr "" -#: functions/functions.import.php:127 +#: functions/functions.import.php:139 msgid "New Sample Variable Name" msgstr "" -#: functions/functions.import.php:127 +#: functions/functions.import.php:139 msgid "Variable Type" msgstr "" -#: functions/functions.import.php:127 +#: functions/functions.import.php:139 msgid "Show to operator?" msgstr "" -#: functions/functions.import.php:144 functions/functions.import.php:156 +#: functions/functions.import.php:156 functions/functions.import.php:168 #: waitnextcase_interface2.php:142 admin/samplelist.php:304 #: admin/samplelist.php:305 admin/samplelist.php:467 admin/samplelist.php:478 #: admin/operators.php:267 admin/operators.php:283 admin/operators.php:299 @@ -243,9 +247,9 @@ msgstr "" #: admin/supervisorchat.php:79 admin/questionnairelist.php:390 #: admin/questionnairelist.php:393 admin/questionnairelist.php:397 #: admin/questionnairelist.php:401 admin/questionnairelist.php:405 -#: admin/questionnairelist.php:569 admin/operatorlist.php:251 -#: admin/operatorlist.php:269 admin/operatorlist.php:286 -#: admin/operatorlist.php:291 admin/set_outcomes.php:177 +#: admin/questionnairelist.php:569 admin/operatorlist.php:255 +#: admin/operatorlist.php:273 admin/operatorlist.php:290 +#: admin/operatorlist.php:295 admin/set_outcomes.php:177 #: admin/set_outcomes.php:178 admin/set_outcomes.php:179 #: admin/set_outcomes.php:180 admin/set_outcomes.php:181 #: admin/set_outcomes.php:184 admin/set_outcomes.php:185 @@ -253,10 +257,10 @@ msgstr "" #: admin/set_outcomes.php:264 admin/set_outcomes.php:265 #: admin/set_outcomes.php:266 admin/set_outcomes.php:267 #: admin/set_outcomes.php:268 admin/set_outcomes.php:269 -#: admin/assignsample.php:232 admin/assignsample.php:235 -#: admin/assignsample.php:328 admin/assignsample.php:330 -#: admin/assignsample.php:400 admin/assignsample.php:404 -#: admin/assignsample.php:410 admin/supervisor.php:200 +#: admin/assignsample.php:243 admin/assignsample.php:246 +#: admin/assignsample.php:342 admin/assignsample.php:344 +#: admin/assignsample.php:414 admin/assignsample.php:418 +#: admin/assignsample.php:424 admin/supervisor.php:200 #: admin/supervisor.php:373 admin/supervisor.php:420 admin/quotarow.php:396 #: admin/quotarow.php:570 admin/quotarow.php:600 #: admin/displayappointments.php:297 admin/displayappointments.php:321 @@ -265,15 +269,15 @@ msgstr "" msgid "Yes" msgstr "" -#: functions/functions.import.php:144 functions/functions.import.php:156 +#: functions/functions.import.php:156 functions/functions.import.php:168 #: admin/samplelist.php:304 admin/samplelist.php:305 admin/operators.php:267 #: admin/operators.php:283 admin/operators.php:299 admin/addshift.php:261 #: admin/supervisorchat.php:79 admin/questionnairelist.php:390 #: admin/questionnairelist.php:393 admin/questionnairelist.php:397 #: admin/questionnairelist.php:401 admin/questionnairelist.php:405 -#: admin/questionnairelist.php:569 admin/operatorlist.php:251 -#: admin/operatorlist.php:269 admin/operatorlist.php:286 -#: admin/operatorlist.php:291 admin/set_outcomes.php:177 +#: admin/questionnairelist.php:569 admin/operatorlist.php:255 +#: admin/operatorlist.php:273 admin/operatorlist.php:290 +#: admin/operatorlist.php:295 admin/set_outcomes.php:177 #: admin/set_outcomes.php:178 admin/set_outcomes.php:179 #: admin/set_outcomes.php:180 admin/set_outcomes.php:181 #: admin/set_outcomes.php:184 admin/set_outcomes.php:185 @@ -281,11 +285,11 @@ msgstr "" #: admin/set_outcomes.php:264 admin/set_outcomes.php:265 #: admin/set_outcomes.php:266 admin/set_outcomes.php:267 #: admin/set_outcomes.php:268 admin/set_outcomes.php:269 -#: admin/assignsample.php:232 admin/assignsample.php:233 -#: admin/assignsample.php:235 admin/assignsample.php:328 -#: admin/assignsample.php:330 admin/assignsample.php:400 -#: admin/assignsample.php:401 admin/assignsample.php:404 -#: admin/assignsample.php:410 admin/supervisor.php:373 +#: admin/assignsample.php:243 admin/assignsample.php:244 +#: admin/assignsample.php:246 admin/assignsample.php:342 +#: admin/assignsample.php:344 admin/assignsample.php:414 +#: admin/assignsample.php:415 admin/assignsample.php:418 +#: admin/assignsample.php:424 admin/supervisor.php:373 #: admin/supervisor.php:420 admin/quotarow.php:396 admin/quotarow.php:570 #: admin/quotarow.php:600 admin/displayappointments.php:297 #: admin/displayappointments.php:321 admin/new.php:220 admin/new.php:227 @@ -293,19 +297,19 @@ msgstr "" msgid "No" msgstr "" -#: functions/functions.operator.php:167 include/limesurvey/quexs.php:362 +#: functions/functions.operator.php:167 include/limesurvey/quexs.php:368 msgid "morning" msgstr "" -#: functions/functions.operator.php:168 include/limesurvey/quexs.php:363 +#: functions/functions.operator.php:168 include/limesurvey/quexs.php:369 msgid "afternoon" msgstr "" -#: functions/functions.operator.php:169 include/limesurvey/quexs.php:364 +#: functions/functions.operator.php:169 include/limesurvey/quexs.php:370 msgid "evening" msgstr "" -#: functions/functions.operator.php:988 +#: functions/functions.operator.php:1003 msgid "ERROR: You are not logged in." msgstr "" @@ -413,8 +417,8 @@ msgid "Sun" msgstr "" #: functions/functions.voip.php:449 selectextension.php:114 status.php:105 -#: admin/operators.php:271 admin/operatorlist.php:255 -#: admin/operatorlist.php:408 admin/extensionstatus.php:266 +#: admin/operators.php:271 admin/operatorlist.php:259 +#: admin/operatorlist.php:412 admin/extensionstatus.php:266 msgid "Extension" msgstr "" @@ -607,7 +611,7 @@ msgstr "" #: performance.php:84 performance.php:91 casenote.php:116 #: appointmentlist.php:95 calllist.php:89 admin/outcomes.php:240 #: admin/callhistory.php:132 admin/callhistory.php:157 -#: admin/operatorlist.php:200 admin/operatorlist.php:408 +#: admin/operatorlist.php:204 admin/operatorlist.php:412 #: admin/casesbyoutcome.php:95 admin/supervisor.php:388 #: admin/supervisor.php:415 admin/supervisor.php:432 #: admin/operatorskill.php:251 admin/operatorperformance.php:86 @@ -643,9 +647,9 @@ msgstr "" #: admin/questionnairelist.php:375 admin/questionnairelist.php:523 #: admin/questionnairelist.php:545 admin/questionnairelist.php:553 #: admin/callhistory.php:145 admin/availability.php:127 -#: admin/operatorlist.php:198 admin/import.php:48 admin/import.php:86 -#: admin/import.php:117 admin/casesbyoutcome.php:59 admin/assignsample.php:209 -#: admin/assignsample.php:307 admin/casestatus.php:215 respondent.php:101 +#: admin/operatorlist.php:202 admin/import.php:48 admin/import.php:86 +#: admin/import.php:117 admin/casesbyoutcome.php:59 admin/assignsample.php:220 +#: admin/assignsample.php:318 admin/casestatus.php:215 respondent.php:101 #: contactdetails.php:100 msgid "Go back" msgstr "" @@ -785,19 +789,19 @@ msgstr "" msgid "Stop the manual recording now..." msgstr "" -#: include/limesurvey/quexs.php:171 admin/databasestrings.php:90 +#: include/limesurvey/quexs.php:177 admin/databasestrings.php:90 msgid "Self completed online" msgstr "" -#: include/limesurvey/quexs.php:676 include/limesurvey/quexs.php:755 +#: include/limesurvey/quexs.php:682 include/limesurvey/quexs.php:761 msgid "Not on an appointment" msgstr "" -#: include/limesurvey/quexs.php:678 include/limesurvey/quexs.php:757 +#: include/limesurvey/quexs.php:684 include/limesurvey/quexs.php:763 msgid "On an appointment" msgstr "" -#: include/limesurvey/quexs.php:989 +#: include/limesurvey/quexs.php:995 msgid "All samples" msgstr "" @@ -1081,16 +1085,16 @@ msgid "Email respondent for self completion" msgstr "" #: email.php:347 admin/operators.php:245 admin/clients.php:233 -#: admin/operatorlist.php:228 +#: admin/operatorlist.php:232 msgid "First name" msgstr "" -#: email.php:350 admin/operators.php:249 admin/operatorlist.php:232 +#: email.php:350 admin/operators.php:249 admin/operatorlist.php:236 msgid "Last name" msgstr "" #: email.php:353 admin/operators.php:253 admin/clients.php:241 -#: admin/operatorlist.php:236 index.php:171 +#: admin/operatorlist.php:240 index.php:171 msgid "Email" msgstr "" @@ -1152,7 +1156,7 @@ msgid "Reasons:" msgstr "" #: nocaseavailable.php:86 nocaseavailable.php:98 admin/samplelist.php:462 -#: admin/questionnairelist.php:564 admin/operatorlist.php:290 +#: admin/questionnairelist.php:564 admin/operatorlist.php:294 msgid "Enabled" msgstr "" @@ -1176,10 +1180,10 @@ msgid "Description" msgstr "" #: nocaseavailable.php:122 admin/samplelist.php:317 admin/quotareport.php:310 -#: admin/assigntimeslots.php:265 admin/outcomes.php:128 admin/outcomes.php:184 +#: admin/assigntimeslots.php:274 admin/outcomes.php:128 admin/outcomes.php:184 #: admin/sortsample.php:139 admin/callhistory.php:132 #: admin/callhistory.php:157 admin/callhistory.php:168 admin/quota.php:137 -#: admin/assignsample.php:211 admin/assignsample.php:364 +#: admin/assignsample.php:222 admin/assignsample.php:378 #: admin/supervisor.php:313 admin/quotarow.php:312 admin/casestatus.php:126 #: admin/casestatus.php:244 admin/displayappointments.php:313 #: admin/displayappointments.php:337 @@ -1334,7 +1338,7 @@ msgstr "" msgid "Delete ?" msgstr "" -#: admin/samplelist.php:343 admin/addshift.php:268 admin/assignsample.php:238 +#: admin/samplelist.php:343 admin/addshift.php:268 admin/assignsample.php:249 #: admin/quotarow.php:398 admin/extensionstatus.php:210 #: admin/displayappointments.php:281 msgid "Save changes" @@ -1359,28 +1363,28 @@ msgid "Fix this sample " msgstr "" #: admin/samplelist.php:465 admin/questionnairelist.php:567 -#: admin/operatorlist.php:390 +#: admin/operatorlist.php:394 msgid "Enable" msgstr "" #: admin/samplelist.php:467 admin/samplelist.php:478 -#: admin/questionnairelist.php:569 admin/assignsample.php:330 +#: admin/questionnairelist.php:569 admin/assignsample.php:344 #: admin/supervisor.php:373 admin/supervisor.php:420 #: admin/displayappointments.php:297 admin/displayappointments.php:321 msgid "ARE YOU SURE?" msgstr "" #: admin/samplelist.php:467 admin/questionnairelist.php:569 -#: admin/operatorlist.php:392 +#: admin/operatorlist.php:396 msgid "Disable" msgstr "" #: admin/samplelist.php:471 admin/operators.php:260 admin/operators.php:274 #: admin/sortsample.php:105 admin/sortsample.php:139 #: admin/questionnairelist.php:385 admin/clientquestionnaire.php:308 -#: admin/operatorlist.php:243 admin/operatorlist.php:259 -#: admin/operatorlist.php:399 admin/assignsample.php:329 -#: admin/assignsample.php:364 admin/supervisor.php:374 admin/quotarow.php:586 +#: admin/operatorlist.php:247 admin/operatorlist.php:263 +#: admin/operatorlist.php:403 admin/assignsample.php:343 +#: admin/assignsample.php:378 admin/supervisor.php:374 admin/quotarow.php:586 #: admin/shiftreport.php:102 admin/shiftreport.php:110 #: admin/displayappointments.php:313 admin/displayappointments.php:337 msgid "Edit" @@ -1491,12 +1495,12 @@ msgid "Completed case closing" msgstr "" #: admin/systemsortprocess.php:194 admin/systemsortprocess.php:196 -#: admin/systemsortprocess.php:359 admin/systemsortprocess.php:361 +#: admin/systemsortprocess.php:356 admin/systemsortprocess.php:358 msgid "This task took" msgstr "" #: admin/systemsortprocess.php:194 admin/systemsortprocess.php:196 -#: admin/systemsortprocess.php:359 admin/systemsortprocess.php:361 +#: admin/systemsortprocess.php:356 admin/systemsortprocess.php:358 #: nocallavailable.php:208 msgid "seconds" msgstr "" @@ -1521,11 +1525,11 @@ msgstr "" msgid "No call attempts without calls" msgstr "" -#: admin/systemsortprocess.php:359 +#: admin/systemsortprocess.php:356 msgid "Completed sort" msgstr "" -#: admin/systemsortprocess.php:361 +#: admin/systemsortprocess.php:358 msgid "Failed to complete sort" msgstr "" @@ -1568,7 +1572,7 @@ msgstr "" msgid "Could not add operator. There may already be an operator of this name:" msgstr "" -#: admin/operators.php:169 admin/operators.php:309 admin/operatorlist.php:424 +#: admin/operators.php:169 admin/operators.php:309 admin/operatorlist.php:428 msgid "Add an operator" msgstr "" @@ -1577,55 +1581,55 @@ msgid "The username and extension must be unique for each operator." msgstr "" #: admin/operators.php:233 admin/clients.php:126 admin/clients.php:221 -#: admin/clientquestionnaire.php:293 admin/operatorlist.php:216 -#: admin/operatorlist.php:408 admin/operatorskill.php:251 +#: admin/clientquestionnaire.php:293 admin/operatorlist.php:220 +#: admin/operatorlist.php:412 admin/operatorskill.php:251 #: admin/operatorquestionnaire.php:247 msgid "Username" msgstr "" -#: admin/operators.php:237 admin/clients.php:225 admin/operatorlist.php:220 +#: admin/operators.php:237 admin/clients.php:225 admin/operatorlist.php:224 msgid "Password" msgstr "" -#: admin/operators.php:240 admin/clients.php:228 admin/operatorlist.php:223 +#: admin/operators.php:240 admin/clients.php:228 admin/operatorlist.php:227 #: admin/extensionstatus.php:201 msgid "Generate" msgstr "" -#: admin/operators.php:240 admin/clients.php:228 admin/operatorlist.php:223 +#: admin/operators.php:240 admin/clients.php:228 admin/operatorlist.php:227 msgid "Password with" msgstr "" -#: admin/operators.php:241 admin/clients.php:229 admin/operatorlist.php:224 +#: admin/operators.php:241 admin/clients.php:229 admin/operatorlist.php:228 msgid "characters" msgstr "" -#: admin/operators.php:261 admin/operatorlist.php:244 +#: admin/operators.php:261 admin/operatorlist.php:248 msgid "TimeZones list" msgstr "" -#: admin/operators.php:266 admin/operatorlist.php:250 +#: admin/operators.php:266 admin/operatorlist.php:254 msgid "Uses VoIP" msgstr "" -#: admin/operators.php:275 admin/operatorlist.php:261 -#: admin/operatorlist.php:425 +#: admin/operators.php:275 admin/operatorlist.php:265 +#: admin/operatorlist.php:429 msgid "Extensions" msgstr "" -#: admin/operators.php:282 admin/operatorlist.php:268 +#: admin/operators.php:282 admin/operatorlist.php:272 msgid "Uses chat" msgstr "" -#: admin/operators.php:288 admin/operatorlist.php:274 +#: admin/operators.php:288 admin/operatorlist.php:278 msgid "Jabber/XMPP chat user" msgstr "" -#: admin/operators.php:292 admin/operatorlist.php:278 +#: admin/operators.php:292 admin/operatorlist.php:282 msgid "Jabber/XMPP chat password" msgstr "" -#: admin/operators.php:298 admin/operatorlist.php:285 +#: admin/operators.php:298 admin/operatorlist.php:289 msgid "Is the operator a system administrator?" msgstr "" @@ -1634,9 +1638,9 @@ msgstr "" msgid "Quota report" msgstr "" -#: admin/quotareport.php:116 admin/assigntimeslots.php:161 +#: admin/quotareport.php:116 admin/assigntimeslots.php:163 #: admin/questionnaireprefill.php:107 admin/outcomes.php:74 -#: admin/addshift.php:173 admin/assignsample.php:313 +#: admin/addshift.php:173 admin/assignsample.php:327 msgid "Select a questionnaire" msgstr "" @@ -1694,44 +1698,44 @@ msgstr "" msgid "Update priorities" msgstr "" -#: admin/assigntimeslots.php:159 admin/index.php:141 +#: admin/assigntimeslots.php:161 admin/index.php:141 msgid "Assign Time slots" msgstr "" -#: admin/assigntimeslots.php:168 +#: admin/assigntimeslots.php:170 msgid "Time slot groups" msgstr "" -#: admin/assigntimeslots.php:169 +#: admin/assigntimeslots.php:171 msgid "" "Assigning an availability group to a questionnaire will allow interviewers " "to select from those groups to restrict calls to a particular case to the " "times within the group" msgstr "" -#: admin/assigntimeslots.php:171 admin/assigntimeslots.php:219 -#: admin/assigntimeslots.php:273 admin/assignsample.php:330 +#: admin/assigntimeslots.php:173 admin/assigntimeslots.php:222 +#: admin/assigntimeslots.php:283 admin/assignsample.php:344 #: admin/casestatus.php:101 msgid "Click to unassign" msgstr "" -#: admin/assigntimeslots.php:181 +#: admin/assigntimeslots.php:183 msgid "There are no time slots groups selected for this questionnaire" msgstr "" -#: admin/assigntimeslots.php:185 +#: admin/assigntimeslots.php:187 msgid "Time slots groups selected for this questionnaire" msgstr "" -#: admin/assigntimeslots.php:207 +#: admin/assigntimeslots.php:209 msgid "Add time slot group" msgstr "" -#: admin/assigntimeslots.php:216 +#: admin/assigntimeslots.php:218 msgid "Call attempt time slots" msgstr "" -#: admin/assigntimeslots.php:217 admin/assigntimeslots.php:263 +#: admin/assigntimeslots.php:219 admin/assigntimeslots.php:272 msgid "" "Assigning call attempt time slots to questionnaires will only allow cases to " "be attempted in a time slot for the n + 1th time where it has been attempted " @@ -1740,32 +1744,49 @@ msgid "" "missing timeslots." msgstr "" -#: admin/assigntimeslots.php:229 +#: admin/assigntimeslots.php:232 msgid "There are no call attempt time slots selected for this questionnaire" msgstr "" -#: admin/assigntimeslots.php:233 +#: admin/assigntimeslots.php:236 msgid "Call attempt time slots selected for this questionnaire" msgstr "" -#: admin/assigntimeslots.php:256 +#: admin/assigntimeslots.php:237 admin/assigntimeslots.php:299 +msgid "Availability group" +msgstr "" + +#: admin/assigntimeslots.php:237 admin/assigntimeslots.php:299 +msgid "Weight" +msgstr "" + +#: admin/assigntimeslots.php:237 admin/assigntimeslots.php:299 +#: admin/extensionstatus.php:231 +msgid "Unassign" +msgstr "" + +#: admin/assigntimeslots.php:260 admin/assigntimeslots.php:321 +msgid "Weighting (relative number of calls in this slot)" +msgstr "" + +#: admin/assigntimeslots.php:265 msgid "Add call attempt time slot" msgstr "" -#: admin/assigntimeslots.php:262 +#: admin/assigntimeslots.php:271 msgid "Call attempt time slots for sample" msgstr "" -#: admin/assigntimeslots.php:283 +#: admin/assigntimeslots.php:294 msgid "" "There are no call attempt time slots selected for this questionnaire sample" msgstr "" -#: admin/assigntimeslots.php:287 +#: admin/assigntimeslots.php:298 msgid "Call attempt time slots selected for this sample" msgstr "" -#: admin/assigntimeslots.php:310 +#: admin/assigntimeslots.php:327 msgid "Add call attempt time slot for sample" msgstr "" @@ -1957,7 +1978,7 @@ msgstr "" msgid "Shift time" msgstr "" -#: admin/outcomes.php:305 admin/operatorlist.php:428 admin/index.php:161 +#: admin/outcomes.php:305 admin/operatorlist.php:432 admin/index.php:161 msgid "Operator performance" msgstr "" @@ -2185,52 +2206,52 @@ msgid "Samples selected for this questionnaire" msgstr "" #: admin/sortsample.php:101 admin/sortsample.php:102 -#: admin/assignsample.php:224 admin/assignsample.php:227 -#: admin/assignsample.php:324 admin/assignsample.php:325 -#: admin/assignsample.php:389 admin/assignsample.php:393 +#: admin/assignsample.php:235 admin/assignsample.php:238 +#: admin/assignsample.php:338 admin/assignsample.php:339 +#: admin/assignsample.php:403 admin/assignsample.php:407 msgid "Unlimited" msgstr "" -#: admin/sortsample.php:103 admin/assignsample.php:326 +#: admin/sortsample.php:103 admin/assignsample.php:340 msgid "Sequential" msgstr "" -#: admin/sortsample.php:103 admin/assignsample.php:326 +#: admin/sortsample.php:103 admin/assignsample.php:340 msgid "Random" msgstr "" -#: admin/sortsample.php:104 admin/assignsample.php:230 -#: admin/assignsample.php:327 admin/assignsample.php:397 +#: admin/sortsample.php:104 admin/assignsample.php:241 +#: admin/assignsample.php:341 admin/assignsample.php:411 msgid "Never" msgstr "" -#: admin/sortsample.php:120 admin/assignsample.php:344 +#: admin/sortsample.php:120 admin/assignsample.php:358 msgid "Pull step Down" msgstr "" -#: admin/sortsample.php:121 admin/assignsample.php:345 +#: admin/sortsample.php:121 admin/assignsample.php:359 msgid "Push step Up" msgstr "" -#: admin/sortsample.php:139 admin/assignsample.php:364 +#: admin/sortsample.php:139 admin/assignsample.php:378 msgid "Sort order" msgstr "" -#: admin/sortsample.php:139 admin/assignsample.php:222 -#: admin/assignsample.php:364 admin/assignsample.php:387 +#: admin/sortsample.php:139 admin/assignsample.php:233 +#: admin/assignsample.php:378 admin/assignsample.php:401 msgid "Max calls" msgstr "" -#: admin/sortsample.php:139 admin/assignsample.php:225 -#: admin/assignsample.php:364 admin/assignsample.php:391 +#: admin/sortsample.php:139 admin/assignsample.php:236 +#: admin/assignsample.php:378 admin/assignsample.php:405 msgid "Max call attempts" msgstr "" -#: admin/sortsample.php:139 admin/assignsample.php:364 +#: admin/sortsample.php:139 admin/assignsample.php:378 msgid "Answering machine messages" msgstr "" -#: admin/sortsample.php:139 admin/assignsample.php:364 +#: admin/sortsample.php:139 admin/assignsample.php:378 msgid "Selection type" msgstr "" @@ -2552,94 +2573,94 @@ msgstr "" msgid "Assign clients to questionnaires" msgstr "" -#: admin/operatorlist.php:127 +#: admin/operatorlist.php:131 msgid "Successfully updated user" msgstr "" -#: admin/operatorlist.php:131 admin/operatorlist.php:136 +#: admin/operatorlist.php:135 admin/operatorlist.php:140 msgid "Failed to update user" msgstr "" -#: admin/operatorlist.php:131 admin/operatorlist.php:136 +#: admin/operatorlist.php:135 admin/operatorlist.php:140 msgid "Please make sure the username is unique" msgstr "" -#: admin/operatorlist.php:144 +#: admin/operatorlist.php:148 msgid "Edit Operator settings" msgstr "" -#: admin/operatorlist.php:221 +#: admin/operatorlist.php:225 msgid "leave blank to keep existing password" msgstr "" -#: admin/operatorlist.php:260 +#: admin/operatorlist.php:264 msgid "Add" msgstr "" -#: admin/operatorlist.php:296 +#: admin/operatorlist.php:300 msgid "Update operator" msgstr "" -#: admin/operatorlist.php:387 +#: admin/operatorlist.php:391 msgid "Win .bat file" msgstr "" -#: admin/operatorlist.php:388 +#: admin/operatorlist.php:392 msgid "*nix script file" msgstr "" -#: admin/operatorlist.php:395 +#: admin/operatorlist.php:399 msgid "Enable VoIP" msgstr "" -#: admin/operatorlist.php:397 +#: admin/operatorlist.php:401 msgid "Disable VoIP" msgstr "" -#: admin/operatorlist.php:405 +#: admin/operatorlist.php:409 msgid "Operator list" msgstr "" -#: admin/operatorlist.php:415 +#: admin/operatorlist.php:419 msgid "VoIP ON/Off" msgstr "" -#: admin/operatorlist.php:416 +#: admin/operatorlist.php:420 msgid "Win file" msgstr "" -#: admin/operatorlist.php:417 +#: admin/operatorlist.php:421 msgid "*nix flle" msgstr "" -#: admin/operatorlist.php:426 +#: admin/operatorlist.php:430 msgid "Assign to questionnaire" msgstr "" -#: admin/operatorlist.php:427 +#: admin/operatorlist.php:431 msgid "Operator skills" msgstr "" -#: admin/operatorlist.php:432 +#: admin/operatorlist.php:436 msgid "" "Download the file for each user and save in the same folder as the voip.exe " "executable. When the file is executed, it will run the voip.exe program with " "the correct connection details to connect the operator to the VoIP server" msgstr "" -#: admin/operatorlist.php:434 +#: admin/operatorlist.php:438 msgid "Download Windows VoIP Client Executable file" msgstr "" -#: admin/operatorlist.php:434 +#: admin/operatorlist.php:438 msgid "Download Win file" msgstr "" -#: admin/operatorlist.php:435 +#: admin/operatorlist.php:439 msgid "Download Linux VoIP Executable file" msgstr "" -#: admin/operatorlist.php:435 +#: admin/operatorlist.php:439 msgid "Download Linux file" msgstr "" @@ -2680,7 +2701,7 @@ msgstr "" msgid "Select columns to import" msgstr "" -#: admin/import.php:102 admin/import.php:150 admin/assignsample.php:417 +#: admin/import.php:102 admin/import.php:150 admin/assignsample.php:431 msgid "Add sample" msgstr "" @@ -2752,7 +2773,7 @@ msgstr "" msgid "Samples" msgstr "" -#: admin/index.php:135 admin/assignsample.php:305 +#: admin/index.php:135 admin/assignsample.php:316 msgid "Assign samples to questionnaires" msgstr "" @@ -3124,62 +3145,62 @@ msgstr "" msgid "Code value" msgstr "" -#: admin/assignsample.php:190 +#: admin/assignsample.php:201 msgid "Edit assignment parameters" msgstr "" -#: admin/assignsample.php:191 +#: admin/assignsample.php:202 msgid "Assign samples to questionnaire: " msgstr "" -#: admin/assignsample.php:228 admin/assignsample.php:395 +#: admin/assignsample.php:239 admin/assignsample.php:409 msgid "Number of answering machine messages to leave per case" msgstr "" -#: admin/assignsample.php:231 admin/assignsample.php:399 +#: admin/assignsample.php:242 admin/assignsample.php:413 msgid "Select from sample randomly?" msgstr "" -#: admin/assignsample.php:233 admin/assignsample.php:401 +#: admin/assignsample.php:244 admin/assignsample.php:415 msgid "Sequentially" msgstr "" -#: admin/assignsample.php:234 admin/assignsample.php:364 -#: admin/assignsample.php:403 +#: admin/assignsample.php:245 admin/assignsample.php:378 +#: admin/assignsample.php:417 msgid "Allow new numbers to be drawn?" msgstr "" -#: admin/assignsample.php:304 +#: admin/assignsample.php:315 msgid "List & Add Sample" msgstr "" -#: admin/assignsample.php:321 +#: admin/assignsample.php:335 msgid "Samples assigned to questionnaire" msgstr "" -#: admin/assignsample.php:364 +#: admin/assignsample.php:378 msgid "Unassign sample" msgstr "" -#: admin/assignsample.php:367 +#: admin/assignsample.php:381 msgid "No samples selected for this questionnaire" msgstr "" -#: admin/assignsample.php:380 +#: admin/assignsample.php:394 msgid "Add a sample to this questionnaire:" msgstr "" -#: admin/assignsample.php:383 +#: admin/assignsample.php:397 msgid "Select sample:" msgstr "" -#: admin/assignsample.php:409 +#: admin/assignsample.php:423 msgid "" -"Generate cases for all sample records and set outcome to 'Self completion " -"email invitation sent'?" +"Generate cases for all sample records with a valid email address and set " +"outcome to 'Self completion email invitation sent'?" msgstr "" -#: admin/assignsample.php:411 +#: admin/assignsample.php:425 msgid "" "Ideal if you intend to send an email invitation to sample members before " "attempting to call using queXS" @@ -3664,10 +3685,6 @@ msgstr "" msgid "Unassign the operator from this extension to be able to delete it" msgstr "" -#: admin/extensionstatus.php:231 -msgid "Unassign" -msgstr "" - #: admin/extensionstatus.php:231 msgid "End case to change assignment" msgstr "" From d6cb67ce0fb33da89e054cdbcb86ac445c05a4ed Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Tue, 21 Mar 2017 14:32:35 +1100 Subject: [PATCH 12/13] Updated translations - thank you contributors! --- locale/bs/LC_MESSAGES/bs.po | 6 +- locale/cs/LC_MESSAGES/cs.po | 9 +- locale/de/LC_MESSAGES/de.po | 6 +- locale/el/LC_MESSAGES/el.po | 6 +- locale/es/LC_MESSAGES/es.po | 6 +- locale/fa/LC_MESSAGES/fa.po | 6 +- locale/fr/LC_MESSAGES/fr.po | 6 +- locale/gl/LC_MESSAGES/gl.po | 7 +- locale/he/LC_MESSAGES/he.po | 6 +- locale/hr/LC_MESSAGES/hr.po | 6 +- locale/id/LC_MESSAGES/id.po | 6 +- locale/it/LC_MESSAGES/it.po | 9 +- locale/lt/LC_MESSAGES/lt.po | 7 +- locale/nl/LC_MESSAGES/nl.po | 6 +- locale/oc/LC_MESSAGES/oc.po | 6 +- locale/pl/LC_MESSAGES/pl.po | 6 +- locale/pt-br/LC_MESSAGES/pt-br.po | 9 +- locale/pt/LC_MESSAGES/pt.po | 456 ++++++++++++++++-------------- locale/ro/LC_MESSAGES/ro.po | 6 +- locale/ru/LC_MESSAGES/ru.po | 9 +- locale/sv/LC_MESSAGES/sv.po | 6 +- locale/zh-cn/LC_MESSAGES/zh-cn.po | 8 +- 22 files changed, 316 insertions(+), 282 deletions(-) diff --git a/locale/bs/LC_MESSAGES/bs.po b/locale/bs/LC_MESSAGES/bs.po index ea4bf7c0..88f2427e 100644 --- a/locale/bs/LC_MESSAGES/bs.po +++ b/locale/bs/LC_MESSAGES/bs.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-09-02 11:31+0000\n" "Last-Translator: Siddiq \n" "Language-Team: Bosnian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/cs/LC_MESSAGES/cs.po b/locale/cs/LC_MESSAGES/cs.po index 8d3be503..e816559b 100644 --- a/locale/cs/LC_MESSAGES/cs.po +++ b/locale/cs/LC_MESSAGES/cs.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-12-24 14:41+0000\n" "Last-Translator: Zbyněk Schwarz \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" @@ -4502,9 +4502,11 @@ msgstr "" #~ msgid "retrieve_conf failed, config not applied" #~ msgstr "retrieve_conf selhalo, nastavení není použito" +#, php-format #~ msgid "Reload failed because retrieve_conf encountered an error: %s" #~ msgstr "Znovu načtení selhalo protože retrieve_conf narazilo na chybu: %s" +#, php-format #~ msgid "Exit code was %s and output was: %s" #~ msgstr "Kód ukončení byl %s a výstup byl: %s" @@ -4837,6 +4839,7 @@ msgstr "" #~ msgid "Search for:" #~ msgstr "Hledat:" +#, php-format #~ msgid "Use the % character as a wildcard" #~ msgstr "Použit znak % cjako zástupný znak" diff --git a/locale/de/LC_MESSAGES/de.po b/locale/de/LC_MESSAGES/de.po index b876765a..8416e5a0 100644 --- a/locale/de/LC_MESSAGES/de.po +++ b/locale/de/LC_MESSAGES/de.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2014-03-18 17:48+0000\n" "Last-Translator: Daniel \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/el/LC_MESSAGES/el.po b/locale/el/LC_MESSAGES/el.po index 44b8849b..dcd4aceb 100644 --- a/locale/el/LC_MESSAGES/el.po +++ b/locale/el/LC_MESSAGES/el.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/es/LC_MESSAGES/es.po b/locale/es/LC_MESSAGES/es.po index 86570e03..96201194 100644 --- a/locale/es/LC_MESSAGES/es.po +++ b/locale/es/LC_MESSAGES/es.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2016-06-28 17:43+0000\n" "Last-Translator: Nicolas \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/fa/LC_MESSAGES/fa.po b/locale/fa/LC_MESSAGES/fa.po index e30c1dd7..3e2ef4dc 100644 --- a/locale/fa/LC_MESSAGES/fa.po +++ b/locale/fa/LC_MESSAGES/fa.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-05-09 18:23+0000\n" "Last-Translator: A J \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/fr/LC_MESSAGES/fr.po b/locale/fr/LC_MESSAGES/fr.po index a55500b3..fec9931a 100644 --- a/locale/fr/LC_MESSAGES/fr.po +++ b/locale/fr/LC_MESSAGES/fr.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/gl/LC_MESSAGES/gl.po b/locale/gl/LC_MESSAGES/gl.po index 83a3c0b0..060a890b 100644 --- a/locale/gl/LC_MESSAGES/gl.po +++ b/locale/gl/LC_MESSAGES/gl.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" @@ -4743,6 +4743,7 @@ msgstr "" #~ msgid "Link" #~ msgstr "Ligazón" +#, php-format #~ msgid "Use the % character as a wildcard" #~ msgstr "Usar o carácter % como comodín" diff --git a/locale/he/LC_MESSAGES/he.po b/locale/he/LC_MESSAGES/he.po index a74e75e8..ab5e2c3b 100644 --- a/locale/he/LC_MESSAGES/he.po +++ b/locale/he/LC_MESSAGES/he.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-12-30 05:48+0000\n" "Last-Translator: Gal Zilberman \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/hr/LC_MESSAGES/hr.po b/locale/hr/LC_MESSAGES/hr.po index a468ac57..f59abf33 100644 --- a/locale/hr/LC_MESSAGES/hr.po +++ b/locale/hr/LC_MESSAGES/hr.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2015-11-11 19:47+0000\n" "Last-Translator: Alen \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/id/LC_MESSAGES/id.po b/locale/id/LC_MESSAGES/id.po index c40a780d..46fa1c15 100644 --- a/locale/id/LC_MESSAGES/id.po +++ b/locale/id/LC_MESSAGES/id.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Indonesian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/it/LC_MESSAGES/it.po b/locale/it/LC_MESSAGES/it.po index f82ff147..33072d9a 100644 --- a/locale/it/LC_MESSAGES/it.po +++ b/locale/it/LC_MESSAGES/it.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-12-17 13:37+0000\n" "Last-Translator: Cristiano Santinello \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" @@ -4609,6 +4609,7 @@ msgstr "" #~ msgid "End call with outcome: Quota filled" #~ msgstr "Termina la chiamata con esito: Quota raggiunta" +#, php-format #~ msgid "Reload failed because retrieve_conf encountered an error: %s" #~ msgstr "" #~ "Ricarica non riuscita perché retrieve_conf ha incontrato un errore: %s" @@ -4631,6 +4632,7 @@ msgstr "" #~ "utilizzando lo script bounce_op.sh. Modifiche alle configurazioni potrebbero " #~ "non comparire nel pannello." +#, php-format #~ msgid "Exit code was %s and output was: %s" #~ msgstr "Il codice in uscita è stato %s e l'output è stato: %s" @@ -4901,6 +4903,7 @@ msgstr "" #~ msgid "Link" #~ msgstr "Crea legame" +#, php-format #~ msgid "Use the % character as a wildcard" #~ msgstr "Utilizza il carattere % come jolly" diff --git a/locale/lt/LC_MESSAGES/lt.po b/locale/lt/LC_MESSAGES/lt.po index 359fcebb..353d1268 100644 --- a/locale/lt/LC_MESSAGES/lt.po +++ b/locale/lt/LC_MESSAGES/lt.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" @@ -4687,6 +4687,7 @@ msgstr "" #~ msgid "Pre defined values for this question:" #~ msgstr "Šio klausimo išakstinio užpildymo reikšmės" +#, php-format #~ msgid "Use the % character as a wildcard" #~ msgstr "Use the % character as a wildcard" diff --git a/locale/nl/LC_MESSAGES/nl.po b/locale/nl/LC_MESSAGES/nl.po index d6ad6a1a..6b3d0f7b 100644 --- a/locale/nl/LC_MESSAGES/nl.po +++ b/locale/nl/LC_MESSAGES/nl.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/oc/LC_MESSAGES/oc.po b/locale/oc/LC_MESSAGES/oc.po index 06b7b2f0..1aeabec2 100644 --- a/locale/oc/LC_MESSAGES/oc.po +++ b/locale/oc/LC_MESSAGES/oc.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Occitan (post 1500) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/pl/LC_MESSAGES/pl.po b/locale/pl/LC_MESSAGES/pl.po index 9b98b88a..fc9c1279 100644 --- a/locale/pl/LC_MESSAGES/pl.po +++ b/locale/pl/LC_MESSAGES/pl.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-10-21 18:44+0000\n" "Last-Translator: Paweł Timler \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/pt-br/LC_MESSAGES/pt-br.po b/locale/pt-br/LC_MESSAGES/pt-br.po index 9f108c91..858a0e66 100644 --- a/locale/pt-br/LC_MESSAGES/pt-br.po +++ b/locale/pt-br/LC_MESSAGES/pt-br.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-12-04 16:38+0000\n" "Last-Translator: Marco Antonio Ciciliati \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" @@ -4444,6 +4444,7 @@ msgstr "" #~ msgid "retrieve_conf failed, config not applied" #~ msgstr "Falha no arquivo retrieve_conf. Configurações não aplicadas" +#, php-format #~ msgid "Exit code was %s and output was: %s" #~ msgstr "Código de saída foi %s e saída foi: %s" @@ -4605,6 +4606,7 @@ msgstr "" #~ msgid "Appointment:" #~ msgstr "Agendamentos:" +#, php-format #~ msgid "Reload failed because retrieve_conf encountered an error: %s" #~ msgstr "Falha ao recarregar. Arquivo retrieve_conf encontrou um erro: %s" @@ -4927,6 +4929,7 @@ msgstr "" #~ msgid "Timezone: " #~ msgstr "Fuso horário: " +#, php-format #~ msgid "Use the % character as a wildcard" #~ msgstr "Use the % character as a wildcard" diff --git a/locale/pt/LC_MESSAGES/pt.po b/locale/pt/LC_MESSAGES/pt.po index bea6a7be..97511a10 100644 --- a/locale/pt/LC_MESSAGES/pt.po +++ b/locale/pt/LC_MESSAGES/pt.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" -"PO-Revision-Date: 2016-11-02 10:19+0000\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" +"PO-Revision-Date: 2017-02-22 11:46+0000\n" "Last-Translator: Andre Santos \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" @@ -94,7 +94,7 @@ msgstr "ativo" #: appointment.php:222 msgid "Appointment with myself only?" -msgstr "" +msgstr "Agendamento apenas comigo?" #: appointment.php:231 include/limesurvey/qanda.php:1701 #: include/limesurvey/qanda.php:1921 @@ -117,7 +117,7 @@ msgstr "Os meus agendamentos" #: myappointments.php:75 msgid "Already calling case" -msgstr "" +msgstr "Já com uma chamada" #: myappointments.php:75 myappointments.php:80 myappointments.php:90 msgid "next" @@ -125,7 +125,7 @@ msgstr "seguinte" #: myappointments.php:80 msgid "Will call case" -msgstr "" +msgstr "Será comunicado o caso" #: myappointments.php:89 appointmentlist.php:75 #: admin/displayappointments.php:265 admin/displayappointments.php:298 @@ -301,7 +301,7 @@ msgstr "Manhã" #: functions/functions.operator.php:168 include/limesurvey/quexs.php:363 msgid "afternoon" -msgstr "Á tarde" +msgstr "de tarde" #: functions/functions.operator.php:169 include/limesurvey/quexs.php:364 msgid "evening" @@ -317,28 +317,28 @@ msgstr "Sem turno" #: functions/functions.performance.php:492 msgid "Total completions" -msgstr "Total de terminados" +msgstr "Total de finalizados" #: functions/functions.performance.php:521 msgid "Completions this shift" -msgstr "" +msgstr "Finalizados neste turno" #: functions/functions.performance.php:544 #: functions/functions.performance.php:590 msgid "No previous shift" -msgstr "" +msgstr "Sem turno anterior" #: functions/functions.performance.php:564 msgid "Completions on the previous shift" -msgstr "" +msgstr "Finalizados no turno anterior" #: functions/functions.performance.php:611 msgid "Completions this time on the previous shift" -msgstr "" +msgstr "Finalizados a esta hora no turno anterior" #: functions/functions.performance.php:629 msgid "No calls made for this shift" -msgstr "" +msgstr "sem chamdas neste turno" #: functions/functions.performance.php:631 msgid "Top CPH for this shift" @@ -346,11 +346,11 @@ msgstr "" #: functions/functions.performance.php:648 msgid "No calls made for this project" -msgstr "" +msgstr "Não foram realizadas chamadas para este projecto" #: functions/functions.performance.php:650 msgid "Top CPH" -msgstr "" +msgstr "Principais CPH" #: functions/functions.calendar.php:193 msgid "Select a respondent" @@ -364,19 +364,19 @@ msgstr "Adicionar respondente" #: functions/functions.calendar.php:256 msgid "First name:" -msgstr "" +msgstr "Primeiro nome:" #: functions/functions.calendar.php:257 msgid "Last name:" -msgstr "" +msgstr "Último nome" #: functions/functions.calendar.php:262 msgid "Time Zone:" -msgstr "" +msgstr "Fuso horário:" #: functions/functions.calendar.php:313 msgid "Shift from:" -msgstr "" +msgstr "Alterar de:" #: functions/functions.calendar.php:317 msgid "Start Time" @@ -551,32 +551,32 @@ msgstr "" #: status.php:120 msgid "Requesting" -msgstr "" +msgstr "A requisitar" #: status.php:136 msgid "APPT" -msgstr "" +msgstr "APPT" #: status.php:137 status_interface2.php:181 msgid "MISSED" -msgstr "" +msgstr "PERDIDAS" #: status.php:140 casenote.php:119 status_interface2.php:239 calllist.php:93 #: project_info.php:88 msgid "No case" -msgstr "" +msgstr "Sem caso" #: referral.php:189 msgid "Generated referral to case id" -msgstr "" +msgstr "Gerada referência para o id do caso" #: referral.php:195 msgid "Generated as referral from case id" -msgstr "" +msgstr "Gerada como referência do id do caso" #: referral.php:201 msgid "Created referral case - you may now close this window" -msgstr "" +msgstr "Foi criado uma referência de caso. Pode agora fechar esta janela." #: referral.php:205 msgid "" @@ -585,23 +585,23 @@ msgstr "" #: referral.php:211 msgid "You must supply a primary phone number" -msgstr "" +msgstr "Deve fornecer um número de telefone primário" #: referral.php:220 index.php:172 index_interface2.php:231 msgid "Referral" -msgstr "" +msgstr "Referência" #: referral.php:231 referral.php:268 msgid "Create referral" -msgstr "" +msgstr "Referência criada" #: referral.php:266 msgid "Call this new referral immediately after this case?" -msgstr "" +msgstr "Contactar esta nova referência imediatamente após este caso?" #: referral.php:275 msgid "Referrals not available for this questionnaire" -msgstr "" +msgstr "Referências não disponíveis para este questionário" #: performance.php:67 index.php:282 index_interface2.php:301 msgid "Performance" @@ -609,7 +609,7 @@ msgstr "Desempenho" #: performance.php:83 admin/operatorperformance.php:108 msgid "This shift" -msgstr "" +msgstr "Este turno" #: performance.php:84 performance.php:91 casenote.php:116 #: appointmentlist.php:95 calllist.php:89 admin/outcomes.php:240 @@ -627,11 +627,11 @@ msgstr "Operador" #: admin/outcomes.php:305 admin/quotarow.php:586 #: admin/operatorperformance.php:86 admin/operatorperformance.php:109 msgid "Completions" -msgstr "" +msgstr "Conclusões" #: performance.php:84 performance.php:91 msgid "Completions per hour" -msgstr "" +msgstr "Conclusões por hora" #: performance.php:90 admin/operatorperformance.php:85 msgid "This project" @@ -639,11 +639,11 @@ msgstr "Este projeto" #: casenote.php:62 msgid "Case Notes" -msgstr "" +msgstr "Anotações do caso" #: casenote.php:72 casenote.php:111 admin/supervisor.php:440 msgid "Add note" -msgstr "" +msgstr "Adicionar anotação" #: casenote.php:75 admin/samplelist.php:283 admin/samplelist.php:491 #: admin/samplesearch.php:107 admin/sortsample.php:94 @@ -659,7 +659,7 @@ msgstr "Voltar" #: casenote.php:114 admin/supervisor.php:430 msgid "No notes" -msgstr "" +msgstr "Sem anotações" #: casenote.php:116 callhistory.php:88 calllist.php:89 #: admin/supervisor.php:415 admin/supervisor.php:432 @@ -668,19 +668,19 @@ msgstr "Data/Hora" #: casenote.php:116 admin/bulkappointment.php:237 admin/supervisor.php:432 msgid "Note" -msgstr "" +msgstr "Anotações" #: waitnextcase_interface2.php:49 msgid "Standby" -msgstr "" +msgstr "'Em espera'" #: waitnextcase_interface2.php:60 msgid "Operator Automatically logged out after: " -msgstr "" +msgstr "Operador desligado automaticamente depois de: " #: waitnextcase_interface2.php:60 msgid " minutes" -msgstr "" +msgstr " minutos" #: waitnextcase_interface2.php:63 endwork.php:55 msgid "You have been automatically logged out of work due to inactivity" @@ -688,40 +688,40 @@ msgstr "Você foi automaticamente desconectado por inatividade" #: waitnextcase_interface2.php:90 nocaseavailable.php:101 msgid "ERROR: No questionnaires assigned to you" -msgstr "" +msgstr "Erro: Não tem questionários assignados" #: waitnextcase_interface2.php:95 nocaseavailable.php:95 msgid "Assigned questionnaires:" -msgstr "" +msgstr "Questionários assignados" #: waitnextcase_interface2.php:121 nocaseavailable.php:125 msgid "ERROR: No samples assigned to the questionnaires" -msgstr "" +msgstr "Erro: não existem numerações assignadas a este questionário" #: waitnextcase_interface2.php:123 nocaseavailable.php:119 msgid "Assigned samples:" -msgstr "" +msgstr "Amostras assignadas" #: waitnextcase_interface2.php:139 nocaseavailable.php:150 msgid "ERROR: No shifts at this time" -msgstr "" +msgstr "Erro: Não existem turnos a esta hora" #: waitnextcase_interface2.php:142 nocaseavailable.php:144 msgid "Current shifts available:" -msgstr "" +msgstr "Turnos disponíveis:" #: waitnextcase_interface2.php:162 waitnextcase_interface2.php:165 #: admin/outcomes.php:128 msgid "Cases currently available to call" -msgstr "" +msgstr "Casos atualmente disponíveis para chamar" #: waitnextcase_interface2.php:181 waitnextcase_interface2.php:184 msgid "New samples available to call" -msgstr "" +msgstr "Novas numerações disponíveis para chamar" #: waitnextcase_interface2.php:197 msgid "Get a new case" -msgstr "" +msgstr "Obter novo caso" #: waitnextcase_interface2.php:200 call_interface2.php:299 #: call_interface2.php:317 call.php:282 call.php:284 call.php:400 call.php:405 @@ -731,19 +731,19 @@ msgstr "Terminar trabalho" #: rs_intro.php:73 rs_intro.php:133 msgid "Introduction" -msgstr "" +msgstr "Introdução" #: rs_intro.php:84 msgid "Not Contacted" -msgstr "" +msgstr "Desligado" #: rs_intro.php:94 admin/set_outcomes.php:177 admin/set_outcomes.php:277 msgid "Contacted" -msgstr "" +msgstr "Contactado" #: rs_intro.php:107 msgid "No eligible respondent (person never available on this number)" -msgstr "" +msgstr "Nenhum respondente elegível (pessoa nunca disponível neste número)" #: rs_intro.php:117 msgid "" @@ -753,7 +753,7 @@ msgstr "" #: rs_intro.php:129 rs_answeringmachine.php:69 msgid "Answering machine" -msgstr "Secretária Eletrônica/Caixa Postal" +msgstr "Caixa postal" #: rs_intro.php:156 rs_project_intro.php:114 msgid "Yes - Continue" @@ -794,35 +794,35 @@ msgstr "Pare a gravação manual" #: include/limesurvey/quexs.php:171 admin/databasestrings.php:90 msgid "Self completed online" -msgstr "" +msgstr "Autocompletado online" #: include/limesurvey/quexs.php:676 include/limesurvey/quexs.php:755 msgid "Not on an appointment" -msgstr "" +msgstr "Não está numa marcação" #: include/limesurvey/quexs.php:678 include/limesurvey/quexs.php:757 msgid "On an appointment" -msgstr "" +msgstr "Numa marcação" #: include/limesurvey/quexs.php:989 msgid "All samples" -msgstr "" +msgstr "Todas" #: include/limesurvey/common_functions.php:6298 msgid "queXS: Number of call attempts" -msgstr "" +msgstr "queXS: Número de chamadas tentadas" #: include/limesurvey/common_functions.php:6299 msgid "queXS: On appointment?" -msgstr "" +msgstr "queXs: Em agendamento?" #: include/limesurvey/common_functions.php:6300 msgid "queXS: Percentage complete" -msgstr "" +msgstr "queXS: Percentagem concluída" #: include/limesurvey/common_functions.php:6301 msgid "queXS: Number of answering machine messages left" -msgstr "" +msgstr "queXS: Número de mensagens deixadas na caixa postal" #: include/limesurvey/optout.php:83 msgid "Self completion refused via opt out function" @@ -833,7 +833,7 @@ msgstr "" #: include/limesurvey/admin/browse.php:791 #: include/limesurvey/admin/vvexport.php:69 msgid "Questionnaire and Sample selection:" -msgstr "" +msgstr "Selecção de Qquetionário e amostra:" #: include/limesurvey/admin/exportresults.php:111 #: include/limesurvey/admin/statistics.php:269 @@ -841,10 +841,11 @@ msgstr "" #: include/limesurvey/admin/vvexport.php:70 msgid "All queXS questionnaires and samples associated with this instrument" msgstr "" +"Todos os questionários e amostras queXS estão associados a este instrumento" #: include/limesurvey/admin/exportresults.php:257 msgid "Token" -msgstr "" +msgstr "Token" #: include/limesurvey/admin/exportresults.php:258 #: include/limesurvey/admin/exportresults.php:651 @@ -863,28 +864,28 @@ msgstr "ID do caso" #: include/limesurvey/admin/exportresults.php:983 admin/set_outcomes.php:250 #: admin/set_outcomes.php:277 admin/dataoutput.php:93 msgid "Outcome ID" -msgstr "" +msgstr "ID Resultado" #: include/limesurvey/admin/exportresults.php:260 #: include/limesurvey/admin/exportresults.php:661 #: include/limesurvey/admin/exportresults.php:662 #: include/limesurvey/admin/exportresults.php:986 msgid "Case outcome" -msgstr "" +msgstr "Resultado do caso" #: include/limesurvey/admin/exportresults.php:261 #: include/limesurvey/admin/exportresults.php:611 #: include/limesurvey/admin/exportresults.php:612 #: include/limesurvey/admin/exportresults.php:989 admin/dataoutput.php:93 msgid "Number of call attempts" -msgstr "" +msgstr "Número de tentativa de chamadas" #: include/limesurvey/admin/exportresults.php:262 #: include/limesurvey/admin/exportresults.php:616 #: include/limesurvey/admin/exportresults.php:617 #: include/limesurvey/admin/exportresults.php:992 msgid "Number of answering machine messages left" -msgstr "" +msgstr "Número de mensagens deixadas na caixa postal" #: include/limesurvey/admin/exportresults.php:263 #: include/limesurvey/admin/exportresults.php:621 @@ -892,35 +893,35 @@ msgstr "" #: include/limesurvey/admin/exportresults.php:995 admin/callhistory.php:132 #: admin/callhistory.php:157 admin/supervisor.php:427 admin/dataoutput.php:93 msgid "Case notes" -msgstr "" +msgstr "Anotações do caso" #: include/limesurvey/admin/exportresults.php:264 #: include/limesurvey/admin/exportresults.php:626 #: include/limesurvey/admin/exportresults.php:627 #: include/limesurvey/admin/exportresults.php:998 admin/dataoutput.php:93 msgid "Total interview time over all calls (mins)" -msgstr "" +msgstr "Tempo de entrevista total sobre todas as chamadas (minutos)" #: include/limesurvey/admin/exportresults.php:265 #: include/limesurvey/admin/exportresults.php:631 #: include/limesurvey/admin/exportresults.php:632 #: include/limesurvey/admin/exportresults.php:1001 admin/dataoutput.php:93 msgid "Interview time for last call (mins)" -msgstr "" +msgstr "Tempo de entrevista para a última chamada (minutos)" #: include/limesurvey/admin/exportresults.php:266 #: include/limesurvey/admin/exportresults.php:636 #: include/limesurvey/admin/exportresults.php:637 #: include/limesurvey/admin/exportresults.php:1004 admin/dataoutput.php:93 msgid "Last number dialled" -msgstr "" +msgstr "Último número marcado" #: include/limesurvey/admin/exportresults.php:267 #: include/limesurvey/admin/exportresults.php:641 #: include/limesurvey/admin/exportresults.php:642 #: include/limesurvey/admin/exportresults.php:1007 admin/dataoutput.php:93 msgid "Operator username for last call" -msgstr "" +msgstr "Úlitmo nome do operador da última chamada" #: include/limesurvey/admin/exportresults.php:268 #: include/limesurvey/admin/exportresults.php:646 @@ -928,11 +929,11 @@ msgstr "" #: include/limesurvey/admin/exportresults.php:1010 admin/outcomes.php:305 #: admin/dataoutput.php:93 msgid "Shift report" -msgstr "" +msgstr "Relatório de turno" #: voip/downloadvoipclient.php:59 msgid "Error: Cannot write to temporary directory" -msgstr "" +msgstr "Erro: não é possível escrever na pasta temporária" #: status_interface2.php:85 msgid "Name" @@ -944,24 +945,24 @@ msgstr "Compromisso" #: status_interface2.php:224 msgid "Dial" -msgstr "" +msgstr "Ligar" #: status_interface2.php:233 status_interface2.php:236 msgid "No more numbers to call" -msgstr "Não há mais números para discar" +msgstr "Não há mais números para marcar" #: appointmentlist.php:61 msgid "Appointment List" -msgstr "" +msgstr "Lista de Marcações" #: appointmentlist.php:75 admin/supervisor.php:369 #: admin/displayappointments.php:295 msgid "Not yet called" -msgstr "" +msgstr "Ainda não marcados" #: appointmentlist.php:88 msgid "No appointments made" -msgstr "" +msgstr "Não foram realizadas marcações" #: appointmentlist.php:95 admin/callrestrict.php:140 admin/addshift.php:243 #: admin/availability.php:165 admin/supervisor.php:388 @@ -969,12 +970,12 @@ msgstr "" #: admin/displayappointments.php:337 index.php:167 shifts.php:88 #: shifts.php:109 msgid "End" -msgstr "" +msgstr "Fim" #: appointmentlist.php:95 admin/displayappointments.php:251 #: admin/displayappointments.php:313 msgid "Appointment with" -msgstr "" +msgstr "Marcações com" #: appointmentlist.php:95 client/index.php:99 client/index.php:118 #: callhistory.php:88 calllist.php:89 admin/outcomes.php:147 @@ -986,53 +987,53 @@ msgstr "Resultado" #: client/index.php:65 admin/outcomes.php:71 msgid "Questionnaire Outcomes" -msgstr "" +msgstr "Resultados do questionário" #: client/index.php:78 msgid "There are no questionnaires assigned to you" -msgstr "" +msgstr "Não tem questionários assignados" #: client/index.php:99 admin/outcomes.php:147 msgid "Rate" -msgstr "" +msgstr "Rácio" #: client/index.php:100 admin/outcomes.php:148 msgid "Response Rate 1" -msgstr "" +msgstr "Rácio de resposta 1" #: client/index.php:101 admin/outcomes.php:149 msgid "Refusal Rate 1" -msgstr "" +msgstr "Rácio de recusa 1" #: client/index.php:102 admin/outcomes.php:150 msgid "Cooperation Rate 1" -msgstr "" +msgstr "Rácio de cooperação 1" #: client/index.php:103 admin/outcomes.php:151 msgid "Contact Rate 1" -msgstr "" +msgstr "Rácio de contacctos 1" #: client/index.php:118 admin/outcomes.php:169 admin/outcomes.php:220 #: admin/outcomes.php:262 msgid "Count" -msgstr "" +msgstr "Total" #: client/index.php:120 admin/outcomes.php:269 msgid "No outcomes recorded for this questionnaire" -msgstr "" +msgstr "Nenhum resultado registado para este questionário" #: client/index.php:122 msgid "View summary results" -msgstr "" +msgstr "Ver resumo de resultados" #: client/index.php:141 msgid "You are not a valid client" -msgstr "" +msgstr "Não é um cliente válido" #: supervisorchat.php:62 admin/supervisorchat.php:66 admin/index.php:196 #: index.php:315 msgid "Supervisor chat" -msgstr "" +msgstr "Falar com o supervisor" #: supervisorchat.php:85 index.php:170 supervisor.php:58 msgid "Supervisor" @@ -1040,44 +1041,44 @@ msgstr "Supervisor" #: supervisorchat.php:86 msgid "Me" -msgstr "" +msgstr "Eu" #: supervisorchat.php:93 msgid "Supervisor is available" -msgstr "" +msgstr "Supervisor disponível" #: supervisorchat.php:94 msgid "Supervisor not available" -msgstr "" +msgstr "Supervisor não disponível" #: supervisorchat.php:96 supervisorchat.php:99 msgid "Message" -msgstr "" +msgstr "Mensagem" #: supervisorchat.php:96 msgid "Send" -msgstr "" +msgstr "Enviado" #: supervisorchat.php:99 msgid "From" -msgstr "" +msgstr "Desde:" #: supervisorchat.php:102 msgid "Supervisor chat is not enabled" -msgstr "" +msgstr "Conversa com o supervisor não estão activadas" #: email.php:248 msgid "Self completion invitation sent via email to" -msgstr "" +msgstr "O convite de auto-preenchimento foi enviado por e-mail para" #: email.php:287 email.php:291 email.php:297 email.php:318 #: index_interface2.php:228 msgid "Invitation Email" -msgstr "" +msgstr "Email de convite" #: email.php:304 msgid "The email did not send" -msgstr "" +msgstr "Email não enviado" #: email.php:309 msgid "The email address is not valid" @@ -1085,7 +1086,7 @@ msgstr "Endereço de email é inválido" #: email.php:338 msgid "Email respondent for self completion" -msgstr "" +msgstr "Email do Entrevistado para auto-resposta" #: email.php:347 admin/operators.php:245 admin/clients.php:233 #: admin/operatorlist.php:228 @@ -1129,6 +1130,8 @@ msgstr "Disponibilidade" msgid "" "Select groups to limit availability (Selecting none means always available)" msgstr "" +"Selecione grupos para limitar a disponibilidade (Selecione Nenhum para " +"Sempre Disponível)" #: availability.php:148 admin/supervisor.php:538 msgid "Availability groups not defined for this questionnaire" @@ -1136,43 +1139,43 @@ msgstr "A disponibilidade de grupos não foi definida para este questionário" #: calllist.php:61 msgid "Call List" -msgstr "" +msgstr "Lista de chamadas" #: calllist.php:85 admin/supervisor.php:411 msgid "No calls made" -msgstr "" +msgstr "Sem chamadas realizadas" #: calllist.php:89 msgid "Number called" -msgstr "" +msgstr "Número marcado" #: nocaseavailable.php:69 msgid "No case available" -msgstr "" +msgstr "Sem casos disponíveis" #: nocaseavailable.php:74 msgid "There is no case currently available" -msgstr "" +msgstr "Não tem casos disponíveis" #: nocaseavailable.php:75 msgid "Reasons:" -msgstr "" +msgstr "Razões" #: nocaseavailable.php:86 nocaseavailable.php:98 admin/samplelist.php:462 #: admin/questionnairelist.php:564 admin/operatorlist.php:290 msgid "Enabled" -msgstr "" +msgstr "Ativado" #: nocaseavailable.php:86 admin/samplelist.php:460 #: admin/questionnairelist.php:562 admin/index.php:212 msgid "Disabled" -msgstr "" +msgstr "Inativo" #: nocaseavailable.php:98 nocaseavailable.php:122 admin/samplelist.php:339 #: admin/availabilitygroup.php:133 admin/outcomes.php:169 #: admin/outcomes.php:220 msgid "ID" -msgstr "" +msgstr "ID" #: nocaseavailable.php:98 nocaseavailable.php:122 admin/samplelist.php:326 #: admin/set_outcomes.php:146 admin/set_outcomes.php:189 @@ -1180,7 +1183,7 @@ msgstr "" #: admin/quotarow.php:422 admin/quotarow.php:460 admin/quotarow.php:482 #: admin/quotarow.php:508 admin/quotarow.php:555 admin/quotarow.php:586 msgid "Description" -msgstr "" +msgstr "Descrição" #: nocaseavailable.php:122 admin/samplelist.php:317 admin/quotareport.php:310 #: admin/assigntimeslots.php:265 admin/outcomes.php:128 admin/outcomes.php:184 @@ -1191,47 +1194,47 @@ msgstr "" #: admin/casestatus.php:244 admin/displayappointments.php:313 #: admin/displayappointments.php:337 msgid "Sample" -msgstr "" +msgstr "Amostra" #: nocaseavailable.php:147 msgid "Shift start" -msgstr "" +msgstr "Início de turno" #: nocaseavailable.php:147 msgid "Shift end" -msgstr "" +msgstr "Fim de turno" #: nocaseavailable.php:185 msgid "Limesurvey links:" -msgstr "" +msgstr "Limesurvey links:" #: nocaseavailable.php:204 msgid "ERROR: No tokens table defined for LimeSurvey questionnaire" -msgstr "" +msgstr "ERRO: não há tokens definidos para o questionário LimeSurvey" #: nocaseavailable.php:204 msgid "from questionnaire:" -msgstr "" +msgstr "do questionário:" #: nocaseavailable.php:206 msgid "Tokens table exists for Limesurvey questionnaire:" -msgstr "" +msgstr "Tabela de tokes para o questionário LimeSurvey:" #: nocaseavailable.php:211 msgid "ERROR: Cannot find questionnaires with LimeSurvey ID's" -msgstr "" +msgstr "ERRO: Não foi possível encontrar o ID do questionário LimeSurvey" #: nocaseavailable.php:231 msgid "ERROR: Quota reached for this question" -msgstr "" +msgstr "ERRO: Foi atingida a quota para esta pergunta" #: nocaseavailable.php:250 msgid "POSSIBLE ERROR: Row quota reached for this quota" -msgstr "" +msgstr "Possível erro: Quota de linhas atingida para esta quota." #: admin/timezonetemplate.php:97 msgid "Set Timezones" -msgstr "" +msgstr "Definir fusos horários" #: admin/timezonetemplate.php:109 admin/callrestrict.php:115 #: admin/addshift.php:156 admin/availability.php:124 @@ -1239,57 +1242,61 @@ msgstr "" msgid "" "Your database does not have timezones installed, please see here for details" msgstr "" +"A sua base de dados não tem fusos horários instalados, veja aqui para mais " +"detalhes" #: admin/timezonetemplate.php:109 admin/supervisor.php:157 admin/new.php:198 #: admin/new.php:406 msgid "or" -msgstr "" +msgstr "ou" #: admin/timezonetemplate.php:109 msgid "" "Check that you have granted relevant permissions on 'time_zone_...' tables " "in database named 'mysql'." msgstr "" +"Verifique se concedeu permissões relevantes nas tabelas 'time_zone _...' na " +"base de dados 'mysql'." #: admin/timezonetemplate.php:112 msgid "Default Timezone: " -msgstr "" +msgstr "Fuso horário por defeito: " #: admin/timezonetemplate.php:116 msgid "Set default timezone" -msgstr "" +msgstr "Definir fuso horário" #: admin/timezonetemplate.php:121 msgid "Timezone list" -msgstr "" +msgstr "Lista de fusos horários" #: admin/timezonetemplate.php:124 msgid "Remove Timezone" -msgstr "" +msgstr "Remover fuso horário" #: admin/timezonetemplate.php:124 admin/timezonetemplate.php:128 msgid "Remove" -msgstr "" +msgstr "Remover" #: admin/timezonetemplate.php:128 msgid "Timezone name" -msgstr "" +msgstr "Nome do fuso horário" #: admin/timezonetemplate.php:128 msgid "Time diff to Default Time zone" -msgstr "" +msgstr "Diferença horária ao fuso horário por defeito" #: admin/timezonetemplate.php:128 msgid "Current time" -msgstr "" +msgstr "Hora atual" #: admin/timezonetemplate.php:131 msgid "Add a Timezone:" -msgstr "" +msgstr "Adicionar um fuso horário" #: admin/timezonetemplate.php:135 msgid "Add Timezone" -msgstr "" +msgstr "Adicionar fuso horário" #: admin/samplelist.php:168 msgid "" @@ -1299,53 +1306,53 @@ msgstr "" #: admin/samplelist.php:280 msgid "Rename, Set viewing permissions & Manage sample variables" -msgstr "" +msgstr "Renomear, Definir permissões de visualização e gestão de amostras" #: admin/samplelist.php:281 admin/samplelist.php:489 admin/index.php:133 msgid "Sample management" -msgstr "" +msgstr "Geestão de amostras" #: admin/samplelist.php:318 msgid "Search this sample" -msgstr "" +msgstr "Procurar na amostra" #: admin/samplelist.php:326 admin/availabilitygroup.php:141 msgid "Enter" -msgstr "" +msgstr "Inserir" #: admin/samplelist.php:326 admin/availabilitygroup.php:141 msgid "new" -msgstr "" +msgstr "novo" #: admin/samplelist.php:330 msgid "Rename" -msgstr "" +msgstr "Renomear" #: admin/samplelist.php:339 msgid "Sample variable (Column)" -msgstr "" +msgstr "Variável da amostra (coluna)" #: admin/samplelist.php:339 msgid "Visible?" -msgstr "" +msgstr "Visível?" #: admin/samplelist.php:339 msgid "Var type" -msgstr "" +msgstr "Tipo de variável" #: admin/samplelist.php:339 msgid "Example data" -msgstr "" +msgstr "Dados de exemplo" #: admin/samplelist.php:339 msgid "Delete ?" -msgstr "" +msgstr "Apagar?" #: admin/samplelist.php:343 admin/addshift.php:268 admin/assignsample.php:238 #: admin/quotarow.php:398 admin/extensionstatus.php:210 #: admin/displayappointments.php:281 msgid "Save changes" -msgstr "" +msgstr "Guardar alterações" #: admin/samplelist.php:353 msgid "" @@ -1356,31 +1363,33 @@ msgstr "" #: admin/samplelist.php:357 msgid "There's no data in this sample. Probably was deidentified earlier." msgstr "" +"Não existem dados nesta amostra. Provavelmente foi desidentificado " +"anteriormente." #: admin/samplelist.php:371 msgid "Clean it" -msgstr "" +msgstr "Limpar" #: admin/samplelist.php:388 msgid "Fix this sample " -msgstr "" +msgstr "Corrigir esta amostra " #: admin/samplelist.php:465 admin/questionnairelist.php:567 #: admin/operatorlist.php:390 msgid "Enable" -msgstr "" +msgstr "Ativar" #: admin/samplelist.php:467 admin/samplelist.php:478 #: admin/questionnairelist.php:569 admin/assignsample.php:330 #: admin/supervisor.php:373 admin/supervisor.php:420 #: admin/displayappointments.php:297 admin/displayappointments.php:321 msgid "ARE YOU SURE?" -msgstr "" +msgstr "Tem a certeza?" #: admin/samplelist.php:467 admin/questionnairelist.php:569 #: admin/operatorlist.php:392 msgid "Disable" -msgstr "" +msgstr "Desativar" #: admin/samplelist.php:471 admin/operators.php:260 admin/operators.php:274 #: admin/sortsample.php:105 admin/sortsample.php:139 @@ -1391,23 +1400,23 @@ msgstr "" #: admin/shiftreport.php:102 admin/shiftreport.php:110 #: admin/displayappointments.php:313 admin/displayappointments.php:337 msgid "Edit" -msgstr "" +msgstr "Editar" #: admin/samplelist.php:471 msgid "Viewing permissions" -msgstr "" +msgstr "Ver permissões" #: admin/samplelist.php:473 msgid "Edit sample parameters" -msgstr "" +msgstr "Editar parâmetros da amostra" #: admin/samplelist.php:478 msgid "DELETE SAMPLE" -msgstr "" +msgstr "Apagar amostra" #: admin/samplelist.php:480 admin/samplesearch.php:86 admin/index.php:134 msgid "Search the sample" -msgstr "" +msgstr "Pesquisar a amostra" #: admin/samplelist.php:481 admin/questionnairelist.php:593 #: admin/index.php:168 index.php:255 index_interface2.php:277 @@ -1416,15 +1425,15 @@ msgstr "Histórico de chamadas" #: admin/samplelist.php:481 msgid "sample" -msgstr "" +msgstr "amostra" #: admin/samplelist.php:488 msgid "Sample list" -msgstr "" +msgstr "Listar amostras" #: admin/samplelist.php:492 admin/index.php:132 msgid "Import a sample file" -msgstr "" +msgstr "Importar ficheiro de amostras" #: admin/voipmonitor.php:78 admin/voipmonitor.php:100 msgid "Monitor VoIP Process" @@ -1432,7 +1441,7 @@ msgstr "" #: admin/voipmonitor.php:80 admin/systemsort.php:82 msgid "Running process:" -msgstr "" +msgstr "Processos em execução" #: admin/voipmonitor.php:84 msgid "" @@ -1442,15 +1451,15 @@ msgstr "" #: admin/voipmonitor.php:85 msgid "Process is already closed (eg. server was rebooted)" -msgstr "" +msgstr "Processo já tinha sido fechado. (ex. Servidor foi reeniciado)" #: admin/voipmonitor.php:85 msgid "click here to confirm" -msgstr "" +msgstr "clique aqui para confirmar" #: admin/voipmonitor.php:89 admin/systemsort.php:91 msgid "Kill the running process" -msgstr "" +msgstr "Finalizar processos em execução" #: admin/voipmonitor.php:89 msgid "(requires activity on the VoIP Server to take effect)" @@ -1465,16 +1474,16 @@ msgstr "" #: admin/systemsort.php:111 admin/outcomes.php:305 admin/callhistory.php:132 #: admin/callhistory.php:157 admin/shiftreport.php:110 msgid "Date" -msgstr "" +msgstr "Data" #: admin/voipmonitor.php:95 admin/voipmonitor.php:107 admin/systemsort.php:97 #: admin/systemsort.php:111 msgid "Log entry" -msgstr "" +msgstr "Entrada do registo" #: admin/voipmonitor.php:102 msgid "Click here to begin monitoring the VoIP Process" -msgstr "" +msgstr "Clique aqui para iniciar gestão do processo VoIP" #: admin/voipmonitor.php:103 admin/systemsort.php:110 msgid "Outcome of last process run (if any)" @@ -1482,43 +1491,45 @@ msgstr "" #: admin/systemsortprocess.php:93 msgid "Sorting cases process starting" -msgstr "" +msgstr "Processamento de reordenação aleatória de casos iniciado" #: admin/systemsortprocess.php:106 msgid "Checking for cases open for more than 24 hours" -msgstr "" +msgstr "Verificar casos abertos há mais de 24 horas" #: admin/systemsortprocess.php:135 admin/systemsortprocess.php:147 #: admin/systemsortprocess.php:173 admin/systemsortprocess.php:185 msgid "System automatically closed case as not closed for more than 24 hours" msgstr "" +"O Sistema fechou automaticamente casos que estavam abertos há mais de 24 " +"horas" #: admin/systemsortprocess.php:194 msgid "Completed case closing" -msgstr "" +msgstr "Fecho do caso concluído" #: admin/systemsortprocess.php:194 admin/systemsortprocess.php:196 #: admin/systemsortprocess.php:359 admin/systemsortprocess.php:361 msgid "This task took" -msgstr "" +msgstr "Esta tarefa durou" #: admin/systemsortprocess.php:194 admin/systemsortprocess.php:196 #: admin/systemsortprocess.php:359 admin/systemsortprocess.php:361 #: nocallavailable.php:208 msgid "seconds" -msgstr "" +msgstr "segundos" #: admin/systemsortprocess.php:196 msgid "Failed to complete case closing" -msgstr "" +msgstr "Conclusão do fecho do caso falhou" #: admin/systemsortprocess.php:211 msgid "Sorting cases for " -msgstr "" +msgstr "A reordenar casos aleatóriamente para " #: admin/systemsortprocess.php:239 admin/samplesearch.php:138 msgid "Deleted" -msgstr "" +msgstr "Eliminado" #: admin/systemsortprocess.php:239 msgid "call attempts with no calls" @@ -1530,28 +1541,30 @@ msgstr "" #: admin/systemsortprocess.php:359 msgid "Completed sort" -msgstr "" +msgstr "Reordenação completa" #: admin/systemsortprocess.php:361 msgid "Failed to complete sort" -msgstr "" +msgstr "Falha ao completar reordenamento" #: admin/systemsort.php:80 admin/systemsort.php:102 msgid "Monitor system wide case sorting" -msgstr "" +msgstr "Controlar a reordenação geral de sistema" #: admin/systemsort.php:86 msgid "Kill signal sent: Please wait..." -msgstr "" +msgstr "Pedido de encerrar tarefa enviado: Por favor espere..." #: admin/systemsort.php:87 msgid "" "Process is already closed (eg. server was rebooted) - click here to confirm" msgstr "" +"O Processo já foi encerrado (ex. Servidor reiniciou) - Clique aqui para " +"confirmar" #: admin/systemsort.php:104 msgid "Click here to enable and begin system wide case sorting" -msgstr "" +msgstr "Carregue aqui para ativar e inicar a reordenação geral de sistema" #: admin/systemsort.php:105 msgid "" @@ -1565,110 +1578,113 @@ msgstr "" #: admin/operators.php:146 msgid "Added operator :" -msgstr "" +msgstr "Operador adicionado:" #: admin/operators.php:149 msgid "" "FreePBX needs to be reloaded for the new VoIP extension to take effect" msgstr "" +"O FreePBX necessita de de ser recarregado para activar a extenção VoIP" #: admin/operators.php:163 msgid "" "Could not add operator. There may already be an operator of this name:" msgstr "" +"Não foi possível adicionar operador. Poderá já existir um operador com este " +"nome:" #: admin/operators.php:169 admin/operators.php:309 admin/operatorlist.php:424 msgid "Add an operator" -msgstr "" +msgstr "Adicionar operador" #: admin/operators.php:178 msgid "The username and extension must be unique for each operator." -msgstr "" +msgstr "O utilizador e extenção têm de ser unicos para cadda operador" #: admin/operators.php:233 admin/clients.php:126 admin/clients.php:221 #: admin/clientquestionnaire.php:293 admin/operatorlist.php:216 #: admin/operatorlist.php:408 admin/operatorskill.php:251 #: admin/operatorquestionnaire.php:247 msgid "Username" -msgstr "" +msgstr "Utilizador" #: admin/operators.php:237 admin/clients.php:225 admin/operatorlist.php:220 msgid "Password" -msgstr "" +msgstr "Senha" #: admin/operators.php:240 admin/clients.php:228 admin/operatorlist.php:223 #: admin/extensionstatus.php:201 msgid "Generate" -msgstr "" +msgstr "Gerar" #: admin/operators.php:240 admin/clients.php:228 admin/operatorlist.php:223 msgid "Password with" -msgstr "" +msgstr "senha com" #: admin/operators.php:241 admin/clients.php:229 admin/operatorlist.php:224 msgid "characters" -msgstr "" +msgstr "caracteres" #: admin/operators.php:261 admin/operatorlist.php:244 msgid "TimeZones list" -msgstr "" +msgstr "Lista de fusos horários" #: admin/operators.php:266 admin/operatorlist.php:250 msgid "Uses VoIP" -msgstr "" +msgstr "Usa VoIP" #: admin/operators.php:275 admin/operatorlist.php:261 #: admin/operatorlist.php:425 msgid "Extensions" -msgstr "" +msgstr "Extensões" #: admin/operators.php:282 admin/operatorlist.php:268 msgid "Uses chat" -msgstr "" +msgstr "Usar chat" #: admin/operators.php:288 admin/operatorlist.php:274 msgid "Jabber/XMPP chat user" -msgstr "" +msgstr "utilizador Jabber/XMPP" #: admin/operators.php:292 admin/operatorlist.php:278 msgid "Jabber/XMPP chat password" -msgstr "" +msgstr "senha Jabber/XMPP" #: admin/operators.php:298 admin/operatorlist.php:285 msgid "Is the operator a system administrator?" -msgstr "" +msgstr "este operador é administrador de sistema?" #: admin/quotareport.php:114 admin/questionnairelist.php:608 #: admin/index.php:170 msgid "Quota report" -msgstr "" +msgstr "Relatório de quotas" #: admin/quotareport.php:116 admin/assigntimeslots.php:161 #: admin/questionnaireprefill.php:107 admin/outcomes.php:74 #: admin/addshift.php:173 admin/assignsample.php:313 msgid "Select a questionnaire" -msgstr "" +msgstr "Selecionar questionário" #: admin/quotareport.php:124 msgid "Select a sample" -msgstr "" +msgstr "Selecionar amostra" #: admin/quotareport.php:212 admin/quotareport.php:219 admin/quotarow.php:571 msgid "closed" -msgstr "" +msgstr "fechado" #: admin/quotareport.php:212 admin/quotareport.php:214 #: admin/quotareport.php:221 admin/quotarow.php:571 msgid "open" -msgstr "" +msgstr "abrir" #: admin/quotareport.php:214 msgid "close" -msgstr "" +msgstr "fechar" #: admin/quotareport.php:307 msgid "Total sample" -msgstr "" +msgstr "Amostra total" #: admin/quotareport.php:310 msgid "Strata" @@ -1677,39 +1693,39 @@ msgstr "" #: admin/quotareport.php:310 admin/quotarow.php:134 admin/quotarow.php:390 #: admin/quotarow.php:586 msgid "Quota" -msgstr "" +msgstr "Quota" #: admin/quotareport.php:310 msgid "Sample Used" -msgstr "" +msgstr "Amostra usada" #: admin/quotareport.php:310 msgid "Sample Remaining" -msgstr "" +msgstr "Amostras disponíveis" #: admin/quotareport.php:310 msgid "% Complete" -msgstr "" +msgstr "% Completo" #: admin/quotareport.php:310 msgid "Set priority" -msgstr "" +msgstr "Definir prioridade" #: admin/quotareport.php:310 admin/quotarow.php:586 msgid "Auto prioritise" -msgstr "" +msgstr "Prioridade automática" #: admin/quotareport.php:314 msgid "Update priorities" -msgstr "" +msgstr "Atualizar prioridades" #: admin/assigntimeslots.php:159 admin/index.php:141 msgid "Assign Time slots" -msgstr "" +msgstr "Definir trnos" #: admin/assigntimeslots.php:168 msgid "Time slot groups" -msgstr "" +msgstr "Definir grupos de turno" #: admin/assigntimeslots.php:169 msgid "" @@ -1722,11 +1738,11 @@ msgstr "" #: admin/assigntimeslots.php:273 admin/assignsample.php:330 #: admin/casestatus.php:101 msgid "Click to unassign" -msgstr "" +msgstr "Clicar para cancelar a atribuição" #: admin/assigntimeslots.php:181 msgid "There are no time slots groups selected for this questionnaire" -msgstr "" +msgstr "Não foram atribuídos grupos de turno para este questionário" #: admin/assigntimeslots.php:185 msgid "Time slots groups selected for this questionnaire" @@ -1734,7 +1750,7 @@ msgstr "" #: admin/assigntimeslots.php:207 msgid "Add time slot group" -msgstr "" +msgstr "Adicionar grupo de turno" #: admin/assigntimeslots.php:216 msgid "Call attempt time slots" @@ -4321,6 +4337,8 @@ msgid "" "Your VoIP extension is not active. Please activate VoIP by clicking once on " "the red button that says 'VoIP Off'" msgstr "" +"A sua extensão VoIP não está activa. Por favor active a sua extensão VoIP " +"clicando no botão vermelho que diz \"VoIP Desligado\"" #: nocallavailable.php:227 msgid "Auto dialling unavailable as VoIP is not enabled" @@ -4332,7 +4350,7 @@ msgstr "" #: index_interface2.php:203 msgid "Case" -msgstr "" +msgstr "Caso" #: rs_quota_end.php:64 msgid "Project Quota End" diff --git a/locale/ro/LC_MESSAGES/ro.po b/locale/ro/LC_MESSAGES/ro.po index 03c13847..38985147 100644 --- a/locale/ro/LC_MESSAGES/ro.po +++ b/locale/ro/LC_MESSAGES/ro.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/ru/LC_MESSAGES/ru.po b/locale/ru/LC_MESSAGES/ru.po index 8a188575..d315e187 100644 --- a/locale/ru/LC_MESSAGES/ru.po +++ b/locale/ru/LC_MESSAGES/ru.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs DDR\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2016-01-28 10:30+0000\n" "Last-Translator: Alex \n" "Language-Team: Russian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" "Language: ru\n" #: appointment.php:76 @@ -4978,6 +4978,7 @@ msgstr "Квота для опроса заполнена" #~ "bounce_op.sh . Изменения в конфигурации могли не отразиться на экране " #~ "панели." +#, php-format #~ msgid "Reload failed because retrieve_conf encountered an error: %s" #~ msgstr "" #~ "Перезагрузка не удалась, т.к. выполнение файла retrieve_conf привело к " @@ -5012,12 +5013,14 @@ msgstr "Квота для опроса заполнена" #~ msgid "% complete" #~ msgstr "% завершено" +#, php-format #~ msgid "Use the % character as a wildcard" #~ msgstr "Используйте символ % для подстановки любого значения" #~ msgid "End call with outcome: Quota filled" #~ msgstr "Закончить звонок с результатом: Квота заполнена" +#, php-format #~ msgid "Exit code was %s and output was: %s" #~ msgstr "Код выхода был %s с результатом : %s" diff --git a/locale/sv/LC_MESSAGES/sv.po b/locale/sv/LC_MESSAGES/sv.po index 25a8e53d..8f60d837 100644 --- a/locale/sv/LC_MESSAGES/sv.po +++ b/locale/sv/LC_MESSAGES/sv.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2013-03-08 01:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" #: appointment.php:76 msgid "Appointment error" diff --git a/locale/zh-cn/LC_MESSAGES/zh-cn.po b/locale/zh-cn/LC_MESSAGES/zh-cn.po index 9421e77b..0ae0f0b0 100644 --- a/locale/zh-cn/LC_MESSAGES/zh-cn.po +++ b/locale/zh-cn/LC_MESSAGES/zh-cn.po @@ -7,15 +7,15 @@ msgid "" msgstr "" "Project-Id-Version: quexs\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2016-10-25 15:08+1100\n" +"POT-Creation-Date: 2017-01-06 15:16+1100\n" "PO-Revision-Date: 2014-09-01 03:16+0000\n" "Last-Translator: Daniel lee \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n" -"X-Generator: Launchpad (build 18302)\n" +"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n" +"X-Generator: Launchpad (build 18332)\n" "Language: zh\n" #: appointment.php:76 @@ -4410,6 +4410,7 @@ msgstr "" #~ msgid "End call with outcome: Quota filled" #~ msgstr "结束电话:配额已满" +#, php-format #~ msgid "Reload failed because retrieve_conf encountered an error: %s" #~ msgstr "重新加载失败,retrieve_conf 文件遇到错误:%s" @@ -4421,6 +4422,7 @@ msgstr "" #~ "interface." #~ msgstr "重新加载失败,FreePBX无法连接到asterisk管理员界面" +#, php-format #~ msgid "Exit code was %s and output was: %s" #~ msgstr "退出编码是 %s ,输出是:%s" From 845009e2a0a97d88dcd78470b32f40bda82f703c Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Tue, 21 Mar 2017 14:49:26 +1100 Subject: [PATCH 13/13] Updated changelog for 1.15.0 release --- CHANGELOG | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index e13f6541..941dd8ab 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,20 @@ +queXS 1.15.0 - Changes since 1.14.4 + +This release contains a weighted timeslot feature to allow for varying numbers of attempts in particular timeslots, +as well as features and fixes to web/CATI mode integration. + +New feature: Weighted timeslots (allow more attempts in particular timeslots) +New feature: Allow for tokens to be imported in a queXS sample + +Fixed issue: Database structure not optimised for sample_var_import_restrict table +Fixed issue: Cases being generated without a valid email address when importing to Limesurvey +Fixed issue: Limesurvey save form not displaying +Fixed issue: Limesurvey welcome screen not displaying +Fixed issue: Admin permissions not propogating to Limesurvey +Fixed issue: Mode of delivery (single page, group by group, etc) not determined if no token in queXS + +Database changes required: + INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(9, 'Token', ''); ALTER TABLE `sample_import_var_restrict` ADD INDEX ( `var` ) ; ALTER TABLE `sample_import_var_restrict` ADD INDEX ( `sample_import_id` ) ;