Remove debug output from DataForm
Update Wobject.pm to use placeholders. This will speed up reordering collateral a lot. Fixes for sequenceNumbers for answers in surveys. Upgrade script fixes sequenceNumbers for all existing surveys.
This commit is contained in:
parent
0d1c1ea96a
commit
776a6bfdcc
5 changed files with 33 additions and 7 deletions
|
|
@ -24,6 +24,7 @@
|
|||
purge, and changeUrl
|
||||
- fix: editing posts loses changes in preview
|
||||
- change: Asset::getContainer no longer changes the session asset
|
||||
- fix: Survey numeric multiple choice options
|
||||
|
||||
7.1.4
|
||||
- Template variables in the main Survey Template were out of date in the
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ addRssUrlMacroProcessing($session);
|
|||
addLastExportedAs($session);
|
||||
addDeletionWorkflows($session);
|
||||
addRSSFromParent($session);
|
||||
reorderSurveyCollateral($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
|
@ -180,6 +181,27 @@ EOT
|
|||
$oldTag->setWorking if $oldTag;
|
||||
}
|
||||
|
||||
##-------------------------------------------------
|
||||
sub reorderSurveyCollateral {
|
||||
my $session = shift;
|
||||
print "\tFixing ordering problems with Survey answers.\n" unless ($quiet);
|
||||
# and here's our code
|
||||
my $sth1 = $session->db->prepare("select distinct(assetId) from Survey");
|
||||
my $sth2 = $session->db->prepare("select Survey_questionId from Survey_question where Survey_Id=?");
|
||||
$sth1->execute();
|
||||
while (my ($assetId) = $sth1->array) { ##Iterate over all surveys
|
||||
my $survey = WebGUI::Asset->new($session, $assetId, 'WebGUI::Asset::Wobject::Survey');
|
||||
my $Survey_Id = $survey->get('Survey_id');
|
||||
$sth2->execute([$Survey_Id]);
|
||||
while (my ($questionId) = $sth2->array) { ##iterate over all questions in the survey
|
||||
$session->errorHandler->warn($questionId);
|
||||
$survey->reorderCollateral("Survey_answer", "Survey_answerId","Survey_questionId", $questionId);
|
||||
}
|
||||
$sth2->finish;
|
||||
}
|
||||
$sth1->finish;
|
||||
}
|
||||
|
||||
# ---- DO NOT EDIT BELOW THIS LINE ----
|
||||
|
||||
#-------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -373,11 +373,14 @@ sub reorderCollateral {
|
|||
my $setName = shift || "assetId";
|
||||
my $setValue = shift || $self->get($setName);
|
||||
my $i = 1;
|
||||
my $sth = $self->session->db->read("select $keyName from $table where $setName=".$self->session->db->quote($setValue)." order by sequenceNumber");
|
||||
my $sth = $self->session->db->read("select $keyName from $table where $setName=? order by sequenceNumber", [$setValue]);
|
||||
my $sth2 = $self->session->db->prepare("update $table set sequenceNumber=? where $setName=? and $keyName=?");
|
||||
while (my ($id) = $sth->array) {
|
||||
$self->session->db->write("update $table set sequenceNumber=$i where $setName=".$self->session->db->quote($setValue)." and $keyName=".$self->session->db->quote($id));
|
||||
$sth2->execute([$i, $setValue, $id]);
|
||||
$i++;
|
||||
}
|
||||
$sth2->finish;
|
||||
$sth->finish;
|
||||
$sth->finish;
|
||||
}
|
||||
|
||||
|
|
@ -437,7 +440,7 @@ sub setCollateral {
|
|||
my $dbvalues = "";
|
||||
unless ($useSequence eq "0") {
|
||||
unless (exists $properties->{sequenceNumber}) {
|
||||
my ($seq) = $self->session->db->quickArray("select max(sequenceNumber) from $table where $setName=".$self->session->db->quote($setValue));
|
||||
my ($seq) = $self->session->db->quickArray("select max(sequenceNumber) from $table where $setName=?",[$setValue]);
|
||||
$properties->{sequenceNumber} = $seq+1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -770,7 +770,6 @@ sub www_deleteTabConfirm {
|
|||
sub www_editField {
|
||||
my $self = shift;
|
||||
my $fid = shift || $self->session->form->process("fid") || 'new';
|
||||
$self->session->errorHandler->warn("fid: $fid");
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
my $i18n = WebGUI::International->new($self->session,"Asset_DataForm");
|
||||
my (%field, $f, %fieldStatus,$tab);
|
||||
|
|
|
|||
|
|
@ -432,7 +432,7 @@ sub getQuestionVars {
|
|||
name=>'textResponse_'.$questionId
|
||||
});
|
||||
} else {
|
||||
my $answer = $self->session->db->buildHashRef("select Survey_answerId,answer from Survey_answer where Survey_questionId=".$self->session->db->quote($question->{Survey_questionId})." order by sequenceNumber");
|
||||
my $answer = $self->session->db->buildHashRef("select Survey_answerId,answer from Survey_answer where Survey_questionId=? order by sequenceNumber", [$question->{Survey_questionId}]);
|
||||
if ($question->{randomizeAnswers}) {
|
||||
$answer = randomizeHash($answer);
|
||||
}
|
||||
|
|
@ -885,14 +885,15 @@ sub www_editAnswer {
|
|||
sub www_editAnswerSave {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless ($self->canEdit);
|
||||
my $qid = $self->session->form->process("qid");
|
||||
$self->setCollateral("Survey_answer", "Survey_answerId", {
|
||||
Survey_answerId => $self->session->form->process("aid"),
|
||||
Survey_questionId => $self->session->form->process("qid"),
|
||||
Survey_questionId => $qid,
|
||||
answer => $self->session->form->process("answer"),
|
||||
isCorrect => $self->session->form->process("isCorrect"),
|
||||
Survey_id=>$self->get("Survey_id"),
|
||||
gotoQuestion => $self->session->form->process("gotoQuestion")
|
||||
},1,0,"Survey_Id");
|
||||
},1,0,"Survey_questionId", $qid);
|
||||
if ($self->session->form->process("proceed") eq "addQuestion") {
|
||||
return $self->www_editQuestion('new');
|
||||
} elsif ($self->session->form->process("proceed") eq "addAnswer") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue