[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&auml;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;