--- loncom/interface/lonpopulate.pm 2004/01/15 01:47:21 1.9
+++ loncom/interface/lonpopulate.pm 2004/01/15 05:56:34 1.10
@@ -1,5 +1,5 @@
# automated enrollment configuration handler
-# $Id: lonpopulate.pm,v 1.9 2004/01/15 01:47:21 raeburn Exp $
+# $Id: lonpopulate.pm,v 1.10 2004/01/15 05:56:34 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -329,17 +329,29 @@ Note: Any students added manually by cou
");
} elsif ($action eq "setdates") {
my ($start_table,$end_table) = &date_setting_table($enrollvar{autostart},$enrollvar{autoend});
- my $oldstartshow = localtime($enrollvar{autostart});
- my $oldendshow = localtime($enrollvar{autoend});
- if ($enrollvar{autoend} == 0) {
- $oldendshow = "No ending date";
+ my $oldstartshow = '';
+ my $oldendshow = '';
+ if ( defined($enrollvar{autostart}) ) {
+ $oldstartshow = localtime($enrollvar{autostart});
+ }
+ if ( defined($enrollvar{autoend}) ) {
+ $oldendshow = localtime($enrollvar{autoend});
+ if ($enrollvar{autoend} == 0) {
+ $oldendshow = "No ending date";
+ }
+ }
+ my $dateshow;
+ if ( ($oldendshow eq '') && ($oldstartshow eq '') ) {
+ $dateshow = " Warning. Currently NO first enrollment or last enrollment dates are set. You must use this menu to set a start date and an end date (or check the 'no ending date' checkbox) if you plan to utilise automated adds and/or drops in this course.\n";
+ } else {
+ $dateshow = "Currently: First enrollment: $oldstartshow, Last enrollment: $oldendshow\n";
}
$r->print(<
-
$$tasktitleref{$action}
- Currently: First enrollment: $oldstartshow, Last enrollment: $oldendshow
+
$$tasktitleref{$action}
+ $dateshow
@@ -885,9 +897,31 @@ ENDBASE
###################################################################
sub print_chgsettings_response {
my ($r,$realm,$dom,$crs,$action,$tasktitleref) = @_;
- my %settings = &Apache::lonnet::get('environment',['internal.autoadds','internal.autodrops'],$dom,$crs);
- my $curradds = $settings{'internal.autoadds'};
- my $currdrops = $settings{'internal.autodrops'};
+ my %settings = &Apache::lonnet::get('environment',['internal.sectionnums','internal.crosslistings','internal.autostart','internal.autoend','internal.autoadds','internal.autodrops'],$dom,$crs);
+ my $currend = '';
+ my $currstart = '';
+ my $currsecs = '';
+ my $currxlists = '';
+ my $curradds = '';
+ my $currdrops = '';
+ if ( defined($settings{'internal.autoadds'}) ) {
+ $curradds = $settings{'internal.autoadds'};
+ }
+ if ( defined($settings{'internal.autodrops'}) ) {
+ $currdrops = $settings{'internal.autodrops'};
+ }
+ if ( defined($settings{'internal.autostart'}) ) {
+ $currstart = $settings{'internal.autostart'};
+ }
+ if ( defined($settings{'internal.autoend'}) ) {
+ $currend = $settings{'internal.autoend'};
+ }
+ if ( defined($settings{'internal.sectionnums'}) ) {
+ $currsecs = $settings{'internal.sectionnums'};
+ }
+ if ( defined($settings{'internal.crosslistings'}) ) {
+ $currxlists = $settings{'internal.crosslistings'}
+ }
my $autoadds = '';
my $autodrops = '';
@@ -899,6 +933,10 @@ sub print_chgsettings_response {
}
my $response = "";
+ my $warning = "";
+ my $warn_prefix = "";
+ my $warn_suffix = "";
+ my $warnfiller = "";
my %cenv = ('internal.autoadds' => $autoadds,
'internal.autodrops' => $autodrops);
my $reply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs);
@@ -910,7 +948,7 @@ sub print_chgsettings_response {
$response = "Nightly additions based on classlist changes still enabled ";
} else {
$response = "Nightly additions based on classlist changes now enabled ";
- }
+ }
} else {
if ($curradds) {
$response = "Nightly additions based on classlist changes now disabled ";
@@ -931,6 +969,25 @@ sub print_chgsettings_response {
$response .= "Nightly removals based on classlist changes still disabled";
}
}
+ if ($autoadds || $autodrops) {
+ $warning = &warning_message($dom,$crs,$action);
+ $warn_prefix = " Warning. Although you indicated that nightly ";
+ $warn_suffix = " should be enabled, additional action is required. ";
+ }
+ if ($autoadds) {
+ if ($autodrops) {
+ $warnfiller = "adds and drops";
+ } else {
+ $warnfiller = "adds";
+ }
+ } else {
+ if ($autodrops) {
+ $warnfiller = "drops";
+ }
+ }
+ unless ($warning eq '') {
+ $response = $warn_prefix.$warnfiller.$warn_suffix.$warning;
+ }
}
&print_reply($r,$response,$$tasktitleref{$action});
return;
@@ -945,6 +1002,8 @@ sub print_setdates_response {
my ($autostart,$autoend) = &get_dates_from_form();
my $showstart = localtime($autostart);
my $showend = '';
+ my $warning = '';
+ my $warn_prefix = '';
if ($autoend) {
$showend = localtime($autoend);
} else {
@@ -983,7 +1042,7 @@ sub print_setdates_response {
my $lastmidnt = timelocal(0,0,0,$date_list[3],$date_list[4],$date_list[5]);
my $nextmidnt = 86400 + $lastmidnt;
- my $todayupdate = timelocal(0,40,4,$date_list[3],$date_list[4],$date_list[5]);
+ my $todayupdate = timelocal(0,30,1,$date_list[3],$date_list[4],$date_list[5]);
my $lastupdate = $todayupdate - 86400;
if ($nowstamp < $todayupdate) {
$nextupdate = "today";
@@ -1000,9 +1059,14 @@ sub print_setdates_response {
$firstaccess = "a date prior to today";
}
if (($nowstamp >= $autostart) && ($rosterupdated == 0)) {
- $response .= qq| Although you have now set the first enrollment date to $firstaccess, automatic enrollment will not occur until the next automatic enrollment update occurs for all LON-CAPA courses at 4.40 am $nextupdate. If you wish to grant immediate course access for registered students included in the institutional classlist for this class, please visit the roster update page. |;
+ $response .= qq| Although you have now set the first enrollment date to $firstaccess, automatic enrollment will not occur until the next automatic enrollment update occurs for all LON-CAPA courses at 1.30 am $nextupdate. If you wish to grant immediate course access for registered students included in the institutional classlist for this class, please visit the roster update page. |;
}
}
+ $warning = &warning_message($dom,$crs,$action);
+ $warn_prefix = " Warning. Although you set a start and end date for auto-enrollment, additional action is required. ";
+ unless ($warning eq '') {
+ $response .= $warn_prefix.$warning;
+ }
}
&print_reply($r,$response,$$tasktitleref{$action});
return;
@@ -1207,6 +1271,8 @@ sub print_crosslistings_response () {
my $coursecode = $settings{'internal.coursecode'};
my $owner = $settings{'internal.courseowner'};
my $response = '';
+ my $warning = '';
+ my $warn_prefix = '';
if ($xliststr =~ m/,/) {
@allxlists = split/,/,$xliststr;
@@ -1292,6 +1358,14 @@ sub print_crosslistings_response () {
$response .= "
\n";
}
+ if (@allxlists > 0) {
+ $warning = &warning_message($dom,$crs,$action);
+ $warn_prefix = " Warning. Although you have selected crosslisted courses to contribute enrollment to this course, additional action is required. ";
+ unless ($warning eq '') {
+ $response .= $warn_prefix.$warning;
+ }
+ }
+
&print_reply($r,$response,$$tasktitleref{$action});
return;
}
@@ -1308,6 +1382,8 @@ sub print_sections_menu () {
my $addcount = 0;
my $secstr = '';
my $response = '';
+ my $warning = "";
+ my $warn_prefix = "";
my $coursecode = $settings{'internal.coursecode'};
my $owner = $settings{'internal.courseowner'};
if ($settings{'internal.sectionnums'} =~ m/,/) {
@@ -1425,6 +1501,14 @@ sections which contribute to enrollment
$response .= "
\n";
}
+ if ($seccount > 0) {
+ $warning = &warning_message($dom,$crs,$action);
+ $warn_prefix = " Warning. Although you have selected sections to contribute enrollment to this course, additional action is required. ";
+ unless ($warning eq '') {
+ $response .= $warn_prefix.$warning;
+ }
+ }
+
if ( exists($ENV{'form.numsec'}) ) {
my $numsec = $ENV{'form.numsec'};
if ($numsec > 0) {
@@ -1484,6 +1568,8 @@ sub print_sections_response () {
my $owner = $settings{'internal.courseowner'};
my $response = '';
my $putreply = '';
+ my $warning = '';
+ my $warn_prefix = '';
if ($secstr =~ m/,/) {
@allsections = split/,/,$secstr;
} else {
@@ -1559,6 +1645,14 @@ sub print_sections_response () {
$response .= "
\n";
}
+ if (@allsections > 0) {
+ $warning = &warning_message($dom,$crs,$action);
+ $warn_prefix = " Warning. Although you have selected sections to contribute enrollment to this course, additional action is required. ";
+ unless ($warning eq '') {
+ $response .= $warn_prefix.$warning;
+ }
+ }
+
&print_reply($r,$response,$$tasktitleref{$action});
return;
}
@@ -1693,6 +1787,52 @@ sub print_update_result () {
return;
}
+sub warning_message {
+ my ($dom,$crs,$caller) = @_;
+ my %settings = &Apache::lonnet::get('environment',['internal.autoadds','internal.autodrops','internal.sectionnums','internal.crosslistings','internal.autostart','internal.autoend'],$dom,$crs);
+ my $currend = '';
+ my $currstart = '';
+ my $currsecs = '';
+ my $currxlists = '';
+ my $warning = '';
+ my $curradds = '';
+ my $currdrops = '';
+ if ( defined($settings{'internal.autoadds'}) ) {
+ $curradds = $settings{'internal.autoadds'};
+ }
+ if (defined($settings{'internal.autodrops'}) ) {
+ $currdrops = $settings{'internal.autodrops'};
+ }
+ if ( defined($settings{'internal.autostart'}) ) {
+ $currstart = $settings{'internal.autostart'};
+ }
+ if ( defined($settings{'internal.autoend'}) ) {
+ $currend = $settings{'internal.autoend'};
+ }
+ if ( defined($settings{'internal.sectionnums'}) ) {
+ $currsecs = $settings{'internal.sectionnums'};
+ }
+ if ( defined($settings{'internal.crosslistings'}) ) {
+ $currxlists = $settings{'internal.crosslistings'}
+ }
+ unless ($caller eq 'setdates') {
+ if ( ($currstart eq '') && ($currend eq '') ) {
+ $warning = "You must now use Change enrollment dates to set a start date and an end date for the enrollment (or check the 'No end date' checkbox) for the nightly adds process to actually occur.";
+ }
+ }
+ unless ( ($caller eq 'sections') || ($caller eq 'crosslist') ) {
+ if ( ($currsecs eq '') && ($currxlists eq '') ) {
+ $warning .= "You must now use Section settings and/or Change crosslistings to choose at least one section of the course, or at least one crosslisted course which will contribute enrollment to this LON-CAPA course. At present there are NO sections or crosslisted courses that are affiliated with this course that are set to contribute to the automated enrollment process.
";
+ }
+ }
+ unless ( $caller eq 'chgsettings') {
+ if ( (!$curradds) && (!$currdrops) ) {
+ $warning .= "You must now use Automated adds/drops to enable automated adds and/or drops if you want automatic enrollment updates to occur in this course.
.";
+ }
+ }
+ return $warning;
+}
+
sub print_reply () {
my ($r,$response,$caller) = @_;
$r->print("