--- loncom/html/adm/helper/newslot.helper 2006/03/07 16:29:14 1.14
+++ loncom/html/adm/helper/newslot.helper 2015/09/23 23:05:04 1.31
@@ -1,5 +1,6 @@
-
+
OPTIONAL
@@ -30,7 +31,7 @@
}
- Name:
+
Name:
@@ -64,12 +65,18 @@
return &{$helper->{DATA}{origslot}}('endtime');
+
+ if ($val < $helper->{'VARS'}{'starttime'}) {
+ return 'End time must be later than the start time.';
+ }
+ return undef;
+
Type:
- Instructor asssignable.
+ Instructor assignable.
Student selectable.
return &{$helper->{DATA}{origslot}}('type','preassigned');
@@ -78,7 +85,8 @@
-
+
Description:
@@ -96,9 +104,29 @@
return &{$helper->{DATA}{origslot}}('startreserve','anytime');
+
+ if (defined($val) && $val > $helper->{'VARS'}{'starttime'}) {
+ return 'Reservation time must come before the slot has started.';
+ }
+ return undef;
+
+
+
+
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;
+
-
Maxium number of students allowed in this slot:
+
Maximum number of students allowed in this slot:
@@ -110,7 +138,7 @@
-
Period of time in which this slot is can only be uniquely chosen:
Start:
+
Period of time when this slot can only be uniquely chosen:
Start:
@@ -128,17 +156,52 @@
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;
+
+
+
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'});
+
+
+
Proctored access:
+
+
+ No proctor checkin required for access.
+ Require proctored checkin for access.
+
+ my $default=&{$helper->{DATA}{origslot}}('proctor');
+ if ($default) { return 'yes'; }
+ return 'no';
+
+
+
Secret word proctors use to checkin users:
@@ -153,15 +216,26 @@
Slot is:
+
+
usable for any resource.
+ restricted to resources in a specific folder/composite page.
restricted to a specific resource.
my $default=&{$helper->{DATA}{origslot}}('symb');
- if ($default) { return 'resource'; }
- return 'any';
+ if ($default) {
+ if ($default =~ /\.(page|sequence)$/) {
+ return 'map';
+ } else {
+ return 'resource';
+ }
+ } else {
+ return 'any';
+ }
+
IP restrictions:
@@ -190,23 +264,35 @@
+
-
+ PROCTOR
- FINISH
+
+ return $res->is_map()
+ return $res->symb()
+
+ return &{$helper->{DATA}{origslot}}('symb');
+
+
+
-
- $helper->{'VARS'}{'type'} eq 'schedulable_student'
- RESTRICTUSER
-
+
+
+
+ $helper->{'VARS'}{'useproctor'} eq 'no'
+ RESTRICTUSER
+
+
+ RESTRICTUSER
+ activeonly="1" emptyallowed="0">
my @defaults;
my $default=&{$helper->{DATA}{origslot}}('proctor');
if ($default) {
- $default=~ tr/@/:/;
@defaults=(split(',',$default));
}
return @defaults;
@@ -215,7 +301,13 @@
-
+
+
+ $helper->{'VARS'}{'type'} ne 'schedulable_student'
+ FINISH
+
+
FINISH
Slots are by default available to all users in a course, if you would like this slot to be restricted to a subset of users you can specify restrictions.
@@ -242,7 +334,7 @@
-
+
Created Slot
@@ -260,23 +352,39 @@
}
}
+ 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'},
$helper->{'VARS'}{'endunique'}];
}
- if ( $helper->{'VARS'}{'proctor'} =~/\S/ ) {
+ if ( $helper->{'VARS'}{'useproctor'} eq 'yes'
+ && $helper->{'VARS'}{'proctor'} =~/\S/ ) {
my @names;
+ # just need the username/domain throw away the other data
+ # that returns
foreach my $user (split(/\|\|\|/, $helper->{'VARS'}{'proctor'})) {
my ($uname,$udomain)=split(/:/,$user);
- push(@names,"$uname\@$udomain");
+ push(@names,"$uname:$udomain");
}
- # make sure the usenrmaes are unique
+ # make sure the usernmaes are unique
my %proctors = map { ($_,1) } @names;
$slot{'proctor'}=join(',',sort(keys(%proctors)));
}
@@ -288,8 +396,9 @@
}
if ( $helper->{'VARS'}{'allowedusers'} =~/\S/ ) {
-
my @names;
+ # just need the username/domain throw away the other data
+ # that returns
foreach my $item (split(/\|\|\|/,
$helper->{'VARS'}{'allowedusers'})) {
my ($uname,$udomain)=split(/:/,$item);
@@ -307,6 +416,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'}).''.
@@ -324,6 +436,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;