--- loncom/interface/slotrequest.pm 2007/04/11 21:49:02 1.79
+++ 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.79 2007/04/11 21:49:02 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)
@@ -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_slots
");
if (&Apache::lonnet::error($use_slots)) {