| … | |
… | |
| 15 | use warnings; |
15 | use warnings; |
| 16 | use base qw(WeBWorK::ContentGenerator); |
16 | use base qw(WeBWorK::ContentGenerator); |
| 17 | use CGI qw(); |
17 | use CGI qw(); |
| 18 | use WeBWorK::Form; |
18 | use WeBWorK::Form; |
| 19 | use WeBWorK::PG; |
19 | use WeBWorK::PG; |
| 20 | use WeBWorK::Utils qw(ref2string encodeAnswers decodeAnswers); |
20 | use WeBWorK::Utils qw(writeLog encodeAnswers decodeAnswers ref2string); |
| 21 | |
21 | |
| 22 | ############################################################ |
22 | ############################################################ |
| 23 | # |
23 | # |
| 24 | # user |
24 | # user |
| 25 | # key |
25 | # key |
| … | |
… | |
| 162 | sub if_errors($$) { |
162 | sub if_errors($$) { |
| 163 | my ($self, $arg) = @_; |
163 | my ($self, $arg) = @_; |
| 164 | return $self->{pg}->{flags}->{error_flag}; |
164 | return $self->{pg}->{flags}->{error_flag}; |
| 165 | } |
165 | } |
| 166 | |
166 | |
| 167 | sub header { |
167 | sub head { |
| 168 | my $self = shift; |
168 | my $self = shift; |
| 169 | |
169 | |
| 170 | return $self->{pg}->{head_text} if $self->{pg}->{head_text}; |
170 | return $self->{pg}->{head_text} if $self->{pg}->{head_text}; |
| 171 | } |
171 | } |
| 172 | |
172 | |
| … | |
… | |
| 244 | return "$setName : Problem $problemNumber"; |
244 | return "$setName : Problem $problemNumber"; |
| 245 | } |
245 | } |
| 246 | |
246 | |
| 247 | sub body { |
247 | sub body { |
| 248 | my $self = shift; |
248 | my $self = shift; |
| 249 | |
|
|
| 250 | #$self->prepare(@_); |
|
|
| 251 | |
249 | |
| 252 | # unpack some useful variables |
250 | # unpack some useful variables |
| 253 | my $r = $self->{r}; |
251 | my $r = $self->{r}; |
| 254 | my $wwdb = $self->{wwdb}; |
252 | my $wwdb = $self->{wwdb}; |
| 255 | my $set = $self->{set}; |
253 | my $set = $self->{set}; |
| … | |
… | |
| 284 | $problem->attempted(1); |
282 | $problem->attempted(1); |
| 285 | $problem->status($pg->{state}->{recorded_score}); |
283 | $problem->status($pg->{state}->{recorded_score}); |
| 286 | $problem->num_correct($pg->{state}->{num_of_correct_ans}); |
284 | $problem->num_correct($pg->{state}->{num_of_correct_ans}); |
| 287 | $problem->num_incorrect($pg->{state}->{num_of_incorrect_ans}); |
285 | $problem->num_incorrect($pg->{state}->{num_of_incorrect_ans}); |
| 288 | $wwdb->setProblem($problem); |
286 | $wwdb->setProblem($problem); |
|
|
287 | # write to the transaction log, just to make sure |
|
|
288 | writeLog($self->{courseEnvironment}, "transaction", |
|
|
289 | $problem->id."\t". |
|
|
290 | $problem->set_id."\t". |
|
|
291 | $problem->login_id."\t". |
|
|
292 | $problem->source_file."\t". |
|
|
293 | $problem->value."\t". |
|
|
294 | $problem->max_attempts."\t". |
|
|
295 | $problem->problem_seed."\t". |
|
|
296 | $problem->status."\t". |
|
|
297 | $problem->attempted."\t". |
|
|
298 | $problem->last_answer."\t". |
|
|
299 | $problem->num_correct."\t". |
|
|
300 | $problem->num_incorrect |
|
|
301 | ); |
| 289 | } |
302 | } |
| 290 | } |
303 | } |
| 291 | |
304 | |
| 292 | ##### output ##### |
305 | ##### output ##### |
| 293 | |
306 | |