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

raeburn raeburn@source.lon-capa.org
Sat, 31 Oct 2009 05:39:25 -0000


This is a MIME encoded message

--raeburn1256967565
Content-Type: text/plain

raeburn		Sat Oct 31 05:39:25 2009 EDT

  Modified files:              
    /loncom/interface	slotrequest.pm 
  Log:
  - Accommodate Communities
   - (S)student(s) -> (M)member(s)
     (C)course -> (C)community
  
  
--raeburn1256967565
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20091031053925.txt"

Index: loncom/interface/slotrequest.pm
diff -u loncom/interface/slotrequest.pm:1.104 loncom/interface/slotrequest.pm:1.105
--- loncom/interface/slotrequest.pm:1.104	Thu Oct 15 23:53:46 2009
+++ loncom/interface/slotrequest.pm	Sat Oct 31 05:39:25 2009
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler for requesting to have slots added to a students record
 #
-# $Id: slotrequest.pm,v 1.104 2009/10/15 23:53:46 raeburn Exp $
+# $Id: slotrequest.pm,v 1.105 2009/10/31 05:39:25 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1026,6 +1026,7 @@
     my ($r,$mgr)=@_;
 
     my ($cnum,$cdom)=&get_course();
+    my $crstype=&Apache::loncommon::course_type($cdom.'_'.$cnum);
     my %slots=&Apache::lonnet::dump('slots',$cdom,$cnum);
     if ( (keys(%slots))[0] =~ /^error: 2 /) {
 	undef(%slots);
@@ -1085,6 +1086,10 @@
 	     'uniqueperiod'    => 'Period of time slot is unique',
 	     'scheduled'       => 'Scheduled Students',
 	     'proctor'         => 'List of proctors');
+    if ($crstype eq 'Community') {
+        $show_fields{'startreserve'} = &mt('Time members can start reserving');
+        $show_fields{'scheduled'} = &mt('Scheduled Members');
+    }
     my @show_order=('name','description','type','starttime','endtime',
 		    'startreserve','secret','space','ip','symb',
 		    'allowedsections','allowedusers','uniqueperiod',
@@ -1429,7 +1434,7 @@
 }
 
 sub manage_reservations {
-    my ($r,$type) = @_;
+    my ($r,$crstype) = @_;
     my $navmap = Apache::lonnavmaps::navmap->new();
     $r->print('<p>'
              .&mt('Instructors may use a reservation system to place restrictions on when and where assignments can be worked on.')
@@ -1438,10 +1443,14 @@
              .'</p>'
     );
     if (!defined($navmap)) {
-        $r->print('<div class="LC_error">'.
-                  &mt('Unable to retrieve information about course contents').
-                  '</div>');
-        &Apache::lonnet::logthis('Manage Reservations - could not create navmap object in '.lc($type).':'.$env{'request.course.id'});
+        $r->print('<div class="LC_error">');
+        if ($crstype eq 'Community') {
+            $r->print(&mt('Unable to retrieve information about community contents'));
+        } else {
+            $r->print(&mt('Unable to retrieve information about course contents'));
+        }
+        $r->print('</div>');
+        &Apache::lonnet::logthis('Manage Reservations - could not create navmap object in '.lc($crstype).':'.$env{'request.course.id'});
         return;
     }
     my (%parent,%shownparent,%container,%container_title,%contents);
@@ -1599,7 +1608,13 @@
         $r->print('</table>');
     }
     if (!$reservable) {
-        $r->print('<span class="LC_info">'.&mt('No course items currently require a reservation to gain access.').'</span>');
+        $r->print('<span class="LC_info">');
+        if ($crstype eq 'Community') {
+            $r->print(&mt('No community items currently require a reservation to gain access.'));
+        } else {
+            $r->print(&mt('No course items currently require a reservation to gain access.'));
+        }
+        $r->print('</span>');
     }
     $r->print('<p><a href="/adm/slotrequest?command=showresv">'.
               &mt('Reservation History').'</a></p>');
@@ -1632,12 +1647,21 @@
     my $formname = 'slotlog';
     my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
     my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+    my $crstype = &Apache::loncommon::course_type();
     my %log=&Apache::lonnet::dump('nohist_'.$cdom.'_'.$cnum.'_slotlog',$udom,$uname);
     if ($env{'form.origin'} eq 'aboutme') {
-        $r->print('<div class="LC_fontsize_large">'.
-                  &mt('History of student-reservable slots for: [_1]',
-                      &Apache::loncommon::plainname($env{'form.uname'},$env{'form.udom'},
-                                                    'firstname')).'</div>');
+        $r->print('<div class="LC_fontsize_large">');
+        my $name = &Apache::loncommon::plainname($env{'form.uname'},$env{'form.udom'},
+                                                    'firstname');
+        if ($crstype eq 'Community') {
+            $r->print(&mt('History of member-reservable slots for: [_1]',
+                          $name));
+        } else {
+            $r->print(&mt('History of student-reservable slots for: [_1]',
+                          $name));
+
+        }
+        $r->print('</div>');
     }
     $r->print('<form action="/adm/slotrequest" method="post" name="'.$formname.'">');
     # set defaults
