Backing out Survey for now
This commit is contained in:
parent
4c546d312f
commit
151e705286
25 changed files with 2519 additions and 3365 deletions
|
|
@ -8,8 +8,6 @@
|
|||
- The Syndicated Content asset was rewritten, and now uses 35% less memory
|
||||
and is 400% faster.
|
||||
- fixed #9025: Testing function of UsersOnline macro fails.
|
||||
- Brand new Survey system. Make sure to export your old results as they will
|
||||
not be imported, only the surveys themselves.
|
||||
- fixed #9028: Thingy fails when setting values containing single quotes
|
||||
- fixed #9047: Unable to reorder DataForm tabs
|
||||
- added: Delete columns from DataTable
|
||||
|
|
|
|||
|
|
@ -19,10 +19,6 @@ save you many hours of grief.
|
|||
|
||||
* You must upgrade to 7.6.2 before you can upgrade to 7.6.3.
|
||||
|
||||
* The Survey system has been completely updated. Please make sure you
|
||||
create full backups of your survey results and export them as needed.
|
||||
Results will not be imported into the new Survey system. Your old surveys
|
||||
will be imported into the new survey system.
|
||||
|
||||
7.6.1
|
||||
--------------------------------------------------------------------
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -33,7 +33,6 @@ createLastUpdatedField($session);
|
|||
createFieldShowOnline($session);
|
||||
upgradeSyndicatedContentTemplates($session);
|
||||
removeCaseInsensitiveConfig($session);
|
||||
migrateSurvey($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
|
@ -48,193 +47,6 @@ sub removeCaseInsensitiveConfig {
|
|||
print " Done.\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# This method migrates the the old survey system and existing surveys to the new survey system
|
||||
#
|
||||
#
|
||||
sub migrateSurvey{
|
||||
my $session = shift;
|
||||
print "Migrating surveys to new survey system..." unless $quiet;
|
||||
|
||||
_moveOldSurveyTables($session);
|
||||
_addSurveyTables($session);
|
||||
|
||||
print "\n";
|
||||
|
||||
my $surveys = $session->db->buildArrayRefOfHashRefs(
|
||||
"SELECT * FROM Survey_old s
|
||||
where s.revisionDate = (select max(s1.revisionDate) from Survey_old s1 where s1.assetId = s.assetId)"
|
||||
);
|
||||
|
||||
for my $survey(@$surveys){
|
||||
|
||||
#move over survey
|
||||
$session->db->write("insert into Survey
|
||||
values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
|
||||
[
|
||||
$$survey{groupToTakeSurvey},$$survey{groupToViewReports},'PBtmpl0000000000000064','PBtmpl0000000000000063',$$survey{maxResponsesPerUser},
|
||||
$$survey{gradebookTemplateId},$$survey{assetId},'PBtmpl0000000000000061',$$survey{revisionDate},'GRUNFctldUgop-qRLuo_DA','AjhlNO3wZvN5k4i4qioWcg',
|
||||
'wAc4azJViVTpo-2NYOXWvg', '1oBRscNIcFOI-pETrCOspA','d8jMMMRddSQ7twP4l1ZSIw','CxMpE_UPauZA3p8jdrOABw','','{}'
|
||||
]
|
||||
);
|
||||
|
||||
my $sjson = WebGUI::Asset::Wobject::Survey::SurveyJSON->new();
|
||||
|
||||
#move over sections
|
||||
my $sql = "select * from Survey_section_old where Survey_id = '$$survey{Survey_id}' order by sequenceNumber";
|
||||
my $sections = $session->db->buildArrayRefOfHashRefs($sql);
|
||||
my $sId = 0;
|
||||
my %sMap;
|
||||
for my $section(@$sections){
|
||||
my $random = $$section{questionOrder} eq 'random' ? 1 : 0;
|
||||
$sMap{$$section{Survey_sectionId}} = $sId;
|
||||
$sjson->update([$sId++],
|
||||
{
|
||||
'text','','title',$$section{sectionName},'variable',$$section{Survey_sectionId},
|
||||
'questionsPerPage',$$survey{questionsPerPage},'randomizeQuestions',$random
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#move over questions
|
||||
#my %qMap = ('radioList','Multiple Choice','text','Text','HTMLArea','Text','textArea','Text');
|
||||
$sql = "select * from Survey_question_old where Survey_id = '$$survey{Survey_id}' order by sequenceNumber";
|
||||
my $questions = $session->db->buildArrayRefOfHashRefs($sql);
|
||||
my $qId = 0;
|
||||
my %qMap;
|
||||
my %qS;
|
||||
for my $question(@$questions){
|
||||
$qMap{$$question{Survey_questionId}} = $qId;
|
||||
$qS{$$question{Survey_questionId}} = $$question{Survey_sectionId};
|
||||
$sjson->update([$sMap{$$question{Survey_sectionId}},$qId++],
|
||||
{
|
||||
'text',$$question{question},'variable',$$question{Survey_questionId},'allowComment',$$question{allowComment},
|
||||
'randomizeAnswers',$$question{randomizeAnswers},'questionType',$qMap{$$question{answerField}}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
#move over answers
|
||||
$sql = "select * from Survey_answer_old where Survey_id = '$$survey{Survey_id}' order by sequenceNumber";
|
||||
my $answers = $session->db->buildArrayRefOfHashRefs($sql);
|
||||
my $aId = 0;
|
||||
my %aMap;
|
||||
for my $answer(@$answers){
|
||||
$aMap{$$survey{Survey_answerId}} = $aId;
|
||||
$sjson->update([$sMap{$qS{$$answer{Survey_questionId}}},$qMap{$$answer{Survey_questionId}},$aId++],
|
||||
{
|
||||
'text',$$answer{answer},'goto',$$answer{Survey_questionId},'recordedAnswer',$$answer{answer},
|
||||
'isCorrect',$$answer{isCorrect},'NEED TO MAP QUESTION TYPES'
|
||||
}
|
||||
);
|
||||
}
|
||||
my $date = $session->db->quickScalar('select max(revisionDate) from Survey where assetId = ?',[$$survey{assetId}]);
|
||||
$session->db->write('update Survey set surveyJSON = ? where assetId = ? and revisionDate = ?',[$sjson->freeze,$$survey{assetId},$date]);
|
||||
|
||||
|
||||
my $rjson = WebGUI::Asset::Wobject::Survey::ResponseJSON->new(undef,undef,$sjson);
|
||||
$rjson->createSurveyOrder();
|
||||
#move over responses
|
||||
$sql = "select * from Survey_response_old where Survey_id = '$$survey{Survey_id}'";
|
||||
my $responses = $session->db->buildArrayRefOfHashRefs($sql);
|
||||
for my $response(@$responses){
|
||||
$session->db->write('insert into Survey_response values(?,?,?,?,?,?,?,?,?,?)',
|
||||
[
|
||||
$$survey{assetId},$$response{Survey_responseId},$$response{userId},$$response{userName},$$response{ipAddress},$$response{startDate},$$response{endDate},
|
||||
$$response{isComplete},undef,'{}'
|
||||
]
|
||||
);
|
||||
#$sql = "select * from Survey_questionResponse_old where Survey_responseId = '$$response{Survey_responseId}'";
|
||||
#my $qresponses = $session->db->buildArrayRefOfHashRefs($sql);
|
||||
#for my $qresponse(@$qresponses){
|
||||
#}
|
||||
}
|
||||
}
|
||||
|
||||
print "Finished\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
sub _moveOldSurveyTables{
|
||||
my $session = shift;
|
||||
eval{
|
||||
$session->db->write("alter table Survey rename to Survey_old");
|
||||
$session->db->write("alter table Survey_answer rename to Survey_answer_old");
|
||||
$session->db->write("alter table Survey_question rename to Survey_question_old");
|
||||
$session->db->write("alter table Survey_section rename to Survey_section_old");
|
||||
$session->db->write("alter table Survey_response rename to Survey_response_old");
|
||||
$session->db->write("alter table Survey_questionResponse rename to Survey_questionResponse_old");
|
||||
};
|
||||
}
|
||||
|
||||
sub _addSurveyTables{
|
||||
my $session = shift;
|
||||
$session->db->write("DROP TABLE IF EXISTS `Survey`");
|
||||
$session->db->write("
|
||||
CREATE TABLE `Survey` (
|
||||
`groupToTakeSurvey` char(22) character set utf8 collate utf8_bin NOT NULL default '2',
|
||||
`groupToViewReports` char(22) character set utf8 collate utf8_bin NOT NULL default '3',
|
||||
`responseTemplateId` char(22) character set utf8 collate utf8_bin NOT NULL,
|
||||
`overviewTemplateId` char(22) character set utf8 collate utf8_bin NOT NULL,
|
||||
`maxResponsesPerUser` int(11) NOT NULL default '1',
|
||||
`gradebookTemplateId` char(22) character set utf8 collate utf8_bin NOT NULL,
|
||||
`assetId` char(22) character set utf8 collate utf8_bin NOT NULL,
|
||||
`templateId` char(22) character set utf8 collate utf8_bin NOT NULL,
|
||||
`revisionDate` bigint(20) NOT NULL default '0',
|
||||
`surveyEditTemplateId` char(22) default NULL,
|
||||
`answerEditTemplateId` char(22) default NULL,
|
||||
`questionEditTemplateId` char(22) default NULL,
|
||||
`sectionEditTemplateId` char(22) default NULL,
|
||||
`surveyTakeTemplateId` char(22) default NULL,
|
||||
`surveyQuestionsId` char(22) default NULL,
|
||||
`exitURL` varchar(512) default NULL,
|
||||
`surveyJSON` longblob,
|
||||
PRIMARY KEY (`assetId`,`revisionDate`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
");
|
||||
$session->db->write("DROP TABLE IF EXISTS `Survey_response`");
|
||||
$session->db->write("
|
||||
CREATE TABLE `Survey_response` (
|
||||
`assetId` char(22) character set utf8 collate utf8_bin NOT NULL,
|
||||
`Survey_responseId` char(22) character set utf8 collate utf8_bin NOT NULL,
|
||||
`userId` char(22) default NULL,
|
||||
`username` char(255) default NULL,
|
||||
`ipAddress` char(15) default NULL,
|
||||
`startDate` bigint(20) NOT NULL default '0',
|
||||
`endDate` bigint(20) NOT NULL default '0',
|
||||
`isComplete` int(11) NOT NULL default '0',
|
||||
`anonId` varchar(255) default NULL,
|
||||
`responseJSON` longblob,
|
||||
PRIMARY KEY (`Survey_responseId`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
");
|
||||
$session->db->write("DROP TABLE IF EXISTS `Survey_tempReport`");
|
||||
$session->db->write("
|
||||
CREATE TABLE `Survey_tempReport` (
|
||||
`assetId` char(22) NOT NULL,
|
||||
`Survey_responseId` char(22) NOT NULL,
|
||||
`order` smallint(5) unsigned NOT NULL,
|
||||
`sectionNumber` smallint(5) unsigned NOT NULL,
|
||||
`sectionName` varchar(512) default NULL,
|
||||
`questionNumber` smallint(5) unsigned NOT NULL,
|
||||
`questionName` varchar(512) default NULL,
|
||||
`questionComment` mediumtext,
|
||||
`answerNumber` smallint(5) unsigned default NULL,
|
||||
`answerValue` mediumtext,
|
||||
`answerComment` mediumtext,
|
||||
`entryDate` bigint(20) unsigned NOT NULL COMMENT 'UTC Unix Time',
|
||||
`isCorrect` tinyint(3) unsigned default NULL,
|
||||
`value` int(11) default NULL,
|
||||
`fileStoreageId` char(22) default NULL COMMENT 'Not implemented yet',
|
||||
PRIMARY KEY (`assetId`,`Survey_responseId`,`order`),
|
||||
KEY `assetId` (`assetId`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
");
|
||||
}
|
||||
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub createLastUpdatedField {
|
||||
my $session = shift;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue