[LON-CAPA-cvs] cvs: loncom /interface lonpdfupload.pm
onken
onken@source.lon-capa.org
Fri, 15 May 2009 17:53:06 -0000
onken Fri May 15 17:53:06 2009 EDT
Modified files:
/loncom/interface lonpdfupload.pm
Log:
- correct localization
- correct web-design with using user addicted CSS entries for pick_boxes
- correct web-design for problem results with data_table
- don't show partnumber for problems with only one part in result table
in the end:
- stundents are able to upload PDF-Forms
Index: loncom/interface/lonpdfupload.pm
diff -u loncom/interface/lonpdfupload.pm:1.3 loncom/interface/lonpdfupload.pm:1.4
--- loncom/interface/lonpdfupload.pm:1.3 Sat Apr 4 21:47:41 2009
+++ loncom/interface/lonpdfupload.pm Fri May 15 17:53:06 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Publication Handler
#
-# $Id: lonpdfupload.pm,v 1.3 2009/04/04 21:47:41 bisitz Exp $
+# $Id: lonpdfupload.pm,v 1.4 2009/05/15 17:53:06 onken Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -139,40 +139,36 @@
sub get_uploadform() {
+
+ #TODO use LON-CAPA routines like pick_box or like that
+ my %lt = &Apache::lonlocal::texthash(
+ 'title'=>'Submit a PDF-Form with problems',
+ 'chFile' => 'Choose file:',
+ 'submit'=>'Submit'
+ );
+
my $result = <<END
- <p height='25'>
- </p>
<form method="post" enctype="multipart/form-data" onsubmit="return checkFilename(this);">
<input type="hidden" name="type" value="upload" />
- <div align="center">
- <table bgcolor="#000000" width="450" cellspacing="0" cellpadding="0" border="0">
- <tr>
- <td>
- <table cellspacing="1" cellpadding="2" border="0" width="100%">
- <tr>
- <td colspan="2" bgcolor="#99EEEE">
- <b>PDF-Formular einsenden</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#F8F8F8">
- Datei auswählen
- </td>
- <td bgcolor="#F8F8F8">
- <input type="file" name="file" id="filename" />
- </td>
- </tr>
- <tr>
- <td bgcolor="#F8F8F8" colspan="2" align="right" style="margin-right: 30px;">
- <input type="submit" name="Uploaded" value="Absenden" />
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </div>
- </form>
+ <br />
+ <b>$lt{'title'}</b>
+ <table class="LC_pick_box">
+ <tbody>
+ <tr class="LC_pick_box_row">
+ <td class="LC_pick_box_title">
+ $lt{'chFile'}
+ </td>
+ <td class="LC_pick_box_value LC_odd_row">
+ <input type="file" name="file" id="filename" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <br />
+ <input type="submit" name="Uploaded" value="$lt{'submit'}" />
+ </form>
+ <br />
+ <hr />
END
;
return $result;
@@ -222,13 +218,18 @@
my $debug = ();
$debug .= "Found: ". scalar @pdfdata." Entries \n";
- $result .= "<table width='80%'>\n";
+ $result .= '<br />';
+ $result .= &Apache::loncommon::start_data_table();
+ $result .= &Apache::loncommon::start_data_table_header_row();
+ $result .= &mt('<b>Results of PDF-Form problems</b>');
+ $result .= &Apache::loncommon::end_data_table_header_row();
+
foreach my $entry (sort(@pdfdata)) {
if ($entry =~ /^meta.*/) {
$debug .= 'found: metadata -> '.$entry . "<br />";
my ($label, $value) = ($entry =~ /^([^?]*)\?(.*)/);
my ($domain, $user) = split('&', $value);
- $user =~ s/(.*)\n/$1/; #TODO find an other way
+ $user =~ s/(.*)\n/$1/; #TODO is that equals to chomp?
if($user ne $env{'user.name'} or $domain ne $env{'user.domain'}) {
return "<pre>".&mt('Wrong username in PDF-File').": $user $domain -> $env{'user.domain'} $env{'user.name'} </pre>";
@@ -252,7 +253,7 @@
$problems{$symb.$part}{$HWVAL} = $value;
} else {
$problems{$symb.$part} = { 'resource' => $resource,
- 'symb' => $symb,
+ 'symb' => &Apache::lonenc::encrypted($symb),
'submitted' => $part,
$submit => 'Answer',
$HWVAL => $value};
@@ -262,21 +263,27 @@
next;
}
}
- $result .= $debug;
+ #$result .= $debug;
foreach my $key (sort (keys %problems)) {
my %problem = %{$problems{$key}};
my ($problemname, $grade) = &grade_problem(%problem);
- $result .= "<tr style='background-color: #EEF5F5;'><td>$problemname</td><td style='background-color: ";
+
+ $problemname =~ s/(.*)\s*-\sPart\s0/$1/; #cut part when there is only one part in problem
+
+ $result .= &Apache::loncommon::start_data_table_row();
+ $result .= "<td>$problemname</td><td class='";
if($grade eq "EXACT_ANS") {
- $result .= "#DDFFDD";
+ $result .= "LC_answer_correct";
} else {
- $result .= "#DD5555";
+ $result .= "LC_answer_charged_try";
}
- $result .= "'>$grade</td></tr>";
-
+ $result .= "'>$grade</span></td>";
+ $result .= &Apache::loncommon::end_data_table_row();
}
- $result .= "\n</table>";
+ #$result .= "\n</table>";
+ $result .= &Apache::loncommon::end_data_table();
+
return $result;
}
@@ -286,7 +293,9 @@
my ($content) = &Apache::loncommon::ssi_with_retries('/res/'.
$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;