[LON-CAPA-cvs] cvs: loncom /homework lonhomework.pm /interface slotrequest.pm

albertel lon-capa-cvs@mail.lon-capa.org
Tue, 25 Apr 2006 15:32:40 -0000


albertel		Tue Apr 25 11:32:40 2006 EDT

  Modified files:              
    /loncom/interface	slotrequest.pm 
    /loncom/homework	lonhomework.pm 
  Log:
  - make useslots be confiugrable so students can make a slot registration apply at the sequence level
  
  
Index: loncom/interface/slotrequest.pm
diff -u loncom/interface/slotrequest.pm:1.58 loncom/interface/slotrequest.pm:1.59
--- loncom/interface/slotrequest.pm:1.58	Mon Apr 24 19:23:02 2006
+++ loncom/interface/slotrequest.pm	Tue Apr 25 11:32:20 2006
@@ -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.58 2006/04/24 23:23:02 albertel Exp $
+# $Id: slotrequest.pm,v 1.59 2006/04/25 15:32:20 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -243,10 +243,22 @@
     my $value=&Apache::lonnet::EXT("resource.0.availablestudent",$symb,
 				   $env{'user.domain'},$env{'user.name'});
     &Apache::lonxml::debug("value is  $value<br />");
-    if (&network_error($value)) { 
+
+    my $use_slots = &Apache::lonnet::EXT("resource.0.useslots");
+    &Apache::lonxml::debug("use_slots is  $use_slots<br />");
+
+    if (&network_error($value) || &network_error($use_slots)) { 
 	return 'error: Unable to determine current status';
     }
 
+    my $parm_symb  = $symb;
+    my $parm_level = 1;
+    if ($use_slots eq 'sequence') {
+	my ($map) = &Apache::lonnet::decode_symb($symb);
+	$parm_symb = &Apache::lonnet::symbread($map);
+	$parm_level = 2;
+    }
+
     foreach my $other_slot (split(/:/, $value)) {
 	if ($other_slot eq $slot_name) {
 	    my %consumed=&Apache::lonnet::dump('slot_reservations', $cdom,
@@ -286,7 +298,7 @@
     
     my %reservation=('name'      => $env{'user.name'}.':'.$env{'user.domain'},
 		     'timestamp' => time,
-		     'symb'      => $symb);
+		     'symb'      => $parm_symb);
 
     my $success=&Apache::lonnet::newput('slot_reservations',
 					{"$slot_name\0$wanted" =>
@@ -300,7 +312,8 @@
 	}
 	my $result=&Apache::lonparmset::storeparm_by_symb($symb,
 						      '0_availablestudent',
-						       1, $new_value, 'string',
+						       $parm_level, $new_value,
+						       'string',
 						       $env{'user.name'},
 					               $env{'user.domain'});
 	&Apache::lonxml::debug("hrrm $result");
@@ -471,11 +484,22 @@
 	}
     }
 
+    my $use_slots = &Apache::lonnet::EXT("resource.0.useslots");
+    &Apache::lonxml::debug("use_slots is  $use_slots<br />");
+
+    if (&network_error($use_slots)) { 
+	return (0,'error: Unable to determine current status');
+    }
+
+    my $parm_level = 1;
+    if ($use_slots eq 'sequence') {
+	$parm_level = 2;
+    }
     # store new parameter string
     my $result=&Apache::lonparmset::storeparm_by_symb($symb,
 						      '0_availablestudent',
-						      1, $new_param, 'string',
-						      $uname,$udom);
+						      $parm_level, $new_param,
+						      'string', $uname, $udom);
 
     my $msg;
     if ($mgr eq 'F') {
@@ -1528,7 +1552,7 @@
 	my $symb=&Apache::lonnet::unescape($env{'form.symb'});
 	my (undef,undef,$res)=&Apache::lonnet::decode_symb($symb);
 	my $useslots = &Apache::lonnet::EXT("resource.0.useslots",$symb);
-	if ($useslots ne 'resource') {
+	if ($useslots ne 'resource' && $useslots ne 'sequence') {
 	    &fail($r,'not_valid');
 	    return OK;
 	}
Index: loncom/homework/lonhomework.pm
diff -u loncom/homework/lonhomework.pm:1.241 loncom/homework/lonhomework.pm:1.242
--- loncom/homework/lonhomework.pm:1.241	Fri Apr 21 11:26:25 2006
+++ loncom/homework/lonhomework.pm	Tue Apr 25 11:32:40 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Homework handler
 #
-# $Id: lonhomework.pm,v 1.241 2006/04/21 15:26:25 albertel Exp $
+# $Id: lonhomework.pm,v 1.242 2006/04/25 15:32:40 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -234,7 +234,7 @@
     my ($status,$datemsg)=&check_access($id);
     
     my $useslots = &Apache::lonnet::EXT("resource.$id.useslots");
-    if ($useslots ne 'resource') {
+    if ($useslots ne 'resource' && $useslots ne 'sequence') {
 	return ($status,$datemsg);
     }