Skip to content

Commit

Permalink
New feature #4660: New switch in survey setting where you can enable …
Browse files Browse the repository at this point in the history
…that users may enter they survey even after completion and update their answers using the invitation link and token persistence - patch by room2web

git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_dev@9629 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
c-schmitz committed Dec 11, 2010
1 parent f3f75ae commit 1a3ab1b
Show file tree
Hide file tree
Showing 11 changed files with 71 additions and 39 deletions.
2 changes: 2 additions & 0 deletions admin/database.php
Expand Up @@ -1072,6 +1072,7 @@ function get_max_question_order($gid)
'listpublic'=>$_POST['public'],
'htmlemail'=>$_POST['htmlemail'],
'tokenanswerspersistence'=>$_POST['tokenanswerspersistence'],
'alloweditaftercompletion'=>$_POST['alloweditaftercompletion'],
'usecaptcha'=>$_POST['usecaptcha'],
'emailresponseto'=>trim($_POST['emailresponseto']),
'emailnotificationto'=>trim($_POST['emailnotificationto']),
Expand Down Expand Up @@ -1373,6 +1374,7 @@ function get_max_question_order($gid)
'public'=>$_POST['public'],
'htmlemail'=>$_POST['htmlemail'],
'tokenanswerspersistence'=>$_POST['tokenanswerspersistence'],
'alloweditaftercompletion'=>$_POST['alloweditaftercompletion'],
'usecaptcha'=>$_POST['usecaptcha'],
'publicstatistics'=>$_POST['publicstatistics'],
'publicgraphs'=>$_POST['publicgraphs'],
Expand Down
11 changes: 11 additions & 0 deletions admin/editsurveysettings.php
Expand Up @@ -51,6 +51,7 @@
$esrow['ipaddr'] = 'N';
$esrow['refurl'] = 'N';
$esrow['tokenanswerspersistence'] = 'N';
$esrow['alloweditaftercompletion'] = 'N';
$esrow['assesments'] = 'N';
$esrow['startdate'] = '';
$esrow['savetimings'] = 'N';
Expand Down Expand Up @@ -866,6 +867,16 @@
$editsurvey .= ">".$clang->gT("No")."</option>\n"
. "</select></li>\n";

// Allow editing answers after completion
$editsurvey .= "<li><label for=''>".$clang->gT("Allow editing answers after completion?")."</label>\n"
. "<select id='alloweditaftercompletion' name='alloweditaftercompletion' onchange=\"javascript: if (document.getElementById('private').value == 'Y') {alert('".$clang->gT("This option can't be set if Anonymous answers are used","js")."'); this.value='N';}\">\n"
. "<option value='Y'";
if ($esrow['alloweditaftercompletion'] == "Y") {$editsurvey .= " selected='selected'";}
$editsurvey .= ">".$clang->gT("Yes")."</option>\n"
. "<option value='N'";
if ($esrow['alloweditaftercompletion'] == "N") {$editsurvey .= " selected='selected'";}
$editsurvey .= ">".$clang->gT("No")."</option>\n"
. "</select></li>\n";

