version 1.6, 2009/05/16 00:28:38
|
version 1.10, 2009/05/23 04:07:09
|
Line 89 sub handler() {
|
Line 89 sub handler() {
|
); |
); |
|
|
#&dumpenv($r); #debug -> prints the environment |
#&dumpenv($r); #debug -> prints the environment |
$r->print(" </body> \n</html>\n"); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
|
Line 270 sub grade_pdf {
|
Line 270 sub grade_pdf {
|
my %problem = %{$problems{$key}}; |
my %problem = %{$problems{$key}}; |
my ($problemname, $grade) = &grade_problem(%problem); |
my ($problemname, $grade) = &grade_problem(%problem); |
|
|
$problemname =~ s/(.*)\s*-\sPart\s0/$1/; #cut part when there is only one part in problem |
|
|
|
$result .= &Apache::loncommon::start_data_table_row(); |
$result .= &Apache::loncommon::start_data_table_row(); |
$result .= "<td>$problemname</td><td class='"; |
$result .= "<td>$problemname</td><td class='"; |
if($grade eq "EXACT_ANS") { |
if($grade eq "EXACT_ANS" || $grade eq "APPROX_ANS") { |
$result .= "LC_answer_correct"; |
$result .= "LC_answer_correct"; |
} else { |
} else { |
$result .= "LC_answer_charged_try"; |
$result .= "LC_answer_charged_try"; |
} |
} |
|
$grade = &parse_grade_answer($grade); |
$result .= "'>$grade</span></td>"; |
$result .= "'>$grade</span></td>"; |
$result .= &Apache::loncommon::end_data_table_row(); |
$result .= &Apache::loncommon::end_data_table_row(); |
} |
} |
Line 290 sub grade_pdf {
|
Line 289 sub grade_pdf {
|
|
|
sub grade_problem { |
sub grade_problem { |
my %problem = @_; |
my %problem = @_; |
|
my ($title, $part) = (); |
|
|
my ($content) = &Apache::loncommon::ssi_with_retries('/res/'. |
&Apache::loncommon::ssi_with_retries('/res/'.$problem{'resource'}, 5, %problem); |
$problem{'resource'}, 5, %problem); |
|
|
|
#TODO ? filter html response can't be the answer |
|
# ! find an other way to get a problemname and Part |
|
$content =~ s/.*class="LC_current_location".*>(.*)<\/td>.*/$1/g; |
|
$content = $1; |
|
|
|
my $part = $problem{submitted}; |
$title = &Apache::lonnet::gettitle($problem{'symb'}); |
|
$part = $problem{submitted}; |
$part =~ s/part_(.*)/$1/; |
$part =~ s/part_(.*)/$1/; |
$content .= " - Part $part"; |
unless($part eq '0') { |
|
#add information about part number |
|
$title .= " - Part $part"; |
|
} |
|
|
my %problemhash = &Apache::lonnet::restore($problem{'symb'}); |
my %problemhash = &Apache::lonnet::restore($problem{'symb'}); |
my $grade = $problemhash{"resource.$part.award"}; |
my $grade = $problemhash{"resource.$part.award"}; |
|
|
return ($content, $grade); |
return ($title, $grade); |
|
} |
|
|
|
sub parse_grade_answer { |
|
my ($shortcut) = @_; |
|
my %answerhash = ('EXACT_ANS' => &mt('You are correct.'), |
|
'APPROX_ANS' => &mt('You are correct.'), |
|
'INCORRECT' => &mt('You are incorrect'), |
|
); |
|
|
|
foreach my $key (keys %answerhash) { |
|
if($shortcut eq $key) { |
|
return $answerhash{$shortcut}; |
|
} |
|
} |
|
return &mt('See course contents for further information.'); |
|
|
} |
} |
|
|
|
|
sub dumpenv { |
sub dumpenv { |
my $r = shift; |
my $r = shift; |
|
|