| … | |
… | |
| 223 | ? $self->previewAnswer($answerResult, $imgGen) |
223 | ? $self->previewAnswer($answerResult, $imgGen) |
| 224 | : ""); |
224 | : ""); |
| 225 | my $correctAnswer = $answerResult->{correct_ans}; |
225 | my $correctAnswer = $answerResult->{correct_ans}; |
| 226 | my $answerScore = $answerResult->{score}; |
226 | my $answerScore = $answerResult->{score}; |
| 227 | my $answerMessage = $showMessages ? $answerResult->{ans_message} : ""; |
227 | my $answerMessage = $showMessages ? $answerResult->{ans_message} : ""; |
|
|
228 | $answerMessage =~ s/\n/<BR>/g; |
| 228 | $numCorrect += $answerScore >= 1; |
229 | $numCorrect += $answerScore >= 1; |
| 229 | my $resultString = $answerScore >= 1 ? "correct" : |
230 | my $resultString = $answerScore >= 1 ? "correct" : |
| 230 | $answerScore > 0 ? int($answerScore*100)."% correct" : |
231 | $answerScore > 0 ? int($answerScore*100)."% correct" : |
| 231 | "incorrect"; |
232 | "incorrect"; |
| 232 | $fully = 'completely ' if $answerScore >0 and $answerScore < 1; |
233 | $fully = 'completely ' if $answerScore >0 and $answerScore < 1; |
| … | |
… | |
| 239 | #$row .= CGI::td($name); |
240 | #$row .= CGI::td($name); |
| 240 | $row .= $showAttemptAnswers ? CGI::td($self->nbsp($studentAnswer)) : ""; |
241 | $row .= $showAttemptAnswers ? CGI::td($self->nbsp($studentAnswer)) : ""; |
| 241 | $row .= $showAttemptPreview ? CGI::td($self->nbsp($preview)) : ""; |
242 | $row .= $showAttemptPreview ? CGI::td($self->nbsp($preview)) : ""; |
| 242 | $row .= $showCorrectAnswers ? CGI::td($self->nbsp($correctAnswer)) : ""; |
243 | $row .= $showCorrectAnswers ? CGI::td($self->nbsp($correctAnswer)) : ""; |
| 243 | $row .= $showAttemptResults ? CGI::td($self->nbsp($resultString)) : ""; |
244 | $row .= $showAttemptResults ? CGI::td($self->nbsp($resultString)) : ""; |
| 244 | $row .= $showMessages ? CGI::td($self->nbsp($answerMessage)) : ""; |
245 | $row .= $showMessages ? CGI::td({-class=>"Message"},$self->nbsp($answerMessage)) : ""; |
| 245 | push @tableRows, $row; |
246 | push @tableRows, $row; |
| 246 | } |
247 | } |
| 247 | |
248 | |
| 248 | # render equation images |
249 | # render equation images |
| 249 | $imgGen->render(refresh => 1); |
250 | $imgGen->render(refresh => 1); |
| … | |
… | |
| 741 | |
742 | |
| 742 | # using the url arguments won't break if the set/problem are invalid |
743 | # using the url arguments won't break if the set/problem are invalid |
| 743 | my $setID = $self->r->urlpath->arg("setID"); |
744 | my $setID = $self->r->urlpath->arg("setID"); |
| 744 | my $problemID = $self->r->urlpath->arg("problemID"); |
745 | my $problemID = $self->r->urlpath->arg("problemID"); |
| 745 | |
746 | |
| 746 | return "$setID : $problemID"; |
747 | return "$setID: Problem $problemID"; |
| 747 | } |
748 | } |
| 748 | |
749 | |
| 749 | sub body { |
750 | sub body { |
| 750 | my $self = shift; |
751 | my $self = shift; |
| 751 | my $r = $self->r; |
752 | my $r = $self->r; |
| … | |
… | |
| 938 | print $self->attemptResults($pg, 1, |
939 | print $self->attemptResults($pg, 1, |
| 939 | $will{showCorrectAnswers}, |
940 | $will{showCorrectAnswers}, |
| 940 | $pg->{flags}->{showPartialCorrectAnswers}, 1, 1); |
941 | $pg->{flags}->{showPartialCorrectAnswers}, 1, 1); |
| 941 | } elsif ($checkAnswers) { |
942 | } elsif ($checkAnswers) { |
| 942 | # print this if user previewed answers |
943 | # print this if user previewed answers |
| 943 | print CGI::div({class=>'ResultsWithError'},"ANSWERS ONLY CHECKED -- ",CGI::br(),"ANSWERS NOT RECORDED", CGI::br() ); |
944 | print CGI::div({class=>'ResultsWithError'},"ANSWERS ONLY CHECKED -- ANSWERS NOT RECORDED"), CGI::br(); |
| 944 | print $self->attemptResults($pg, 1, $will{showCorrectAnswers}, 1, 1, 1); |
945 | print $self->attemptResults($pg, 1, $will{showCorrectAnswers}, 1, 1, 1); |
| 945 | # show attempt answers |
946 | # show attempt answers |
| 946 | # show correct answers if asked |
947 | # show correct answers if asked |
| 947 | # show attempt results (correctness) |
948 | # show attempt results (correctness) |
| 948 | # show attempt previews |
949 | # show attempt previews |
| 949 | } elsif ($previewAnswers) { |
950 | } elsif ($previewAnswers) { |
| 950 | # print this if user previewed answers |
951 | # print this if user previewed answers |
| 951 | print CGI::div({class=>'ResultsWithError'},"PREVIEW ONLY -- NOT RECORDED"),CGI::br(),$self->attemptResults($pg, 1, 0, 0, 0, 1); |
952 | print CGI::div({class=>'ResultsWithError'},"PREVIEW ONLY -- ANSWERS NOT RECORDED"),CGI::br(),$self->attemptResults($pg, 1, 0, 0, 0, 1); |
| 952 | # show attempt answers |
953 | # show attempt answers |
| 953 | # don't show correct answers |
954 | # don't show correct answers |
| 954 | # don't show attempt results (correctness) |
955 | # don't show attempt results (correctness) |
| 955 | # show attempt previews |
956 | # show attempt previews |
| 956 | } |
957 | } |