--- loncom/interface/slotrequest.pm 2005/08/09 15:38:13 1.7 +++ loncom/interface/slotrequest.pm 2005/09/06 21:31:03 1.12 @@ -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.7 2005/08/09 15:38:13 albertel Exp $ +# $Id: slotrequest.pm,v 1.12 2005/09/06 21:31:03 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,9 +38,14 @@ use Apache::lonnet; sub fail { my ($r,$code)=@_; if ($code eq 'not_valid') { - $r->print('<p>'.&mt('Unable to understand what resource you wanted to sign up for.').'</p>'.$env{'form.symb'}); + $r->print('<p>'.&mt('Unable to understand what resource you wanted to sign up for.').'</p>'); + } elsif ($code eq 'not_allowed') { + $r->print('<p>'.&mt('Not allowed to sign up or change reservations at this time.').'</p>'); + } else { + $r->print('<p>'.&mt('Failed.').'</p>'); } + $r->print('<p><a href="/adm/flip?postdata=return:">'. &mt('Return to last resource').'</a></p>'); &end_page($r); @@ -451,7 +456,18 @@ sub show_table { my ($cnum,$cdom)=&get_course(); my %slots=&Apache::lonnet::dump('slots',$cdom,$cnum); my $available; - $r->print('<table border="1">'); + $r->print('<table border="1"> +<tr> + <th>Slot name</th> + <th>Type</th> + <th>Description</th> + <th>Start Time</th> + <th>End Time</th> + <th>Max space</th> + <th>Scheduled Students</th> + <th>Proctors</th> + <th>Unique Period</th> +</tr>'); foreach my $slot (sort { return $slots{$a}->{'starttime'} <=> $slots{$b}->{'starttime'} } (keys(%slots))) { @@ -472,11 +488,14 @@ sub show_table { $r->print(<<STUFF); <tr> <td>$slot</td> + <td>$slots{$slot}->{'type'}</td> <td>$description</td> <td>$start</td> <td>$end</td> <td>$slots{$slot}->{'maxspace'}</td> <td>$ids</td> + <td>$slots{$slot}->{'proctor'}</td> + <td>$slots{$slot}->{'uniqueperiod'}</td> </tr> STUFF } @@ -486,6 +505,7 @@ STUFF sub handler { my $r=shift; + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}); &start_page($r); my $symb=&Apache::lonnet::unescape($env{'form.symb'}); my (undef,undef,$res)=&Apache::lonnet::decode_symb($symb); @@ -493,18 +513,30 @@ sub handler { &fail($r,'not_valid'); return OK; } - - if ($env{'form.command'} eq 'showslots') { + $env{'request.symb'}=$symb; + my $vgr=&Apache::lonnet::allowed('vgr',$env{'request.course.id'}); + if ($env{'form.command'} eq 'showslots' && $vgr eq 'F') { &show_table($r,$symb); - } elsif ($env{'form.requestattempt'}) { - &show_choices($r,$symb); - } elsif ($env{'form.command'} eq 'release') { - &release_slot($r,$symb); - } elsif ($env{'form.command'} eq 'get') { - &get_slot($r,$symb); - } elsif ($env{'form.command'} eq 'change') { - &release_slot($r,$symb,$env{'form.releaseslot'},1); - &get_slot($r,$symb); + } else { + my ($status) = &Apache::lonhomework::check_task_access('0'); + if ($status eq 'CAN_ANSWER' || + $status eq 'NEEDS_CHECKIN' || + $status eq 'WAITING_FOR_GRADE') { + &fail($r,'not_allowed'); + return OK; + } + if ($env{'form.requestattempt'}) { + &show_choices($r,$symb); + } elsif ($env{'form.command'} eq 'release') { + &release_slot($r,$symb); + } elsif ($env{'form.command'} eq 'get') { + &get_slot($r,$symb); + } elsif ($env{'form.command'} eq 'change') { + &release_slot($r,$symb,$env{'form.releaseslot'},1); + &get_slot($r,$symb); + } else { + $r->print("<p>Unknown command: ".$env{'form.command'}."</p>"); + } } &end_page($r); return OK;