version 1.117, 2004/07/26 21:57:27
|
version 1.126, 2005/03/10 17:33:57
|
Line 43 use Apache::lonlocal;
|
Line 43 use Apache::lonlocal;
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub header { |
sub header { |
|
my $html=&Apache::lonxml::xmlbegin(); |
my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager'); |
my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager'); |
my $title = &mt('LON-CAPA Enrollment Manager'); |
my $title = &mt('LON-CAPA Enrollment Manager'); |
return(<<ENDHEAD); |
return(<<ENDHEAD); |
<html> |
$html |
<head> |
<head> |
<title>$title</title> |
<title>$title</title> |
</head> |
</head> |
Line 136 sub domain_form {
|
Line 137 sub domain_form {
|
############################################################### |
############################################################### |
# Menu Phase One |
# Menu Phase One |
sub print_main_menu { |
sub print_main_menu { |
my $r=shift; |
my ($r,$enrl_permission,$view_permission)=@_; |
my %Text = &Apache::lonlocal::texthash |
# |
('upload' => 'Upload a class list', |
|
'enrollone' => 'Enroll a single student', |
|
'modify' => 'Modify student data', |
|
'view' => 'View Class List', |
|
'drop' => 'Drop Students', |
|
'populate' => 'Automated Enrollment Manager'); |
|
my %help=(); |
|
foreach ('Course_Drop_Student','Course_Add_Student', |
|
'Course_Modify_Student_Data','Course_View_Class_List', |
|
'Course_Create_Class_List') { |
|
$help{$_}=&Apache::loncommon::help_open_topic($_); |
|
} |
|
|
|
$r->print(<<END); |
|
<p> |
|
<font size="+1"> |
|
<a href="/adm/dropadd?action=upload">$Text{'upload'}</a> |
|
</font>$help{'Course_Create_Class_List'} |
|
</p><p> |
|
<font size="+1"> |
|
<a href="/adm/dropadd?action=enrollstudent">$Text{'enrollone'}</a> |
|
</font>$help{'Course_Add_Student'} |
|
</p><p> |
|
<font size="+1"> |
|
<a href="/adm/dropadd?action=modifystudent">$Text{'modify'}</a> |
|
</font>$help{'Course_Modify_Student_Data'} |
|
</p><p> |
|
<font size="+1"> |
|
<a href="/adm/dropadd?action=classlist">$Text{'view'}</a> |
|
</font>$help{'Course_View_Class_List'} |
|
</p><p> |
|
<font size="+1"> |
|
<a href="/adm/dropadd?action=drop">$Text{'drop'}</a> |
|
</font>$help{'Course_Drop_Student'} |
|
</p><p> |
|
END |
|
my ($cdom,$cnum) = split/_/,$ENV{'request.course.id'}; |
my ($cdom,$cnum) = split/_/,$ENV{'request.course.id'}; |
if (&Apache::lonnet::auto_run($cnum,$cdom) ) { |
my @menu = |
$r->print(<<END); |
( |
<font size="+1"> |
{ text => 'Upload a class list', |
<a href="/adm/populate">$Text{'populate'}</a> |
help => 'Course_Create_Class_List', |
</font> |
action => 'upload', |
END |
permission => $enrl_permission, |
|
}, |
|
{ text => 'Enroll a single student', |
|
help => 'Course_Add_Student', |
|
action => 'enrollstudent', |
|
permission => $enrl_permission, |
|
}, |
|
{ text => 'Modify student data', |
|
help => 'Course_Modify_Student_Data', |
|
action => 'modifystudent', |
|
permission => $enrl_permission, |
|
}, |
|
{ text => 'View Class List', |
|
help => 'Course_View_Class_List', |
|
action => 'classlist', |
|
permission => $view_permission, |
|
}, |
|
{ text => 'Drop Students', |
|
help => 'Course_Drop_Student', |
|
action => 'drop', |
|
permission => $enrl_permission, |
|
}, |
|
{ text => 'Automated Enrollment Manager', |
|
permission => &Apache::lonnet::auto_run($cnum,$cdom), |
|
url => '/adm/populate', |
|
}, |
|
); |
|
my $menu_html = ''; |
|
foreach my $menu_item (@menu) { |
|
next if (! $menu_item->{'permission'}); |
|
$menu_html.='<p>'; |
|
$menu_html.='<font size="+1">'; |
|
if (exists($menu_item->{'url'})) { |
|
$menu_html.=qq{<a href="$menu_item->{'url'}">}; |
|
} else { |
|
$menu_html.= |
|
qq{<a href="/adm/dropadd?action=$menu_item->{'action'}">}; |
|
} |
|
$menu_html.= &mt($menu_item->{'text'}).'</a></font>'; |
|
if (exists($menu_item->{'help'})) { |
|
$menu_html.= |
|
&Apache::loncommon::help_open_topic($menu_item->{'help'}); |
|
} |
|
$menu_html.='</p>'.$/; |
} |
} |
|
$r->print($menu_html); |
|
return; |
} |
} |
|
|
############################################################### |
############################################################### |
Line 309 END
|
Line 319 END
|
return; |
return; |
} |
} |
// alert('current.radiovalue = '+current.radiovalue); |
// alert('current.radiovalue = '+current.radiovalue); |
if (current.radiovalue == null || current.radiovalue == 'nochange') { |
if (current.radiovalue == null || current.radiovalue == '' || current.radiovalue == 'nochange') { |
// They did not check any of the login radiobuttons. |
// They did not check any of the login radiobuttons. |
alert('$alert{'authen'}'); |
alert('$alert{'authen'}'); |
return; |
return; |
Line 761 sub enroll_single_student {
|
Line 771 sub enroll_single_student {
|
$ENV{'form.clast'},$ENV{'form.cgen'}, |
$ENV{'form.clast'},$ENV{'form.cgen'}, |
$ENV{'form.csec'},$enddate, |
$ENV{'form.csec'},$enddate, |
$startdate,$ENV{'form.forceid'}, |
$startdate,$ENV{'form.forceid'}, |
$desiredhost); |
$desiredhost,$ENV{'form.emailaddress'}); |
if ($login_result =~ /^ok/) { |
if ($login_result =~ /^ok/) { |
$r->print($login_result); |
$r->print($login_result); |
$r->print("<p> ".&mt('If active, the new role will be available when the student next logs in to LON-CAPA.')."</p>"); |
$r->print("<p> ".&mt('If active, the new role will be available when the student next logs in to LON-CAPA.')."</p>"); |
Line 914 sub get_student_username_domain_form {
|
Line 924 sub get_student_username_domain_form {
|
<input type="submit" name="Begin Enrollment" value="$lt{'been'}" /> |
<input type="submit" name="Begin Enrollment" value="$lt{'been'}" /> |
</td></tr> |
</td></tr> |
</table> |
</table> |
|
<script type="text/javascript"> |
|
// the if prevents the script error if the browser can not handle this |
|
if ( document.studentform.cuname ) { document.studentform.cuname.focus(); } |
|
</script> |
END |
END |
return; |
return; |
} |
} |
Line 924 sub print_enroll_single_student_form {
|
Line 938 sub print_enroll_single_student_form {
|
# |
# |
my $username = $ENV{'form.cuname'}; |
my $username = $ENV{'form.cuname'}; |
my $domain = $ENV{'form.cudomain'}; |
my $domain = $ENV{'form.cudomain'}; |
$username=~s/[\W|_]//gs; |
$username=~s/\W//gs; |
$domain=~s/[\W|_]//gs; |
$domain=~s/\W//gs; |
my $home = &Apache::lonnet::homeserver($username,$domain); |
my $home = &Apache::lonnet::homeserver($username,$domain); |
# $new_user flags whether we are creating a new user or using an old one |
# $new_user flags whether we are creating a new user or using an old one |
my $new_user = 1; |
my $new_user = 1; |
Line 970 sub print_enroll_single_student_form {
|
Line 984 sub print_enroll_single_student_form {
|
'hs' => "Home Server", |
'hs' => "Home Server", |
'pswd' => "Password", |
'pswd' => "Password", |
'psam' => "Please select an authentication mechanism", |
'psam' => "Please select an authentication mechanism", |
|
'mail' => "Email Address" |
); |
); |
$user_data_html = <<END; |
$user_data_html = <<END; |
<h3>$lt{'udf'} $username\@$domain</h3> |
<h3>$lt{'udf'} $username\@$domain</h3> |
Line 984 sub print_enroll_single_student_form {
|
Line 999 sub print_enroll_single_student_form {
|
<td><input type="text" name="cgen" size="5"> </td></tr> |
<td><input type="text" name="cgen" size="5"> </td></tr> |
<tr><th>$lt{'hs'}:</th> |
<tr><th>$lt{'hs'}:</th> |
<td>$homeserver_form</td></tr> |
<td>$homeserver_form</td></tr> |
|
<tr><th>$lt{'mail'}:</th> |
|
<td><input type="text" name="emailaddress" size="20" /></td></tr> |
</table> |
</table> |
<h3>$lt{'pswd'}</h3> |
<h3>$lt{'pswd'}</h3> |
$lt{'psam'} |
$lt{'psam'} |
Line 1006 END
|
Line 1023 END
|
'mn' => "Middle Name", |
'mn' => "Middle Name", |
'ln' => "Last Name", |
'ln' => "Last Name", |
'gen' => "Generation", |
'gen' => "Generation", |
|
'mail' => "Email Address", |
); |
); |
$user_data_html = <<END; |
$user_data_html = <<END; |
<h3>$lt{'udf'} $username\@$domain</h3> |
<h3>$lt{'udf'} $username\@$domain</h3> |
Line 1027 END
|
Line 1045 END
|
<td> |
<td> |
<input type="text" name="cgen" value="$uenv{'generation'}" size="5" /> |
<input type="text" name="cgen" value="$uenv{'generation'}" size="5" /> |
</td></tr> |
</td></tr> |
|
<tr><th>$lt{'mail'}:</th> |
|
<td> |
|
<input type="text" name="emailaddress" value="$uenv{'permanentemail'}" size="20" /> |
|
</td></tr> |
</table> |
</table> |
END |
END |
} |
} |
Line 1304 END
|
Line 1326 END
|
} |
} |
} elsif ($mode eq 'excel') { |
} elsif ($mode eq 'excel') { |
# Create the excel spreadsheet |
# Create the excel spreadsheet |
$excel_filename = '/prtspool/'. |
($excel_workbook,$excel_filename,$format) = |
$ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'. |
&Apache::loncommon::create_workbook($r); |
time.'_'.rand(1000000000).'.xls'; |
return if (! defined($excel_workbook)); |
$excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'. |
|
$excel_filename); |
|
$excel_workbook->set_tempdir('/home/httpd/perl/tmp'); |
|
# |
|
$format = &Apache::loncommon::define_excel_formats($excel_workbook); |
|
$excel_sheet = $excel_workbook->addworksheet('classlist'); |
$excel_sheet = $excel_workbook->addworksheet('classlist'); |
# |
# |
my $description = 'Class List for '. |
my $description = 'Class List for '. |
Line 1377 END
|
Line 1394 END
|
$cellentry = '<b>'.&mt('auto').'</b> <input type="checkbox" name="chgauto" value="'.$username.':'.$domain.'" /> Change'; |
$cellentry = '<b>'.&mt('auto').'</b> <input type="checkbox" name="chgauto" value="'.$username.':'.$domain.'" /> Change'; |
$autocount ++; |
$autocount ++; |
} else { |
} else { |
$cellentry = '<table border="0" cellspacing="0"><tr><td rowspan="2"><b>'.&mt('manual').'</b></td><td><input type="checkbox" name="chgmanual" value="'.$username.':'.$domain.'" /> Change</td></tr><tr><td>'; |
$cellentry = '<table border="0" cellspacing="0"><tr><td rowspan="2"><b>'.&mt('manual').'</b></td><td><nobr><input type="checkbox" name="chgmanual" value="'.$username.':'.$domain.'" /> Change</nobr></td></tr><tr><td><nobr>'; |
$manualcount ++; |
$manualcount ++; |
if ($lockedtype) { |
if ($lockedtype) { |
$cellentry .= '<input type="checkbox" name="unlockchg" value="'.$username.':'.$domain.'" /> '.&mt('Unlock'); |
$cellentry .= '<input type="checkbox" name="unlockchg" value="'.$username.':'.$domain.'" /> '.&mt('Unlock'); |
Line 1386 END
|
Line 1403 END
|
$cellentry .= '<input type="checkbox" name="lockchg" value="'.$username.':'.$domain.'" /> '.&mt('Lock'); |
$cellentry .= '<input type="checkbox" name="lockchg" value="'.$username.':'.$domain.'" /> '.&mt('Lock'); |
$lockcount ++; |
$lockcount ++; |
} |
} |
$cellentry .= '</td></tr></table>'; |
$cellentry .= '</nobr></td></tr></table>'; |
} |
} |
$r->print("<td>$cellentry<td>\n "); |
$r->print("<td>$cellentry<td>\n "); |
} else { |
} else { |
Line 2264 sub handler {
|
Line 2281 sub handler {
|
text=>"Enrollment Manager", |
text=>"Enrollment Manager", |
faq=>9,bug=>'Instructor Interface',}); |
faq=>9,bug=>'Instructor Interface',}); |
# Needs to be in a course |
# Needs to be in a course |
if (! (($ENV{'request.course.fn'}) && |
if (! ($ENV{'request.course.fn'})) { |
(&Apache::lonnet::allowed('cst',$ENV{'request.course.id'})))) { |
# Not in a course |
# Not in a course, or not allowed to modify parms |
|
$ENV{'user.error.msg'}= |
$ENV{'user.error.msg'}= |
"/adm/dropadd:cst:0:0:Cannot drop or add students"; |
"/adm/dropadd:cst:0:0:Cannot drop or add students"; |
return HTTP_NOT_ACCEPTABLE; |
return HTTP_NOT_ACCEPTABLE; |
} |
} |
# |
# |
|
my $view_permission = |
|
&Apache::lonnet::allowed('vcl',$ENV{'request.course.id'}); |
|
my $enrl_permission = |
|
&Apache::lonnet::allowed('cst',$ENV{'request.course.id'}); |
|
if (! $view_permission && ! $enrl_permission) { |
|
$ENV{'user.error.msg'}= |
|
"/adm/dropadd:cst:0:0:Cannot drop or add students"; |
|
return HTTP_NOT_ACCEPTABLE; |
|
} |
|
# |
# Only output the header information if they did not request csv format |
# Only output the header information if they did not request csv format |
# |
# |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
Line 2285 sub handler {
|
Line 2311 sub handler {
|
if (! exists($ENV{'form.action'})) { |
if (! exists($ENV{'form.action'})) { |
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
(undef,'Enrollment Manager')); |
(undef,'Enrollment Manager')); |
&print_main_menu($r); |
&print_main_menu($r,$enrl_permission,$view_permission); |
} elsif ($ENV{'form.action'} eq 'upload') { |
} elsif ($ENV{'form.action'} eq 'upload' && $enrl_permission) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>'/adm/dropadd?action=upload&state=', |
({href=>'/adm/dropadd?action=upload&state=', |
text=>"Upload Classlist"}); |
text=>"Upload Classlist"}); |
Line 2305 sub handler {
|
Line 2331 sub handler {
|
} else { |
} else { |
&print_first_courselist_upload_form($r); |
&print_first_courselist_upload_form($r); |
} |
} |
} elsif ($ENV{'form.action'} eq 'drop') { |
} elsif ($ENV{'form.action'} eq 'drop' && $enrl_permission) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>'/adm/dropadd?action=drop', |
({href=>'/adm/dropadd?action=drop', |
text=>"Drop Students"}); |
text=>"Drop Students"}); |
Line 2318 sub handler {
|
Line 2344 sub handler {
|
} else { |
} else { |
&print_drop_menu($r); |
&print_drop_menu($r); |
} |
} |
} elsif ($ENV{'form.action'} eq 'enrollstudent') { |
} elsif ($ENV{'form.action'} eq 'enrollstudent' && $enrl_permission) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>'/adm/dropadd?action=enrollstudent', |
({href=>'/adm/dropadd?action=enrollstudent', |
text=>"Enroll Student"}); |
text=>"Enroll Student"}); |
Line 2333 sub handler {
|
Line 2359 sub handler {
|
} else { |
} else { |
&get_student_username_domain_form($r); |
&get_student_username_domain_form($r); |
} |
} |
} elsif ($ENV{'form.action'} eq 'classlist') { |
} elsif ($ENV{'form.action'} eq 'classlist' && $view_permission) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>'/adm/dropadd?action=classlist', |
({href=>'/adm/dropadd?action=classlist', |
text=>"View Classlist"}); |
text=>"View Classlist"}); |
Line 2348 sub handler {
|
Line 2374 sub handler {
|
} else { |
} else { |
&print_html_classlist($r,undef); |
&print_html_classlist($r,undef); |
} |
} |
} elsif ($ENV{'form.action'} eq 'modifystudent') { |
} elsif ($ENV{'form.action'} eq 'modifystudent' && $enrl_permission) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>'/adm/dropadd?action=modifystudent', |
({href=>'/adm/dropadd?action=modifystudent', |
text=>"Modify Student Data"}); |
text=>"Modify Student Data"}); |
Line 2370 sub handler {
|
Line 2396 sub handler {
|
"Someone should fix this."); |
"Someone should fix this."); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
(undef,'Enrollment Manager')); |
(undef,'Enrollment Manager')); |
&print_main_menu($r); |
&print_main_menu($r,$enrl_permission,$view_permission); |
} |
} |
# |
# |
# Finish up |
# Finish up |