// Save timings
$editsurvey .= "<li><label for='savetimings'>".$clang->gT("Save timings?")."</label>\n";
Expand Down
3 changes: 2 additions & 1 deletion admin/install/create-mssql.sql
Expand Up @@ -292,6 +292,7 @@ CREATE TABLE [prefix_surveys] (
[allowjumps] char(1) default 'N',
[navigationdelay] tinyint default '0',
[nokeyboard] char(1) default 'N',
[alloweditaftercompletion] char(1) default 'N',

PRIMARY KEY ([sid])
)
Expand All @@ -318,11 +319,11 @@ CREATE TABLE [prefix_surveys_languagesettings] (
[surveyls_email_register] TEXT NULL,
[surveyls_email_confirm_subj] VARCHAR(255) NULL,
[surveyls_email_confirm] TEXT NULL,
[surveyls_dateformat] INT NOT NULL DEFAULT 1,
[email_admin_notification_subj] VARCHAR(255) NULL,
[email_admin_notification] TEXT NULL,
[email_admin_responses_subj] VARCHAR(255) NULL,
[email_admin_responses] TEXT NULL,
[surveyls_dateformat] INT NOT NULL DEFAULT 1,
[surveyls_numberformat] INT NOT NULL DEFAULT 0,
PRIMARY KEY ([surveyls_survey_id],[surveyls_language])
)
Expand Down
4 changes: 2 additions & 2 deletions admin/install/create-mssqlnative.sql
Expand Up @@ -301,6 +301,7 @@ CREATE TABLE [prefix_surveys] (
[allowjumps] char(1) default 'N',
[navigationdelay] tinyint default '0',
[nokeyboard] char(1) default 'N',
[alloweditaftercompletion] char(1) default 'N',

PRIMARY KEY ([sid])
)
Expand All @@ -327,11 +328,11 @@ CREATE TABLE [prefix_surveys_languagesettings] (
[surveyls_email_register] varchar(max) NULL,
[surveyls_email_confirm_subj] VARCHAR(255) NULL,
[surveyls_email_confirm] varchar(max) NULL,
[surveyls_dateformat] INT NOT NULL DEFAULT 1,
[email_admin_notification_subj] VARCHAR(255) NULL,
[email_admin_notification] varchar(max) NULL,
[email_admin_responses_subj] VARCHAR(255) NULL,
[email_admin_responses] varchar(max) NULL,
[surveyls_dateformat] INT NOT NULL DEFAULT 1,
[surveyls_numberformat] INT NOT NULL DEFAULT 0,
PRIMARY KEY ([surveyls_survey_id],[surveyls_language])
)
Expand Down Expand Up @@ -423,7 +424,6 @@ CREATE TABLE [prefix_templates] (
);



--
-- Create failed_login_attempts
--
Expand Down
3 changes: 2 additions & 1 deletion admin/install/create-mysql.sql
Expand Up @@ -281,6 +281,7 @@ CREATE TABLE `prefix_surveys` (
`allowjumps` char(1) default 'N',
`navigationdelay` tinyint(2) default '0',
`nokeyboard` char(1) default 'N',
`alloweditaftercompletion` char(1) default 'N',
PRIMARY KEY(`sid`)
) ENGINE=$databasetabletype CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Expand All @@ -306,11 +307,11 @@ CREATE TABLE `prefix_surveys_languagesettings` (
`surveyls_email_confirm_subj` VARCHAR(255) NULL,
`surveyls_email_confirm` TEXT NULL,
`surveyls_dateformat` INT UNSIGNED NOT NULL DEFAULT 1,
`surveyls_numberformat` INT NOT NULL DEFAULT 0,
`email_admin_notification_subj` VARCHAR(255) NULL,
`email_admin_notification` TEXT NULL,
`email_admin_responses_subj` VARCHAR(255) NULL,
`email_admin_responses` TEXT NULL,
`surveyls_numberformat` INT NOT NULL DEFAULT 0,

PRIMARY KEY (`surveyls_survey_id`, `surveyls_language`)
) ENGINE = $databasetabletype CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Expand Down
5 changes: 3 additions & 2 deletions admin/install/create-postgres.sql
Expand Up @@ -305,7 +305,8 @@ CREATE TABLE prefix_surveys (
showprogress character(1) DEFAULT 'N'::bpchar,
allowjumps character(1) DEFAULT 'N'::bpchar,
navigationdelay smallint DEFAULT '0',
nokeyboard character(1) DEFAULT 'N'::bpchar
nokeyboard character(1) DEFAULT 'N'::bpchar,
alloweditaftercompletion character(1) DEFAULT 'N'::bpchar
);

ALTER TABLE ONLY prefix_surveys ADD CONSTRAINT prefix_surveys_pkey PRIMARY KEY (sid);
Expand All @@ -331,11 +332,11 @@ CREATE TABLE prefix_surveys_languagesettings (
surveyls_email_register text,
surveyls_email_confirm_subj character varying(255),
surveyls_email_confirm text,
surveyls_dateformat integer DEFAULT 1 NOT NULL,
email_admin_notification_subj character varying(255),
email_admin_notification text,
email_admin_responses_subj character varying(255),
email_admin_responses text,
surveyls_dateformat integer DEFAULT 1 NOT NULL,
surveyls_numberformat integer NOT NULL DEFAULT 1
);

