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:
Colin Kuskie 2006-11-07 05:09:41 +00:00
parent 0d1c1ea96a
commit 776a6bfdcc
5 changed files with 33 additions and 7 deletions

View file

@ -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;
}
}

View file

@ -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);

View file

@ -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") {