--- loncom/interface/lonpopulate.pm 2006/02/07 05:08:32 1.34 +++ loncom/interface/lonpopulate.pm 2006/03/15 22:11:04 1.41 @@ -1,5 +1,5 @@ # automated enrollment configuration handler -# $Id: lonpopulate.pm,v 1.34 2006/02/07 05:08:32 raeburn Exp $ +# $Id: lonpopulate.pm,v 1.41 2006/03/15 22:11:04 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,22 +38,14 @@ use LONCAPA::Enrollment; ############################################################### sub header { - my $html=&Apache::lonxml::xmlbegin(); - my $bodytag=&Apache::loncommon::bodytag('Classlist Manager'); - return(< -LON-CAPA Classlist Manager - -$bodytag -ENDHEAD + return &Apache::loncommon::start_page('Classlist Manager'); } ############################################################### sub choose_header { - my $action = shift; - my $bodytag=&Apache::loncommon::bodytag('Classlist Manager'); + my ($action) = @_; + my $scripttag = qq| |; - my $html=&Apache::lonxml::xmlbegin(); - return(< -LON-CAPA Classlist Manager -$scripttag -$bodytag -ENDHEAD + + return &Apache::loncommon::start_page('Classlist Manager', + $scripttag); } sub print_mainbox { @@ -353,13 +340,13 @@ ENDONE ENDTWO if ($enrollvar{autoadds}) { $r->print(" -  Enable    -  Disable + + "); } else { $r->print(" -  Enable    -  Disable + + "); } $r->print(" @@ -370,12 +357,12 @@ ENDTWO Removals based on classlist changes:  "); if ($enrollvar{autodrops}) { $r->print(" -  Enable    -  Disable"); + + "); } else { $r->print(" -  Enable    -  Disable"); + + "); } $r->print(" @@ -389,12 +376,12 @@ Note: Any students added manually by cou - + - - + + "); } elsif ($action eq "setdates") { @@ -466,12 +453,12 @@ Note: Any students added manually by cou
- +
- - + + ENDTWO } elsif ($action eq "setaccess") { @@ -480,12 +467,12 @@ ENDTWO
- +
- - + + ENDTWO } elsif ($action eq "notify") { @@ -517,13 +504,13 @@ ENDTWO "); if ($notifycount) { $r->print(" -  Yes    -  No + + "); } else { $r->print(" -  Yes    -  No + + "); } $r->print(" @@ -614,7 +601,7 @@ ENDTWO
- +
@@ -631,9 +618,9 @@ ENDTWO } $r->print(" - - - + + + "); } elsif ($action eq "crosslist") { @@ -675,9 +662,9 @@ ENDTWO my $colflag = $i%2; $r->print(" - + $xl - + "); } @@ -709,12 +696,12 @@ ENDTWO
- +
- - + + "); } elsif ($action eq "sections") { @@ -770,7 +757,7 @@ your changes. if ($shrflag) { $r->print(""); } else { - $r->print(""); + $r->print(""); } } $r->print(" @@ -780,12 +767,12 @@ your changes. - + - - + + "); } else { @@ -817,9 +804,9 @@ your changes. my $colflag = $j%2; $r->print(" - + $currsections[$j] - + "); } @@ -850,12 +837,12 @@ your changes.
- +
- - + + "); } @@ -866,7 +853,7 @@ your changes.
$$tasktitleref{$action}
- Currently: Student photo import: $photosets[$enrollvar{showphotos}] + Currently: Student photo import: $photosets[$enrollvar{showphoto}]
@@ -876,15 +863,15 @@ your changes. Automatic import of student photos from institutional data repository:   "); - if ($enrollvar{showphotos}) { + if ($enrollvar{showphoto}) { $r->print(" -  Yes    -  No + + "); } else { $r->print(" -  Yes    -  No + + "); } $r->print(' @@ -914,7 +901,7 @@ your changes. $r->print(' '. -&mt('There was a problem determining whether course owner permission is required in order for a course coordinator to have access to student photos in this domain.').' '.&mt('As a result you will not be able to configure access to student photos at this time').'