Expand Down
17 changes: 10 additions & 7 deletions admin/update/upgrade-mssql.php
Expand Up @@ -424,8 +424,9 @@ function db_upgrade($oldversion) {
modify_database("", "ALTER TABLE [prefix_surveys] ADD showwelcome CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD showprogress CHAR(1) NULL default 'Y'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD allowjumps CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD navigationdelay tinyint default '0'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD navigationdelay tinyint NOT NULL default '0'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD nokeyboard CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD alloweditaftercompletion CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();
modify_database("", "CREATE TABLE [prefix_survey_permissions] (
[sid] INT NOT NULL,
[uid] INT NOT NULL,
Expand Down Expand Up @@ -464,21 +465,23 @@ function db_upgrade($oldversion) {

modify_database("","EXEC sp_rename 'prefix_surveys.private','anonymized'"); echo $modifyoutput; flush();
modify_database("","ALTER TABLE [prefix_surveys] ALTER COLUMN [anonymized] char(1) NOT NULL default 'N';"); echo $modifyoutput; flush();


modify_database("", "UPDATE [prefix_settings_global] SET stg_value='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();

modify_database("", "CREATE TABLE [prefix_failed_login_attempts] (
[id] int(11) NOT NULL AUTO_INCREMENT,
[ip] varchar(37) NOT NULL,
[last_attempt] varchar(20) NOT NULL,
[number_attempts] int(11) NOT NULL,
PRIMARY KEY ([id]));"); echo $modifyoutput; flush();
PRIMARY KEY ([id])
);"); echo $modifyoutput; flush();

modify_database("", "ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_numberformat] INT default 0 NOT NULL"); echo $modifyoutput; flush();


modify_database("", "UPDATE [prefix_settings_global] SET stg_value='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();


}

modify_database("", "ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_numberformat] int(11) default 0 NOT NULL AFTER [surveyls_dateformat]"); echo $modifyoutput; flush();

echo '<br /><br />Database update finished ('.date('Y-m-d H:i:s').')<br />';
return true;
}
Expand Down
19 changes: 11 additions & 8 deletions admin/update/upgrade-mssqlnative.php
Expand Up @@ -423,6 +423,7 @@ function db_upgrade($oldversion) {
modify_database("", "ALTER TABLE [prefix_surveys] ADD allowjumps CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD navigationdelay tinyint NOT NULL default '0'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD nokeyboard CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE [prefix_surveys] ADD alloweditaftercompletion CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();
modify_database("", "CREATE TABLE [prefix_survey_permissions] (
[sid] INT NOT NULL,
[uid] INT NOT NULL,
Expand Down Expand Up @@ -461,20 +462,22 @@ function db_upgrade($oldversion) {

modify_database("","EXEC sp_rename 'prefix_surveys.private','anonymized'"); echo $modifyoutput; flush();
modify_database("","ALTER TABLE [prefix_surveys] ALTER COLUMN [anonymized] char(1) NOT NULL default 'N';"); echo $modifyoutput; flush();

modify_database("", "CREATE TABLE [prefix_failed_login_attempts] (
[id] int(11) NOT NULL AUTO_INCREMENT,
[ip] varchar(37) NOT NULL,
[last_attempt] varchar(20) NOT NULL,
[number_attempts] int(11) NOT NULL,
PRIMARY KEY ([id])
);"); echo $modifyoutput; flush();

modify_database("", "ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_numberformat] INT default 0 NOT NULL"); echo $modifyoutput; flush();


modify_database("", "UPDATE [prefix_settings_global] SET stg_value='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();

modify_database("", "CREATE TABLE [prefix_failed_login_attempts] (
[id] int(11) NOT NULL AUTO_INCREMENT,
[ip] varchar(37) NOT NULL,
[last_attempt] varchar(20) NOT NULL,
[number_attempts] int(11) NOT NULL,
PRIMARY KEY ([id])
);"); echo $modifyoutput; flush();

}
modify_database("", "ALTER TABLE [prefix_surveys_languagesettings] ADD [surveyls_numberformat] int(11) default 0 NOT NULL AFTER [surveyls_dateformat]"); echo $modifyoutput; flush();

echo '<br /><br />Database update finished ('.date('Y-m-d H:i:s').')<br />';
return true;
Expand Down
10 changes: 3 additions & 7 deletions admin/update/upgrade-mysql.php
Expand Up @@ -408,6 +408,7 @@ function db_upgrade($oldversion) {
modify_database("", "ALTER TABLE `prefix_surveys` ADD `allowjumps` char(1) default 'N'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE `prefix_surveys` ADD `navigationdelay` tinyint(2) default '0'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE `prefix_surveys` ADD `nokeyboard` char(1) default 'N'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE `prefix_surveys` ADD `alloweditaftercompletion` char(1) default 'N'"); echo $modifyoutput; flush();
modify_database("", "CREATE TABLE `prefix_survey_permissions` (
`sid` int(10) unsigned NOT NULL,
`uid` int(10) unsigned NOT NULL,
Expand Down Expand Up @@ -562,9 +563,7 @@ function db_upgrade($oldversion) {

modify_database("","ALTER TABLE `prefix_user_in_groups` DROP INDEX `user_in_groups_idx1`"); echo $modifyoutput; flush();
modify_database("","ALTER TABLE `prefix_user_in_groups` ADD PRIMARY KEY (`ugid`, `uid`)"); echo $modifyoutput; flush();

modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();

modify_database("", "ALTER TABLE `prefix_surveys_languagesettings` ADD `surveyls_numberformat` int(11) NOT NULL DEFAULT 0 AFTER `surveyls_dateformat`"); echo $modifyoutput; flush();
modify_database("", "CREATE TABLE `prefix_failed_login_attempts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(37) NOT NULL,
Expand All @@ -573,12 +572,9 @@ function db_upgrade($oldversion) {
PRIMARY KEY (`id`)
) ENGINE=$databasetabletype CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();




modify_database("", "UPDATE `prefix_settings_global` SET `stg_value`='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();
}

modify_database("", "ALTER TABLE `prefix_surveys_languagesettings` ADD `surveyls_numberformat` int(11) NOT NULL DEFAULT 0 AFTER `surveyls_dateformat`"); echo $modifyoutput; flush();

echo '<br /><br />Database update finished ('.date('Y-m-d H:i:s').')<br />';
return true;
Expand Down
10 changes: 4 additions & 6 deletions admin/update/upgrade-postgres.php
Expand Up @@ -250,6 +250,7 @@ function db_upgrade($oldversion) {
modify_database("", "ALTER TABLE prefix_surveys ADD allowjumps CHAR(1) NULL default 'N'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE prefix_surveys ADD navigationdelay smallint NOT NULL default '0'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE prefix_surveys ADD nokeyboard char(1) default 'N'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE prefix_surveys ADD alloweditaftercompletion char(1) default 'N'"); echo $modifyoutput; flush();
modify_database("", "CREATE TABLE prefix_survey_permissions (
sid integer DEFAULT 0 NOT NULL,
uid integer DEFAULT 0 NOT NULL,
Expand Down Expand Up @@ -284,20 +285,17 @@ function db_upgrade($oldversion) {

modify_database("","ALTER TABLE prefix_surveys RENAME COLUMN private TO anonymized;"); echo $modifyoutput; flush();
modify_database("","ALTER TABLE prefix_surveys ALTER COLUMN anonymized TYPE char(1) Default 'N' NOT NULL ;"); echo $modifyoutput; flush();

modify_database("", "UPDATE prefix_settings_global SET stg_value='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();

modify_database("", "CREATE TABLE prefix_failed_login_attempts (
id integer NOT NULL AUTO_INCREMENT,
ip character varying(37) NOT NULL,
last_attempt character varying(20) NOT NULL,
number_attempts integer NOT NULL
);"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE ONLY prefix_failed_login_attempts ADD CONSTRAINT prefix_failed_login_attempts_pkey PRIMARY KEY (\"id\");"); echo $modifyoutput; flush();


modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD surveyls_numberformat integer default 0 NOT NULL"); echo $modifyoutput; flush();

modify_database("", "UPDATE prefix_settings_global SET stg_value='145' WHERE stg_name='DBVersion'"); echo $modifyoutput; flush();
}
modify_database("", "ALTER TABLE prefix_surveys_languagesettings ADD surveyls_numberformat integer default 0 NOT NULL AFTER surveyls_dateformat"); echo $modifyoutput; flush();


echo '<br /><br />Database update finished ('.date('Y-m-d H:i:s').')<br />';
Expand Down

0 comments on commit 1a3ab1b

Please sign in to comment.