--- loncom/interface/slotrequest.pm 2007/04/10 23:30:41 1.76
+++ loncom/interface/slotrequest.pm 2008/01/14 14:32:30 1.81
@@ -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.76 2007/04/10 23:30:41 albertel Exp $
+# $Id: slotrequest.pm,v 1.81 2008/01/14 14:32:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -241,7 +241,8 @@ sub make_reservation {
$env{'user.domain'},$env{'user.name'});
&Apache::lonxml::debug("value is $value
");
- my $use_slots = &Apache::lonnet::EXT("resource.0.useslots");
+ my $use_slots = &Apache::lonnet::EXT("resource.0.useslots",$symb,
+ $env{'user.domain'},$env{'user.name'});
&Apache::lonxml::debug("use_slots is $use_slots
");
if (&Apache::lonnet::error($value)
@@ -334,7 +335,7 @@ sub remove_registration {
my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum,
"^$slot_name\0");
if (&Apache::lonnet::error(%consumed)) {
- $r->print("
".&mt('A network error has occured.').'
'); + $r->print("".&mt('A network error has occured.').'
'); return; } if (!%consumed) { @@ -459,9 +460,22 @@ sub release_reservation { return (0,&mt('Not allowed to release Reservation: [_1], as it has already ended.',$description)); } } + + # if the reservation symb is for a map get a resource in that map + # to check slot parameters on + my $navmap=Apache::lonnavmaps::navmap->new; + my $passed_resource = $navmap->getBySymb($symb); + if ($passed_resource->is_map()) { + my ($a_resource) = + $navmap->retrieveResources($passed_resource, + sub {$_[0]->is_problem()},0,1); + $symb = $a_resource->symb(); + } + # get parameter string, check for existance, rebuild string with the slot - my @slots = split(/:/,&Apache::lonnet::EXT("resource.0.availablestudent", - $symb,$udom,$uname)); + my $student = &Apache::lonnet::EXT("resource.0.availablestudent", + $symb,$udom,$uname); + my @slots = split(/:/,$student); my @new_slots; foreach my $exist_slot (@slots) { @@ -482,7 +496,8 @@ sub release_reservation { } } - my $use_slots = &Apache::lonnet::EXT("resource.0.useslots"); + my $use_slots = &Apache::lonnet::EXT("resource.0.useslots", + $symb,$udom,$uname); &Apache::lonxml::debug("use_slots is $use_slotsSlot $slot_name marked as deleted.
"); } else { - $r->print("An error ($ret) occurse when attempting to delete Slot $slot_name.
"); + $r->print("An error ($ret) occurse when attempting to delete Slot $slot_name.
"); } } else { if (%consumed) { @@ -554,7 +569,7 @@ sub get_slot { my $slot_name=&check_for_conflict($symb,$env{'form.slotname'},\%slot); if ($slot_name =~ /^error: (.*)/) { - $r->print("An error occured while attempting to make a reservation. ($1)
"); + $r->print("An error occured while attempting to make a reservation. ($1)
"); &return_link($r); return 0; } @@ -595,7 +610,7 @@ STUFF if (defined($reserved)) { my $retvalue = 0; if ($slot_name =~ /^error: (.*)/) { - $r->print("An error occured while attempting to make a reservation. ($1)
"); + $r->print("An error occured while attempting to make a reservation. ($1)
"); } elsif ($reserved > -1) { $r->print("Success: $description
"); $retvalue = 1; @@ -616,7 +631,7 @@ STUFF } $r->print(<Failed to reserve a spot for $description.