+&mt('There was a problem determining whether course owner permission is required in order for a course coordinator to have access to student photos in this domain.').' '.&mt('As a result you will not be able to configure access to student photos at this time').'

@@ -943,10 +930,14 @@ your changes. } else { my ($ownername,$owneremail) = &get_ownerinfo($dom, $enrollvar{'courseowner'}); + my $emailstr; + if ($owneremail) { + $emailstr = "(e-mail: $owneremail)"; + } $r->print(' '. -&mt('The policies of your institution [_1] require that the course owner [_2] must indicate acceptance of the conditions of use of digital photos of registered students, before they may be made available for use in a course.',$institution,$ownername).'

'.&mt('Please direct the course owner (e-mail: [_1]) to visit the "Student photos" page in the Automated Enrollment Manager to indicate acceptance of these conditions of use',$owneremail).'

+&mt('The policies of your institution [_1] require that the course owner [_2] must indicate acceptance of the conditions of use of digital photos of registered students, before they may be made available for use in a course.',$institution,$ownername).'

'.&mt('Please direct the course owner [_1] to visit the "Student photos" page in the Automated Enrollment Manager to indicate acceptance of these conditions of use.',$emailstr).'

@@ -960,12 +951,12 @@ your changes. - + - - + + '); } elsif ($action eq "updatenow") { @@ -981,14 +972,15 @@ your changes. Add any students currently included in institutional classlist(s) but not enrolled in your LON-CAPA course.
-  Yes  No  + + Expire students previously added by nightly enrollment process, but no longer listed in institutional classlist(s).
-  Yes  -  No 
+ +
@@ -1006,7 +998,7 @@ Note: Any students previously added manu - + @@ -1021,16 +1013,20 @@ Note: Any students previously added manu $$tasktitleref{$action} "); - if ($enrollvar{'showphotos'}) { - my ($update,$commentary) = &Apache::lonnet::auto_photochoice( - $crs,$dom); - $r->print('
'.$commentary.'

+ if ($enrollvar{'showphoto'}) { + my ($update,$commentary) = &Apache::lonnet::auto_photochoice($crs, + $dom); + if ($update) { + $r->print('
'.$commentary.'

'); + } else { + $r->print(&mt('Update of photos via the Automated Enrollment Manager is unavailable in this domain.').'

'); + } } else { $r->print('Update of photos is unavailable, as import of student photos is currently disabled.
Enable this first via: '.$$tasktitleref{'photos'}.''); } @@ -1122,7 +1118,7 @@ END - + "); @@ -1258,15 +1254,14 @@ ENDFOUR ############################################################### sub print_doc_base { - my $r = shift; + my ($r) = @_; $r->print(< -
- - +
ENDBASE + $r->print(&Apache::loncommon::end_page()); } ################################################################### @@ -1333,13 +1328,13 @@ sub print_chgsettings_response { } if ($autodrops) { if ($currdrops) { - $response .= "Nightly removals based on classlist changes still enabled
"; + $response .= "Nightly removals based on classlist changes still enabled
"; } else { $response .= "Nightly removals based on classlist changes now enabled
"; } } else { if ($currdrops) { - $response .= "Nightly removals based on classlist changes now disabled
"; + $response .= "Nightly removals based on classlist changes now disabled
"; } else { $response .= "Nightly removals based on classlist changes still disabled"; } @@ -1440,7 +1435,7 @@ 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 1.30 am $nextupdate. If you wish to immediately enroll 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 immediately enroll registered students included in the institutional classlist for this class, please visit the roster update page.
|; } } $warning = &warning_message($dom,$crs,$action); @@ -1540,7 +1535,7 @@ $showend.
"; $firstaccess = "a date prior to today"; } if (($nowstamp >= $startaccess) && ($accessgiven == 0)) { - $response .= qq|
Although you have now set the first access date to $firstaccess, automatic enrollment will not occur until the next automatic enrollment update occurs for all LON-CAPA courses $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 access date to $firstaccess, automatic enrollment will not occur until the next automatic enrollment update occurs for all LON-CAPA courses $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); @@ -1714,13 +1709,13 @@ sub print_crosslistings_menu () { - + - - - + + + ); } @@ -1997,13 +1992,13 @@ sections which contribute to enrollment - + - - - + + + ); } @@ -2111,8 +2106,11 @@ sub print_sections_response () { sub photo_permission { my ($r,$realm,$dom,$crs,$action,$tasktitleref) = @_; - my %settings = &Apache::lonnet::get('environment',['internal.courseowner', - 'internal.photopermission','internal.showphotos'],$dom,$crs); + my %settings = &Apache::lonnet::get('environment', + ['internal.courseowner', + 'internal.photopermission', + 'internal.showphoto'], + $dom,$crs); my ($showphotos,$response); if (exists($env{'form.cancel_agreement'})) { if ($env{'user.name'} eq $settings{'internal.courseowner'}) { @@ -2143,25 +2141,27 @@ sub photo_permission { $response = &mt('There was a problem processing the record of your agreement to the conditions of use. Settings for this course have been left unchanged.').'
'."\n"; } else { &print_photos_response($r,$realm,$dom,$crs,$action, - $tasktitleref,$showphotos,$env{'form.photopermission'},\%cenv); + $tasktitleref,$showphotos, + $env{'form.photopermission'},\%cenv); } } else { my ($result,$perm_reqd,$conditions) = - &Apache::lonnet::auto_photo_permission($crs,$dom); + &Apache::lonnet::auto_photo_permission($crs,$dom); my $permcheck; if ($result eq 'ok') { if ($perm_reqd eq 'yes') { if ($settings{'internal.photopermission'} eq 'yes') { &print_photos_response($r,$realm,$dom,$crs,$action, - $tasktitleref,$showphotos); + $tasktitleref,$showphotos); } else { return(&print_photo_agreement($r,$realm,$dom,$crs, - $action,$tasktitleref,$conditions, - $settings{'internal.courseowner'})); + $action,$tasktitleref, + $conditions, + $settings{'internal.courseowner'})); } } elsif ($perm_reqd eq 'no') { &print_photos_response($r,$realm,$dom,$crs,$action, - $tasktitleref,$showphotos); + $tasktitleref,$showphotos); } else { $permcheck = 'fail'; } @@ -2233,19 +2233,19 @@ function agreement_result(caller) { sub print_photos_response { my ($r,$realm,$dom,$crs,$action,$tasktitleref,$showphotos,$photopermission, - $permissionenv)=@_; + $permissionenv)=@_; my %newenv; if (defined($permissionenv)) { foreach my $key (keys(%{$permissionenv})) { if (exists($env{'request.course.id'})) { $newenv{$env{'request.course.id'}.'.'.$key} = - $$permissionenv{$key}; + $$permissionenv{$key}; } } } - my %settings = &Apache::lonnet::get('environment',['internal.showphotos'], - $dom,$crs); - my $currphotos = $settings{'internal.showphotos'}; + my %settings = &Apache::lonnet::get('environment',['internal.showphoto'], + $dom,$crs); + my $currphotos = $settings{'internal.showphoto'}; my $response = ""; if (defined($photopermission)) { if ($photopermission eq 'yes') { @@ -2255,7 +2255,7 @@ sub print_photos_response { $showphotos = 0; } } - my %cenv = ('internal.showphotos' => $showphotos); + my %cenv = ('internal.showphoto' => $showphotos); my $reply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); if ($reply !~ /^ok$/) { $response .= "There was a problem processing your requested change. The student photo retrieval setting for this course has been left unchanged.
"; @@ -2265,8 +2265,8 @@ sub print_photos_response { $response .= "Retrieval of student photos is still enabled.
"; } else { $response .= "Retrieval of student photos in now enabled.
"; - my ($update,$commentary) = &Apache::lonnet::auto_photochoice( - $crs,$dom); + my ($update,$commentary) = + &Apache::lonnet::auto_photochoice($crs,$dom); if ($update) { $response .= '
'.$commentary.'

@@ -2287,7 +2287,7 @@ onclick="javascript:document.photoupdate foreach my $key (keys(%cenv)) { if (exists($env{'request.course.id'})) { $newenv{'course.'.$env{'request.course.id'}.'.'.$key} = - $cenv{$key}; + $cenv{$key}; } } } @@ -2303,8 +2303,11 @@ sub print_photoupdate_response { my $response; my %changes; my %lt = &LONCAPA::Enrollment::photo_response_types(); - my %settings = &Apache::lonnet::get('environment',['internal.coursecode', - 'internal.sectionnums','internal.crosslistings'],$dom,$crs); + my %settings = &Apache::lonnet::get('environment', + ['internal.coursecode', + 'internal.sectionnums', + 'internal.crosslistings'], + $dom,$crs); my @allcourses = (); my %LC_code; my %affiliates; @@ -2315,10 +2318,10 @@ sub print_photoupdate_response { $outcome = &Apache::lonnet::auto_photoupdate(\%affiliates,$dom,$crs,\%changes); unless ($outcome eq 'ok') { &Apache::lonnet::logthis("lonpopulate::print_photoupdate_response". - "failed to update student photos". - " for ".$crs."\@".$dom." by ". - $env{'user.name'}." \@ ".$env{'user.domain'}. - ": ".$outcome); + "failed to update student photos". + " for ".$crs."\@".$dom." by ". + $env{'user.name'}." \@ ".$env{'user.domain'}. + ": ".$outcome); } if ($outcome eq 'ok') { if (keys(%changes) > 0) { @@ -2336,7 +2339,7 @@ function photowindow(photolink) { my @usernames = sort(split(/\&/,$changes{$type})); my $count = @usernames; $response .= ''.&mt('For [_1] students, photos ', - $count).$lt{$type}.'
    '; + $count).$lt{$type}.'
      '; foreach my $username (@usernames) { $response .= '
    • '.$username; if (($type eq 'new') || ($type eq 'same') || ($type eq 'update')) { @@ -2364,8 +2367,8 @@ sub get_ownerinfo { my ($ownername,$owneremail); if ($owner) { $ownername=&Apache::loncommon::plainname($owner,$dom,'firstname'); - my %ownerinfo = &Apache::lonnet::get('environment','permanentemail', - $dom,$owner); + my %ownerinfo = &Apache::lonnet::get('environment',['permanentemail'], + $dom,$owner); $owneremail = $ownerinfo{'permanentemail'}; } return ($ownername,$owneremail); @@ -2384,11 +2387,11 @@ sub print_update_result () { my $logmsg = ''; my $newusermsg = ''; my %phototypes = (); - my %settings = &Apache::lonnet::get('environment',['internal.coursecode','internal.sectionnums','internal.crosslistings','internal.authtype','internal.autharg','internal.showphotos'],$dom,$crs); + my %settings = &Apache::lonnet::get('environment',['internal.coursecode','internal.sectionnums','internal.crosslistings','internal.authtype','internal.autharg','internal.showphoto'],$dom,$crs); my $coursecode = $settings{'internal.coursecode'}; my $authtype = $settings{'internal.authtype'}; my $autharg = $settings{'internal.autharg'}; - my $showphotos = $settings{'internal.showphotos'}; + my $showphotos = $settings{'internal.showphoto'}; my ($startaccess,$endaccess) = &get_dates_from_form(); if ( exists($env{'form.updateadds'}) ) { $updateadds = $env{'form.updateadds'}; @@ -2445,15 +2448,15 @@ sub get_institutional_codes { my @currsections = (); my @currxlists = (); my $coursecode = $$settings{'internal.coursecode'}; - + if ($$settings{'internal.sectionnums'} ne '') { @currsections = split(/,/,$$settings{'internal.sectionnums'}); } - + if ($$settings{'internal.crosslistings'} ne '') { @currxlists = split(/,/,$$settings{'internal.crosslistings'}); } - + if (@currxlists > 0) { foreach (@currxlists) { if (m/^([^:]+):(\w*)$/) { @@ -2767,11 +2770,11 @@ sub get_dates_from_form { sub date_setting_table { my ($starttime,$endtime,$action) = @_; my ($startform,$endform) = &setup_date_selectors($starttime,$endtime,$action); - my $perpetual = ''; + $perpetual.= ' />'.' no ending date'; my $start_table = ''; $start_table .= "\n"; $start_table .= ''.
      Starting Date