version 1.57, 2006/04/10 07:37:16
|
version 1.60, 2006/05/12 01:20:31
|
Line 243 sub make_reservation {
|
Line 243 sub make_reservation {
|
my $value=&Apache::lonnet::EXT("resource.0.availablestudent",$symb, |
my $value=&Apache::lonnet::EXT("resource.0.availablestudent",$symb, |
$env{'user.domain'},$env{'user.name'}); |
$env{'user.domain'},$env{'user.name'}); |
&Apache::lonxml::debug("value is $value<br />"); |
&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'; |
return 'error: Unable to determine current status'; |
} |
} |
|
|
|
my $parm_symb = $symb; |
|
my $parm_level = 1; |
|
if ($use_slots eq 'map') { |
|
my ($map) = &Apache::lonnet::decode_symb($symb); |
|
$parm_symb = &Apache::lonnet::symbread($map); |
|
$parm_level = 2; |
|
} |
|
|
foreach my $other_slot (split(/:/, $value)) { |
foreach my $other_slot (split(/:/, $value)) { |
if ($other_slot eq $slot_name) { |
if ($other_slot eq $slot_name) { |
my %consumed=&Apache::lonnet::dump('slot_reservations', $cdom, |
my %consumed=&Apache::lonnet::dump('slot_reservations', $cdom, |
Line 286 sub make_reservation {
|
Line 298 sub make_reservation {
|
|
|
my %reservation=('name' => $env{'user.name'}.':'.$env{'user.domain'}, |
my %reservation=('name' => $env{'user.name'}.':'.$env{'user.domain'}, |
'timestamp' => time, |
'timestamp' => time, |
'symb' => $symb); |
'symb' => $parm_symb); |
|
|
my $success=&Apache::lonnet::newput('slot_reservations', |
my $success=&Apache::lonnet::newput('slot_reservations', |
{"$slot_name\0$wanted" => |
{"$slot_name\0$wanted" => |
Line 300 sub make_reservation {
|
Line 312 sub make_reservation {
|
} |
} |
my $result=&Apache::lonparmset::storeparm_by_symb($symb, |
my $result=&Apache::lonparmset::storeparm_by_symb($symb, |
'0_availablestudent', |
'0_availablestudent', |
1, $new_value, 'string', |
$parm_level, $new_value, |
|
'string', |
$env{'user.name'}, |
$env{'user.name'}, |
$env{'user.domain'}); |
$env{'user.domain'}); |
&Apache::lonxml::debug("hrrm $result"); |
&Apache::lonxml::debug("hrrm $result"); |
Line 471 sub release_reservation {
|
Line 484 sub release_reservation {
|
} |
} |
} |
} |
|
|
|
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 'map') { |
|
$parm_level = 2; |
|
} |
# store new parameter string |
# store new parameter string |
my $result=&Apache::lonparmset::storeparm_by_symb($symb, |
my $result=&Apache::lonparmset::storeparm_by_symb($symb, |
'0_availablestudent', |
'0_availablestudent', |
1, $new_param, 'string', |
$parm_level, $new_param, |
$uname,$udom); |
'string', $uname, $udom); |
|
|
my $msg; |
my $msg; |
if ($mgr eq 'F') { |
if ($mgr eq 'F') { |
Line 1420 sub csv_upload_assign {
|
Line 1444 sub csv_upload_assign {
|
if ($entries{$fields{'endtime'}}) { |
if ($entries{$fields{'endtime'}}) { |
$slot{'endtime'}=&UnixDate($entries{$fields{'endtime'}},"%s"); |
$slot{'endtime'}=&UnixDate($entries{$fields{'endtime'}},"%s"); |
} |
} |
|
|
|
# start/endtime must be defined and greater than zero |
|
if (!$slot{'starttime'}) { |
|
push(@errors,"$name not created -- Invalid start time"); |
|
next; |
|
} |
|
if (!$slot{'endtime'}) { |
|
push(@errors,"$name not created -- Invalid end time"); |
|
next; |
|
} |
|
if ($slot{'starttime'} > $slot{'endtime'}) { |
|
push(@errors,"$name not created -- Slot starts after it ends"); |
|
next; |
|
} |
|
|
if ($entries{$fields{'startreserve'}}) { |
if ($entries{$fields{'startreserve'}}) { |
$slot{'startreserve'}= |
$slot{'startreserve'}= |
&UnixDate($entries{$fields{'startreserve'}},"%s"); |
&UnixDate($entries{$fields{'startreserve'}},"%s"); |
} |
} |
|
if (defined($slot{'startreserve'}) |
|
&& $slot{'startreserve'} > $slot{'starttime'}) { |
|
push(@errors,"$name not created -- Slot's reservation start time is after the slot's start time."); |
|
next; |
|
} |
|
|
foreach my $key ('ip','proctor','description','maxspace', |
foreach my $key ('ip','proctor','description','maxspace', |
'secret','symb') { |
'secret','symb') { |
if ($entries{$fields{$key}}) { |
if ($entries{$fields{$key}}) { |
$slot{$key}=$entries{$fields{$key}}; |
$slot{$key}=$entries{$fields{$key}}; |
} |
} |
} |
} |
|
|
if ($entries{$fields{'uniqueperiod'}}) { |
if ($entries{$fields{'uniqueperiod'}}) { |
my ($start,$end)=split(',',$entries{$fields{'uniqueperiod'}}); |
my ($start,$end)=split(',',$entries{$fields{'uniqueperiod'}}); |
my @times=(&UnixDate($start,"%s"), |
my @times=(&UnixDate($start,"%s"), |
&UnixDate($end,"%s")); |
&UnixDate($end,"%s")); |
$slot{'uniqueperiod'}=\@times; |
$slot{'uniqueperiod'}=\@times; |
} |
} |
|
if (defined($slot{'uniqueperiod'}) |
|
&& $slot{'uniqueperiod'}[0] > $slot{'uniqueperiod'}[1]) { |
|
push(@errors,"$name not created -- Slot's unique period start time is later than the unique period's end time."); |
|
next; |
|
} |
|
|
&Apache::lonnet::cput('slots',{$name=>\%slot},$cdom,$cname); |
&Apache::lonnet::cput('slots',{$name=>\%slot},$cdom,$cname); |
$r->print('.'); |
$r->print('.'); |
Line 1501 sub handler {
|
Line 1552 sub handler {
|
my $symb=&Apache::lonnet::unescape($env{'form.symb'}); |
my $symb=&Apache::lonnet::unescape($env{'form.symb'}); |
my (undef,undef,$res)=&Apache::lonnet::decode_symb($symb); |
my (undef,undef,$res)=&Apache::lonnet::decode_symb($symb); |
my $useslots = &Apache::lonnet::EXT("resource.0.useslots",$symb); |
my $useslots = &Apache::lonnet::EXT("resource.0.useslots",$symb); |
if ($useslots ne 'resource') { |
if ($useslots ne 'resource' && $useslots ne 'map') { |
&fail($r,'not_valid'); |
&fail($r,'not_valid'); |
return OK; |
return OK; |
} |
} |