--- loncom/interface/slotrequest.pm 2007/04/11 16:07:51 1.78
+++ loncom/interface/slotrequest.pm 2007/09/21 22:37:23 1.80
@@ -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.78 2007/04/11 16:07:51 albertel Exp $
+# $Id: slotrequest.pm,v 1.80 2007/09/21 22:37:23 albertel 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,6 +460,18 @@ 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));
@@ -482,7 +495,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)) {
@@ -1108,12 +1122,13 @@ sub show_table {
my ($id_count,$ids);
if (exists($show{'scheduled'}) || exists($show{'space'}) ) {
- my @this_slot = grep(/^$slot\0/,keys(%consumed));
+ my $re_str = "$slot\0";
+ my @this_slot = grep(/^\Q$re_str\E/,keys(%consumed));
$id_count = scalar(@this_slot);
if (exists($show{'scheduled'})) {
foreach my $entry (sort { $consumed{$a}{name} cmp
$consumed{$b}{name} }
- (keys(%consumed))) {
+ (@this_slot)) {
my (undef,$id)=split("\0",$entry);
my ($uname,$udom) = split(':',$consumed{$entry}{'name'});
$ids.= '';