| … | |
… | |
| 18 | use File::Path qw(rmtree); |
18 | use File::Path qw(rmtree); |
| 19 | use WeBWorK::Form; |
19 | use WeBWorK::Form; |
| 20 | use WeBWorK::PG; |
20 | use WeBWorK::PG; |
| 21 | use WeBWorK::PG::ImageGenerator; |
21 | use WeBWorK::PG::ImageGenerator; |
| 22 | use WeBWorK::PG::IO; |
22 | use WeBWorK::PG::IO; |
| 23 | use WeBWorK::Utils qw(writeLog encodeAnswers decodeAnswers ref2string makeTempDirectory); |
23 | use WeBWorK::Utils qw(writeLog writeCourseLog encodeAnswers decodeAnswers ref2string makeTempDirectory); |
| 24 | use WeBWorK::DB::Utils qw(global2user user2global findDefaults); |
24 | use WeBWorK::DB::Utils qw(global2user user2global findDefaults); |
| 25 | use WeBWorK::Timing; |
25 | use WeBWorK::Timing; |
| 26 | |
26 | |
| 27 | ############################################################ |
27 | ############################################################ |
| 28 | # |
28 | # |
| … | |
… | |
| 465 | $scoreRecordedMessage = "Your score was not recorded because this problem has not been built for you."; |
465 | $scoreRecordedMessage = "Your score was not recorded because this problem has not been built for you."; |
| 466 | } |
466 | } |
| 467 | } |
467 | } |
| 468 | |
468 | |
| 469 | # logging student answers |
469 | # logging student answers |
| 470 | my $pastAnswerLog = undef; |
470 | |
| 471 | if (defined( $self->{ce}->{webworkFiles}->{logs}->{'pastAnswerList'} )) { |
471 | my $answer_log = $self->{ce}->{courseFiles}->{logs}->{'answer_log'}; |
| 472 | $pastAnswerLog = $self->{ce}->{webworkFiles}->{logs}->{'pastAnswerList'}; |
472 | if ( defined($answer_log )) { |
| 473 | if ($submitAnswers and defined $pastAnswerLog) { |
473 | if ($submitAnswers ) { |
| 474 | my $answerString = ""; |
474 | my $answerString = ""; |
| 475 | my %answerHash = %{ $pg->{answers} }; |
475 | my %answerHash = %{ $pg->{answers} }; |
| 476 | $answerString = $answerString . $answerHash{$_}->{original_student_ans}."\t" |
476 | $answerString = $answerString . $answerHash{$_}->{original_student_ans}."\t" |
| 477 | foreach (sort keys %answerHash); |
477 | foreach (sort keys %answerHash); |
| 478 | $answerString = '' unless defined($answerString); # insure string is defined. |
478 | $answerString = '' unless defined($answerString); # insure string is defined. |
| 479 | writeLog($self->{ce}, "pastAnswerList", |
479 | writeCourseLog($self->{ce}, "answer_log", |
|
|
480 | join("", |
| 480 | '|'.$problem->user_id. |
481 | '|', $problem->user_id, |
| 481 | '|'.$problem->set_id. |
482 | '|', $problem->set_id, |
| 482 | '|'.$problem->problem_id.'|'."\t". |
483 | '|', $problem->problem_id, |
|
|
484 | '|',"\t", |
| 483 | time()."\t". |
485 | time(),"\t", |
| 484 | $answerString, |
486 | $answerString, |
|
|
487 | ), |
| 485 | ); |
488 | ); |
|
|
489 | |
| 486 | } |
490 | } |
| 487 | } |
491 | } |
| 488 | |
492 | |
| 489 | $WeBWorK::timer0->continue("end answer processing") if $timer0_ON; |
493 | $WeBWorK::timer0->continue("end answer processing") if $timer0_ON; |
| 490 | |
494 | |