[LON-CAPA-cvs] cvs: loncom /interface portfolio.pm

banghart lon-capa-cvs@mail.lon-capa.org
Sat, 12 Aug 2006 22:41:54 -0000


banghart		Sat Aug 12 18:41:54 2006 EDT

  Modified files:              
    /loncom/interface	portfolio.pm 
  Log:
  	Now shows graded and handback and gives info about it.
  	Undo breaking apart of strings submitted to &mt
  
  
Index: loncom/interface/portfolio.pm
diff -u loncom/interface/portfolio.pm:1.154 loncom/interface/portfolio.pm:1.155
--- loncom/interface/portfolio.pm:1.154	Sat Aug 12 02:18:44 2006
+++ loncom/interface/portfolio.pm	Sat Aug 12 18:41:53 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # portfolio browser
 #
-# $Id: portfolio.pm,v 1.154 2006/08/12 06:18:44 banghart Exp $
+# $Id: portfolio.pm,v 1.155 2006/08/12 22:41:53 banghart Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -170,36 +170,33 @@
     # my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$line,16); 
     $r->print('<tr class="'.$css_class.'">');
     $r->print($line); # contains first two cells of table
+    $filename = $filename;
+    $filename = &prepend_group($filename);
+    my $lock_info;
     if ($$version_flag{$filename}) { # versioned can't be versioned, so TRUE when root file
         $r->print('<td><img alt="" src="'.&Apache::loncommon::icon($filename).'" /></td>');
         $r->print('<td>'.$$version_flag{$filename}.'</td>');
     } else { # this is a graded or handed back file
         my ($user,$domain) = &get_name_dom();
         my $permissions_hash = &Apache::lonnet::get_portfile_permissions($domain,$user);
-        my $lock_info;
-        foreach my $key (keys(%$permissions_hash)) {
-            $key =~ s|^/||;
-            if ($key =~ /$filename/) {
-                &Apache::lonnet::logthis("filename match");
-                my $value = $$permissions_hash{$key};
-                if (ref($value) eq 'ARRAY') {
-                    my $info = pop(@$value);
-                    my $info2 = pop(@$info);
-                    &Apache::lonnet::logthis("the info2 is $info2");
-                    $lock_info = $info2;
-                    #foreach my $key2(keys(%hash)){
-                     #   &Apache::lonnet::logthis("a key2 is $key2");
-                    #}
-                    foreach my $value_element (@$value) {
-                        #&Apache::lonnet::logthis("and the array element is $value_element");
-                        foreach my $sub_value (@$value_element) {
-                            #&Apache::lonnet::logthis("subvalue is $sub_value");
-                        }
+        if (defined($filename) && defined($$permissions_hash{'/'.$filename})) {
+            foreach my $array_item (@{$$permissions_hash{'/'.$filename}}) {
+                if (ref($array_item) eq 'ARRAY') {
+                    if ($$array_item[(@$array_item - 1)] eq 'handback') {
+                        $lock_info = 'Handback';
+                    } elsif ($$array_item[(@$array_item - 1)] eq 'graded') {
+                        $lock_info = 'Graded';
                     }
-                }
+                 }
             }
         }
-        $r->print('<td colspan="2">'.$lock_info.'</td>');
+            if ($lock_info) {
+                my %anchor_fields = (
+                    'lockinfo' => '/'.$filename
+                );
+                $lock_info = &make_anchor(undef,\%anchor_fields,$lock_info);
+            }
+            $r->print('<td colspan="2">'.$lock_info.'</td>');
     }
     # $r->print('<td>'.$$version_flag{$filename}.'</td><td>');
     $r->print('<td>'.&make_anchor($href_location.$filename,undef,$filename).'</td>'); 
@@ -645,15 +642,11 @@
     my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group,$file_name);
     my $aclcount = keys(%access_controls);
     my $header = '<h3>'.&mt('Allowing others to retrieve file: [_1]',$port_path.$env{'form.currentpath'}.$env{'form.access'}).'</h3>';
-    my $info .= &mt('Access to this file by others can be set to be one or ');
-    $info .= &mt('more of the following types: public, passphrase-protected or conditional.');
+    my $info .= &mt('Access to this file by others can be set to be one or more of the following types: public, passphrase-protected or conditional.');
     $info .= '<br /><ul><li>'.&mt('Public files are available to anyone without the need for login.');
-    $info .= '</li><li>'.&mt('Passphrase-protected files do not require log-in, but will require ');
-    $info .= &mt('the viewer to enter the passphrase you set.');
-    $info .= '</li><li>'.&mt('Conditional files are accessible to logged-in users with accounts ');
-    $info .= &mt('in the LON-CAPA network, who satisfy the conditions you set.').'<br />';
-    $info .= &mt('The conditions can include affiliation with a particular course or group, ');
-    $info .= &mt('or a user account in a specific domain.').'<br />';
+    $info .= '</li><li>'.&mt('Passphrase-protected files do not require log-in, but will require the viewer to enter the passphrase you set.');
+    $info .= '</li><li>'.&mt('Conditional files are accessible to logged-in users with accounts in the LON-CAPA network, who satisfy the conditions you set.').'<br />';
+    $info .= &mt('The conditions can include affiliation with a particular course or group, or a user account in a specific domain.').'<br />';
     $info .= &mt('Alternatively access can be granted to people with specific LON-CAPA usernames and domains.').'</li></ul>';
     if ($group eq '') {
         $info .= (&mt("Direct others to the 'Display file listing' link (shown when there are viewable files) on your personal information page:<br /><a href='/adm/$udom/$uname/aboutme'>http://$ENV{'SERVER_NAME'}/adm/$udom/$uname/aboutme</a>"));
@@ -1624,13 +1617,24 @@
                 } else {
                     $filetext = '<strong>'.$file_name.'</strong>';
                 } 
-                $r->print(&mt('[_1] was submitted in response to problem: ',
+                if ($$array_item[(@$array_item - 1)] eq 'graded') {
+                    $r->print(&mt('[_1] was submitted in response to problem: ',
                               $filetext).
                           '<strong>'.&Apache::lonnet::gettitle($$array_item[0]).
                           '</strong><br />');
-                my %course_description = &Apache::lonnet::coursedescription($$array_item[1]);
-                $r->print(&mt('In the course: <strong>[_1]</strong><br />',
+                    my %course_description = &Apache::lonnet::coursedescription($$array_item[1]);
+                    $r->print(&mt('In the course: <strong>[_1]</strong><br />',
                               $course_description{'description'}));
+                } elsif ($$array_item[(@$array_item - 1)] eq 'handback') {
+                    $r->print(&mt('[_1] was handed back in response to problem: ',
+                              $filetext).
+                          '<strong>'.&Apache::lonnet::gettitle($$array_item[0]).
+                          '</strong><br />');
+                    my %course_description = &Apache::lonnet::coursedescription($$array_item[1]);
+                    $r->print(&mt('In the course: <strong>[_1]</strong><br />',
+                              $course_description{'description'}));
+                    
+                }
                 # $r->print('the third is '.$$array_item[2].'<br>');
                 # $r->print("item is $$array_item[0]<br> and $$array_item[0]");
             }