Diff for /loncom/interface/slotrequest.pm between versions 1.125.2.3 and 1.125.2.3.4.1

version 1.125.2.3, 2016/10/24 01:13:54 version 1.125.2.3.4.1, 2019/06/24 03:23:36
Line 729  sub release_reservation { Line 729  sub release_reservation {
     }      }
     my $new_param = join(':',@new_slots);      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<br />");
   
       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();      my ($cnum,$cdom)=&get_course();
   
     # get slot reservations, check if user has one, if so remove reservation      # get slot reservations, check if user has one for the
       # correct symb, and if so, remove the reservation
     my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum,      my %consumed=&Apache::lonnet::dump('slot_reservations',$cdom,$cnum,
        "^$slot_name\0");         "^$slot_name\0");
     foreach my $entry (keys(%consumed)) {      foreach my $entry (keys(%consumed)) {
  if ( $consumed{$entry}->{'name'} eq ($uname.':'.$udom) ) {          if (($consumed{$entry}->{'name'} eq $uname.':'.$udom) &&
               ($consumed{$entry}->{'symb'} eq $parm_symb)) {
     &Apache::lonnet::del('slot_reservations',[$entry],      &Apache::lonnet::del('slot_reservations',[$entry],
  $cdom,$cnum);   $cdom,$cnum);
             my %storehash = (              my %storehash = (
Line 744  sub release_reservation { Line 770  sub release_reservation {
                                action  => 'release',                                 action  => 'release',
                                context => $env{'form.context'},                                 context => $env{'form.context'},
                         );                          );
             &Apache::lonnet::write_log('slotreservationslog',\%storehash,              &Apache::lonnet::write_log('course','slotreservationslog',
                                        1,$uname,$udom,$cnum,$cdom);                                         \%storehash,1,$uname,$udom,$cnum,$cdom);
             &Apache::lonnet::write_log($cdom.'_'.$cnum.'_slotlog',\%storehash,              &Apache::lonnet::write_log('course',$cdom.'_'.$cnum.'_slotlog',
                                        1,$uname,$udom,$uname,$udom);                                         \%storehash,1,$uname,$udom,$uname,$udom);
  }   }
     }      }
   
     my $use_slots = &Apache::lonnet::EXT("resource.0.useslots",  
  $symb,$udom,$uname);  
     &Apache::lonxml::debug("use_slots is  $use_slots<br />");  
   
     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      # store new parameter string
     my $result=&Apache::lonparmset::storeparm_by_symb($symb,      my $result=&Apache::lonparmset::storeparm_by_symb($symb,
       '0_availablestudent',        '0_availablestudent',
Line 841  sub get_slot { Line 855  sub get_slot {
     if ($slot_name && $slot_name ne $conflictable_slot) {      if ($slot_name && $slot_name ne $conflictable_slot) {
  my %slot=&Apache::lonnet::get_slot($slot_name);   my %slot=&Apache::lonnet::get_slot($slot_name);
  my $description1=&get_description($slot_name,\%slot);   my $description1=&get_description($slot_name,\%slot);
           my $slottype1=$slot{'type'};
  %slot=&Apache::lonnet::get_slot($env{'form.slotname'});   %slot=&Apache::lonnet::get_slot($env{'form.slotname'});
  my $description2=&get_description($env{'form.slotname'},\%slot);   my $description2=&get_description($env{'form.slotname'},\%slot);
  if ($slot_name ne $env{'form.slotname'}) {          if ($slottype1 eq 'preassigned') {
               $r->print('<p>'.&mt('You already have a reservation: "[_1]", assigned by your instructor.',
                                   $description1).'</p>'.
                         '<p>'.&mt('Your instructor must unassign it before you can make a new reservation.').
                         '</p>');
           } elsif ($slot_name ne $env{'form.slotname'}) {
     $r->print(<<STUFF);      $r->print(<<STUFF);
 <form method="post" action="/adm/slotrequest">  <form method="post" action="/adm/slotrequest">
    <input type="hidden" name="symb" value="$env{'form.symb'}" />     <input type="hidden" name="symb" value="$env{'form.symb'}" />

Removed from v.1.125.2.3  
changed lines
  Added in v.1.125.2.3.4.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>