--- loncom/interface/slotrequest.pm 2005/11/21 21:20:06 1.35 +++ loncom/interface/slotrequest.pm 2006/01/24 06:41:16 1.38 @@ -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.35 2005/11/21 21:20:06 albertel Exp $ +# $Id: slotrequest.pm,v 1.38 2006/01/24 06:41:16 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -325,6 +325,8 @@ sub delete_slot { my ($cnum,$cdom)=&get_course(); my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, "^$slot_name\0"); + my ($tmp) = %consumed; + if ($tmp =~ /error: 2/) { undef(%consumed); } if (%slot && !%consumed) { $slot{'type'} = 'deleted'; @@ -626,7 +628,7 @@ sub show_table { 'endtime' => 'End Time', 'startreserve' => 'Time students can start reserving', 'secret' => 'Secret Word', - 'maxspace' => 'Maxium # of students', + 'maxspace' => 'Maximum # of students', 'ip' => 'IP or DNS restrictions', 'symb' => 'Resource slot is restricted to.', 'uniqueperiod' => 'Period of time slot is unique', @@ -732,13 +734,17 @@ sub show_table { my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, "^$slot\0"); my $ids; - foreach my $entry (sort(keys(%consumed))) { - my (undef,$id)=split("\0",$entry); - my ($uname,$udom) = split('@',$consumed{$entry}{'name'}); - my $name = &Apache::loncommon::plainname($uname,$udom); - $ids.= ''.$name.&remove_link($slot,$entry,$uname,$udom, - $consumed{$entry}{'symb'}) - .'
'; + + my ($tmp)=%consumed; + if ($tmp !~ /^error: /) { + foreach my $entry (sort(keys(%consumed))) { + my (undef,$id)=split("\0",$entry); + my ($uname,$udom) = split('@',$consumed{$entry}{'name'}); + my $name = &Apache::loncommon::plainname($uname,$udom); + $ids.= ''.$name.&remove_link($slot,$entry,$uname,$udom, + $consumed{$entry}{'symb'}) + .'
'; + } } my $start=($slots{$slot}->{'starttime'}? @@ -1129,12 +1135,15 @@ sub handler { } else { my $symb=&Apache::lonnet::unescape($env{'form.symb'}); my (undef,undef,$res)=&Apache::lonnet::decode_symb($symb); - if ($res !~ /\.task$/) { + my $useslots = &Apache::lonnet::EXT("resource.0.useslots",$symb); + if ($useslots ne 'resource') { &fail($r,'not_valid'); return OK; } $env{'request.symb'}=$symb; - my ($status) = &Apache::lonhomework::check_task_access('0'); + my $type = ($res =~ /\.task$/) ? 'Task' + : 'problem'; + my ($status) = &Apache::lonhomework::check_slot_access('0',$type); if ($status eq 'CAN_ANSWER' || $status eq 'NEEDS_CHECKIN' || $status eq 'WAITING_FOR_GRADE') {