--- loncom/interface/slotrequest.pm 2019/06/24 03:23:36 1.125.2.3.4.1 +++ loncom/interface/slotrequest.pm 2018/09/14 21:06:22 1.125.2.6 @@ -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.125.2.3.4.1 2019/06/24 03:23:36 raeburn Exp $ +# $Id: slotrequest.pm,v 1.125.2.6 2018/09/14 21:06:22 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -729,39 +729,13 @@ sub release_reservation { } my $new_param = join(':',@new_slots); - # Get value of useslots parameter in effect for this user. - # If value is map or map_map, then the parm level is 2 (i.e., - # non-recursive enclosing map/folder level for specific user) - # and the symb for this reservation in slot_reservations.db - # will be the symb of the map itself. - - 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)) { - return (0,'error: Unable to determine current status'); - } - - my $parm_level = 1; - my $parm_symb = $passed_resource->symb(); - if ($use_slots eq 'map' || $use_slots eq 'map_map') { - $parm_level = 2; - unless ($passed_resource->is_map()) { - my ($map) = &Apache::lonnet::decode_symb($parm_symb); - $parm_symb = &Apache::lonnet::symbread($map); - } - } - my ($cnum,$cdom)=&get_course(); - # get slot reservations, check if user has one for the - # correct symb, and if so, remove the reservation + # get slot reservations, check if user has one, if so remove reservation my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum, "^$slot_name\0"); foreach my $entry (keys(%consumed)) { - if (($consumed{$entry}->{'name'} eq $uname.':'.$udom) && - ($consumed{$entry}->{'symb'} eq $parm_symb)) { + if ( $consumed{$entry}->{'name'} eq ($uname.':'.$udom) ) { &Apache::lonnet::del('slot_reservations',[$entry], $cdom,$cnum); my %storehash = ( @@ -777,6 +751,18 @@ sub release_reservation { } } + 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)) { + return (0,'error: Unable to determine current status'); + } + + my $parm_level = 1; + if ($use_slots eq 'map' || $use_slots eq 'map_map') { + $parm_level = 2; + } # store new parameter string my $result=&Apache::lonparmset::storeparm_by_symb($symb, '0_availablestudent', @@ -2686,8 +2672,10 @@ sub csv_upload_map { if (!$env{'form.datatoken'}) { $datatoken=&Apache::loncommon::upfile_store($r); } else { - $datatoken=$env{'form.datatoken'}; - &Apache::loncommon::load_tmp_file($r); + $datatoken=&Apache::loncommon::valid_datatoken($env{'form.datatoken'}); + if ($datatoken ne '') { + &Apache::loncommon::load_tmp_file($r,$datatoken); + } } my @records=&Apache::loncommon::upfile_record_sep(); if ($env{'form.noFirstLine'}) { shift(@records); } @@ -2737,7 +2725,10 @@ sub csvupload_fields { sub csv_upload_assign { my ($r,$mgr)= @_; - &Apache::loncommon::load_tmp_file($r); + my $datatoken = &Apache::loncommon::valid_datatoken($env{'form.datatoken'}); + if ($datatoken ne '') { + &Apache::loncommon::load_tmp_file($r,$datatoken); + } my @slotdata = &Apache::loncommon::upfile_record_sep(); if ($env{'form.noFirstLine'}) { shift(@slotdata); } my %fields=&Apache::grades::get_fields();