@@ -1686,7 +1710,7 @@
         }
     }
     my (%titles,%maptitles);
-    my %lt = &reservationlog_contexts();
+    my %lt = &reservationlog_contexts($crstype);
     foreach my $id (sort { $log{$b}{'exe_time'}<=>$log{$a}{'exe_time'} } (keys(%log))) {
         next if (($log{$id}{'exe_time'} < $curr{'log_start_date'}) ||
                  ($log{$id}{'exe_time'} > $curr{'log_end_date'}));
@@ -1766,6 +1790,7 @@
 sub show_reservations_log {
     my ($r) = @_;
     my $badslot;
+    my $crstype = &Apache::loncommon::course_type();
     if ($env{'form.slotname'} eq '') {
         $r->print('<div class="LC_warning">'.&mt('No slot name provided').'</div>');
         $badslot = 1;
@@ -1776,7 +1801,13 @@
             $badslot = 1;
         } elsif ($slot{type} ne 'schedulable_student') {
             my $description = &get_description($env{'form.slotname'},\%slot);
-            $r->print('<div class="LC_warning">'.&mt('Reservation history unavailable for non-student-reservable slot: [_1].',$description).'</div>');
+            $r->print('<div class="LC_warning">');
+            if ($crstype eq 'Community') {
+                $r->print(&mt('Reservation history unavailable for non-member-reservable slot: [_1].',$description));
+            } else {
+                $r->print(&mt('Reservation history unavailable for non-student-reservable slot: [_1].',$description));
+            }
+            $r->print('</div>');
             $badslot = 1;
         }
     }
@@ -1847,9 +1878,13 @@
 
     my %slot=&Apache::lonnet::get_slot($env{'form.slotname'});
     my $description = $slot{'description'};
-    $r->print('<span class="LC_fontsize_large">'.
-              &mt('Reservation changes for student-reservable slot: [_1]',$description).'</span><br />');
-
+    $r->print('<span class="LC_fontsize_large">');
+    if ($crstype eq 'Community') {
+        $r->print(&mt('Reservation changes for member-reservable slot: [_1]',$description));
+    } else {
+        $r->print(&mt('Reservation changes for student-reservable slot: [_1]',$description));
+    }
+    $r->print('</span><br />');
     $r->print(&display_filter($formname,$cdom,$cnum,\%curr,$version,\@allsymbs));
     my $showntablehdr = 0;
     my $tablehdr = &Apache::loncommon::start_data_table().
@@ -1867,7 +1902,7 @@
             $minshown = 1 + ($curr{'page'} - 1) * $curr{'show'};
         }
     }
-    my %lt = &reservationlog_contexts();
+    my %lt = &reservationlog_contexts($crstype);
     my (%titles,%maptitles);
     foreach my $id (sort { $log{$b}{'exe_time'}<=>$log{$a}{'exe_time'} } (keys(%log))) {
         next if (($log{$id}{'exe_time'} < $curr{'log_start_date'}) ||
@@ -1987,6 +2022,7 @@
 }
 
 sub reservationlog_contexts {
+    my ($crstype) = @_;
     my %lt = &Apache::lonlocal::texthash (
                                              any        => 'Any',
                                              user       => 'By student',
@@ -1996,6 +2032,10 @@
                                              release    => 'Dropped reservation',
                                              usermanage => 'By student', 
                                          );
+    if ($crstype eq 'Community') {
+        $lt{'user'} = &mt('By member');
+        $lt{'usermanage'} = $lt{'user'};
+    }
     return %lt;
 }
 
@@ -2016,7 +2056,8 @@
         &Apache::lonhtmlcommon::date_setter($formname,'log_end_date',
                                             $curr->{'log_end_date'},undef,
                                             undef,undef,undef,undef,undef,undef,$nolink);
-    my %lt = &reservationlog_contexts();
+    my $crstype = &Apache::loncommon::course_type();
+    my %lt = &reservationlog_contexts($crstype);
     $output .= '<td valign="top"><b>'.&mt('Window during which changes occurred:').
                '</b><br /><table><tr><td>'.&mt('After:').
                '</td><td>'.$startform.'</td></tr><tr><td>'.&mt('Before:').'</td><td>'.

--raeburn1256967565--