--- loncom/html/adm/helper/newslot.helper 2009/01/27 20:53:53 1.25 +++ loncom/html/adm/helper/newslot.helper 2018/06/27 14:35:09 1.30.4.1 @@ -76,7 +76,7 @@
Type: - Instructor asssignable. + Instructor assignable. Student selectable. return &{$helper->{DATA}{origslot}}('type','preassigned'); @@ -112,6 +112,20 @@ +

Time students can no longer reserve:
    + + + + return &{$helper->{DATA}{origslot}}('endreserve','anytime'); + + + if (defined($val) && $val > $helper->{'VARS'}{'starttime'}) { + return 'Reservation end time must come before the slot has started.'; + } + return undef; + + +

Maximum number of students allowed in this slot:
    @@ -149,17 +163,55 @@ return undef; + +

Message(s) triggered by reservation change by student + + + Sent to student + Sent to student and added to user notes + None sent and no record in user notes + + my $default=&{$helper->{DATA}{origslot}}('reservationmsg'); + if ($default eq 'only_student') { return $default; } + if ($default eq 'student_and_user_notes_screen') { return $default; } + return 'none'; + + $helper->{'VARS'}{'type'} eq 'preassigned' delete($helper->{'VARS'}{'startreserve'}); + delete($helper->{'VARS'}{'endreserve'}); delete($helper->{'VARS'}{'maxspace'}); - delete($helper->{'VARS'}{'startunique'}); - delete($helper->{'VARS'}{'endunique'}); + +

Period of time when this slot can only be uniquely assigned:
   Start: + + + + my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); + if ($default eq 'anytime') { return 'anytime' }; + if (ref($default)) { return $default->[0]; } + return 'anytime'; + + +
   End:
+ + + my $default=&{$helper->{DATA}{origslot}}('uniqueperiod','anytime'); + if ($default eq 'anytime') { return 'anytime' }; + if (ref($default)) { return $default->[1]; } + return 'anytime'; + + + if (defined($val) && $val < $helper->{'VARS'}{'startunique'}) { + return 'End time must be later than the start time.'; + } + return undef; + + -

Proctored access: @@ -285,7 +337,7 @@ - + Created Slot @@ -303,10 +355,23 @@ } } + if ($helper->{'VARS'}{'type'} eq 'schedulable_student') { + if (($helper->{'VARS'}{'reservationmsg'} eq 'only_student') || + ($helper->{'VARS'}{'reservationmsg'} eq 'student_and_user_notes_screen')) { + $slot{'reservationmsg'} = $helper->{'VARS'}{'reservationmsg'}; + } else { + $slot{'reservationmsg'} = 'none'; + } + } + if ( $helper->{'VARS'}{'startreserve'} > 0) { $slot{'startreserve'} = $helper->{'VARS'}{'startreserve'}; } + if ( $helper->{'VARS'}{'endreserve'} > 0) { + $slot{'endreserve'} = $helper->{'VARS'}{'endreserve'}; + } + if ( $helper->{'VARS'}{'startunique'} > 0 && $helper->{'VARS'}{'endunique'} > 0 ) { $slot{'uniqueperiod'} = [$helper->{'VARS'}{'startunique'}, @@ -354,6 +419,9 @@ my $ret = &Apache::lonnet::cput('slots', {$helper->{'VARS'}{'name'} => \%slot}, $cdom,$cname); + if ($ret eq 'ok') { + &Apache::lonnet::devalidate_slots_cache($cname,$cdom); + } $result.="\n ".'Name: '.&HTML::Entities::encode($helper->{'VARS'}{'name'}).''. "\n".'

  • Starts: '.&Apache::lonlocal::locallocaltime($slot{'starttime'}).'
  • '. "\n".'
  • Ends: '.&Apache::lonlocal::locallocaltime($slot{'endtime'}).'
  • '. @@ -371,6 +439,18 @@ $result.="\n".'
  • '.$labels{'startreserve'}.': '. &Apache::lonlocal::locallocaltime($slot{'startreserve'}).'
  • '; } + + if (exists($slot{'endreserve'})) { + $result.="\n".'
  • '.$labels{'endreserve'}.': '. + &Apache::lonlocal::locallocaltime($slot{'endreserve'}).'
  • '; + } + + if (exists($slot{'reservationmsg'})) { + my %options = &Apache::slotrequest::slot_reservationmsg_options(); + $result.="\n".'
  • '.$labels{'reservationmsg'}.': '. + $options{$slot{'reservationmsg'}}.'
  • '; + } + if (exists($slot{'proctor'})) { my $proctors = $slot{'proctor'}; $proctors =~ s/,/, /g;