--- 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("