version 1.95, 2003/12/22 22:50:37
|
version 1.104, 2004/02/27 14:59:19
|
Line 143 sub print_main_menu {
|
Line 143 sub print_main_menu {
|
'view' => 'View Class List', |
'view' => 'View Class List', |
'drop' => 'Drop Students', |
'drop' => 'Drop Students', |
'populate' => 'Automated Enrollment Manager'); |
'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); |
$r->print(<<END); |
<p> |
<p> |
<font size="+1"> |
<font size="+1"> |
<a href="/adm/dropadd?action=upload">$Text{'upload'}</a> |
<a href="/adm/dropadd?action=upload">$Text{'upload'}</a> |
</font> |
</font>$help{'Course_Create_Class_List'} |
</p><p> |
</p><p> |
<font size="+1"> |
<font size="+1"> |
<a href="/adm/dropadd?action=enrollstudent">$Text{'enrollone'}</a> |
<a href="/adm/dropadd?action=enrollstudent">$Text{'enrollone'}</a> |
</font> |
</font>$help{'Course_Add_Student'} |
</p><p> |
</p><p> |
<font size="+1"> |
<font size="+1"> |
<a href="/adm/dropadd?action=modifystudent">$Text{'modify'}</a> |
<a href="/adm/dropadd?action=modifystudent">$Text{'modify'}</a> |
</font> |
</font>$help{'Course_Modify_Student_Data'} |
</p><p> |
</p><p> |
<font size="+1"> |
<font size="+1"> |
<a href="/adm/dropadd?action=classlist">$Text{'view'}</a> |
<a href="/adm/dropadd?action=classlist">$Text{'view'}</a> |
</font> |
</font>$help{'Course_View_Class_List'} |
</p><p> |
</p><p> |
<font size="+1"> |
<font size="+1"> |
<a href="/adm/dropadd?action=drop">$Text{'drop'}</a> |
<a href="/adm/dropadd?action=drop">$Text{'drop'}</a> |
</font> |
</font>$help{'Course_Drop_Student'} |
</p><p> |
</p><p> |
<font size="+1"> |
<font size="+1"> |
<a href="/adm/populate">$Text{'populate'}</a> |
<a href="/adm/populate">$Text{'populate'}</a> |
Line 182 sub hidden_input {
|
Line 188 sub hidden_input {
|
sub print_upload_manager_header { |
sub print_upload_manager_header { |
my ($r,$datatoken,$distotal,$krbdefdom)=@_; |
my ($r,$datatoken,$distotal,$krbdefdom)=@_; |
my $javascript; |
my $javascript; |
|
# |
if (! exists($ENV{'form.upfile_associate'})) { |
if (! exists($ENV{'form.upfile_associate'})) { |
$ENV{'form.upfile_associate'} = 'forward'; |
$ENV{'form.upfile_associate'} = 'forward'; |
} |
} |
Line 197 sub print_upload_manager_header {
|
Line 204 sub print_upload_manager_header {
|
} else { |
} else { |
$javascript=&upload_manager_javascript_forward_associate(); |
$javascript=&upload_manager_javascript_forward_associate(); |
} |
} |
my $javascript_validations=&javascript_validations('auth',$krbdefdom); |
# |
|
# Deal with restored settings |
|
my $password_choice = ''; |
|
if (exists($ENV{'form.ipwd_choice'}) && |
|
$ENV{'form.ipwd_choice'} ne '') { |
|
# If a column was specified for password, assume it is for an |
|
# internal password. This is a bug waiting to be filed (could be |
|
# local or krb auth instead of internal) but I do not have the |
|
# time to mess around with this now. |
|
$password_choice = 'int'; |
|
} |
|
# |
|
my $javascript_validations=&javascript_validations('auth',$krbdefdom, |
|
$password_choice); |
my $checked=(($ENV{'form.noFirstLine'})?' checked="1"':''); |
my $checked=(($ENV{'form.noFirstLine'})?' checked="1"':''); |
$r->print('<h3>'.&mt('Uploading Class List')."</h3>\n". |
$r->print('<h3>'.&mt('Uploading Class List')."</h3>\n". |
"<hr>\n". |
"<hr>\n". |
Line 227 sub print_upload_manager_header {
|
Line 247 sub print_upload_manager_header {
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub javascript_validations { |
sub javascript_validations { |
my ($mode,$krbdefdom)=@_; |
my ($mode,$krbdefdom,$curr_authtype,$curr_authfield)=@_; |
my $authheader; |
my $authheader; |
if ($mode eq 'auth') { |
if ($mode eq 'auth') { |
my %param = ( formname => 'studentform', |
my %param = ( formname => 'studentform', |
kerb_def_dom => $krbdefdom ); |
kerb_def_dom => $krbdefdom, |
|
curr_authtype => $curr_authtype); |
$authheader = &Apache::loncommon::authform_header(%param); |
$authheader = &Apache::loncommon::authform_header(%param); |
} elsif ($mode eq 'createcourse') { |
} elsif ($mode eq 'createcourse') { |
my %param = ( formname => 'ccrs', |
my %param = ( formname => 'ccrs', |
kerb_def_dom => $krbdefdom ); |
kerb_def_dom => $krbdefdom, |
|
curr_authtype => $curr_authtype ); |
|
$authheader = &Apache::loncommon::authform_header(%param); |
|
} elsif ($mode eq 'modifycourse') { |
|
my %param = ( formname => 'cmod', |
|
kerb_def_dom => $krbdefdom, |
|
mode => 'modifycourse', |
|
curr_authtype => $curr_authtype, |
|
curr_autharg => $curr_authfield ); |
$authheader = &Apache::loncommon::authform_header(%param); |
$authheader = &Apache::loncommon::authform_header(%param); |
} |
} |
|
|
|
|
my %alert = &Apache::lonlocal::texthash |
my %alert = &Apache::lonlocal::texthash |
(username => 'You need to specify the username field.', |
(username => 'You need to specify the username field.', |
Line 255 sub javascript_validations {
|
Line 285 sub javascript_validations {
|
my $function_name =(<<END); |
my $function_name =(<<END); |
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail) { |
function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail) { |
END |
END |
my $auth_checks = (<<END); |
my $auth_checks; |
var foundatype=0; |
if ($mode eq 'createcourse') { |
|
$auth_checks .= (<<END); |
|
if (vf.autoadds[0].checked == true) { |
|
if (current.radiovalue == null || current.radiovalue == 'nochange') { |
|
alert('$alert{'authen'}'); |
|
return; |
|
} |
|
} |
END |
END |
unless ($mode eq 'createcourse') { |
} else { |
$auth_checks .= (<<END); |
$auth_checks .= (<<END); |
|
var foundatype=0; |
if (founduname==0) { |
if (founduname==0) { |
alert('$alert{'username'}'); |
alert('$alert{'username'}'); |
return; |
return; |
} |
} |
END |
|
} |
|
$auth_checks .= (<<END); |
|
// alert('current.radiovalue = '+current.radiovalue); |
// alert('current.radiovalue = '+current.radiovalue); |
if (current.radiovalue == null || current.radiovalue == 'nochange') { |
if (current.radiovalue == null || 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; |
} |
} |
|
END |
|
} |
|
if ($mode eq 'createcourse') { |
|
$auth_checks .= " |
|
if ( (vf.autoadds[0].checked == true) && |
|
(vf.elements[current.argfield].value == null || vf.elements[current.argfield].value == '') ) { |
|
"; |
|
} elsif ($mode eq 'modifycourse') { |
|
$auth_checks .= " |
|
if (vf.elements[current.argfield].value == null || vf.elements[current.argfield].value == '') { |
|
"; |
|
} |
|
if ( ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
|
$auth_checks .= (<<END); |
|
var alertmsg = ''; |
|
switch (current.radiovalue) { |
|
case 'krb': |
|
alertmsg = '$alert{'krb'}'; |
|
break; |
|
default: |
|
alertmsg = ''; |
|
} |
|
if (alertmsg != '') { |
|
alert(alertmsg); |
|
return; |
|
} |
|
} |
|
END |
|
} else { |
|
$auth_checks .= (<<END); |
foundatype=1; |
foundatype=1; |
if (current.argfield == null || current.argfield == '') { |
if (current.argfield == null || current.argfield == '') { |
var alertmsg = ''; |
var alertmsg = ''; |
Line 296 END
|
Line 361 END
|
} |
} |
} |
} |
END |
END |
|
} |
my $optional_checks = ''; |
my $optional_checks = ''; |
if ($mode eq 'createcourse') { |
if ( ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
$optional_checks = (<<END); |
$optional_checks = (<<END); |
vf.submit(); |
vf.submit(); |
} |
} |
Line 340 END
|
Line 406 END
|
END |
END |
} |
} |
my $result = $function_name; |
my $result = $function_name; |
if ( ($mode eq 'auth') || ($mode eq 'createcourse') ) { |
if ( ($mode eq 'auth') || ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
$result .= $auth_checks; |
$result .= $auth_checks; |
} |
} |
$result .= $optional_checks; |
$result .= $optional_checks; |
if ( ($mode eq 'auth') || ($mode eq 'createcourse') ) { |
if ( ($mode eq 'auth') || ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) { |
$result .= $authheader; |
$result .= $authheader; |
} |
} |
return $result; |
return $result; |
Line 509 sub print_upload_manager_footer {
|
Line 575 sub print_upload_manager_footer {
|
kerb_def_dom => $krbdefdom, |
kerb_def_dom => $krbdefdom, |
kerb_def_auth => $krbdef |
kerb_def_auth => $krbdef |
); |
); |
|
if (exists($ENV{'form.ipwd_choice'}) && |
|
defined($ENV{'form.ipwd_choice'}) && |
|
$ENV{'form.ipwd_choice'} ne '') { |
|
$param{'curr_authtype'} = 'int'; |
|
} |
my $krbform = &Apache::loncommon::authform_kerberos(%param); |
my $krbform = &Apache::loncommon::authform_kerberos(%param); |
my $intform = &Apache::loncommon::authform_internal(%param); |
my $intform = &Apache::loncommon::authform_internal(%param); |
my $locform = &Apache::loncommon::authform_local(%param); |
my $locform = &Apache::loncommon::authform_local(%param); |
Line 549 sub print_upload_manager_footer {
|
Line 620 sub print_upload_manager_footer {
|
############################################################### |
############################################################### |
sub print_upload_manager_form { |
sub print_upload_manager_form { |
my $r=shift; |
my $r=shift; |
|
|
my $firstLine; |
my $firstLine; |
my $datatoken; |
my $datatoken; |
if (!$ENV{'form.datatoken'}) { |
if (!$ENV{'form.datatoken'}) { |
Line 565 sub print_upload_manager_form {
|
Line 637 sub print_upload_manager_form {
|
my $distotal=$total+1; |
my $distotal=$total+1; |
my $today=time; |
my $today=time; |
my $halfyear=$today+15552000; |
my $halfyear=$today+15552000; |
|
# |
|
# Restore memorized settings |
|
&Apache::loncommon::restore_course_settings |
|
('enrollment_upload',{ 'username_choice' => 'scalar', # column settings |
|
'names_choice' => 'scalar', |
|
'fname_choice' => 'scalar', |
|
'mname_choice' => 'scalar', |
|
'lname_choice' => 'scalar', |
|
'gen_choice' => 'scalar', |
|
'id_choice' => 'scalar', |
|
'sec_choice' => 'scalar', |
|
'ipwd_choice' => 'scalar', |
|
'email_choice' => 'scalar', |
|
}); |
|
# |
|
# Determine kerberos parameters as appropriate |
my $defdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; |
my $defdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; |
my ($krbdef,$krbdefdom) = |
my ($krbdef,$krbdefdom) = |
&Apache::loncommon::get_kerberos_defaults($defdom); |
&Apache::loncommon::get_kerberos_defaults($defdom); |
|
# |
&print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom); |
&print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom); |
my $i; |
my $i; |
my $keyfields; |
my $keyfields; |
if ($total>=0) { |
if ($total>=0) { |
my @field=(['username',&mt('Username')], |
my @field= |
['names',&mt('Last Name, First Names')], |
(['username',&mt('Username'), $ENV{'form.username_choice'}], |
['fname',&mt('First Name')], |
['names',&mt('Last Name, First Names'),$ENV{'form.names_choice'}], |
['mname',&mt('Middle Names/Initials')], |
['fname',&mt('First Name'), $ENV{'form.fname_choice'}], |
['lname',&mt('Last Name')], |
['mname',&mt('Middle Names/Initials'),$ENV{'form.mname_choice'}], |
['gen',&mt('Generation')], |
['lname',&mt('Last Name'), $ENV{'form.lname_choice'}], |
['id',&mt('ID/Student Number')], |
['gen', &mt('Generation'), $ENV{'form.gen_choice'}], |
['sec',&mt('Group/Section')], |
['id', &mt('ID/Student Number'),$ENV{'form.id_choice'}], |
['ipwd',&mt('Initial Password')], |
['sec', &mt('Group/Section'), $ENV{'form.sec_choice'}], |
['email',&mt('EMail Address')]); |
['ipwd', &mt('Initial Password'),$ENV{'form.ipwd_choice'}], |
|
['email',&mt('EMail Address'), $ENV{'form.email_choice'}]); |
if ($ENV{'form.upfile_associate'} eq 'reverse') { |
if ($ENV{'form.upfile_associate'} eq 'reverse') { |
&Apache::loncommon::csv_print_samples($r,\@records); |
&Apache::loncommon::csv_print_samples($r,\@records); |
$i=&Apache::loncommon::csv_print_select_table($r,\@records, |
$i=&Apache::loncommon::csv_print_select_table($r,\@records, |
Line 1010 sub print_drop_menu {
|
Line 1100 sub print_drop_menu {
|
|
|
# ============================================== view classlist |
# ============================================== view classlist |
sub print_html_classlist { |
sub print_html_classlist { |
my $r=shift; |
my ($r,$mode) = @_; |
if (! exists($ENV{'form.sortby'})) { |
if (! exists($ENV{'form.sortby'})) { |
$ENV{'form.sortby'} = 'username'; |
$ENV{'form.sortby'} = 'username'; |
} |
} |
Line 1018 sub print_html_classlist {
|
Line 1108 sub print_html_classlist {
|
$ENV{'form.Status'} = 'Active'; |
$ENV{'form.Status'} = 'Active'; |
} |
} |
my $status_select = &Apache::lonhtmlcommon::StatusOptions |
my $status_select = &Apache::lonhtmlcommon::StatusOptions |
($ENV{'form.Status'},'studentform'); |
($ENV{'form.Status'}); |
|
my $cid=$ENV{'request.course.id'}; |
|
my $cdom=$ENV{'course.'.$cid.'.domain'}; |
|
my $cnum=$ENV{'course.'.$cid.'.num'}; |
|
# |
|
# List course personnel |
|
my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum); |
|
$r->print('<br /><table border="2">'); |
|
foreach (sort keys %coursepersonnel) { |
|
$r->print('<tr><td>'.$_.'</td><td>'); |
|
foreach (split(/\,/,$coursepersonnel{$_})) { |
|
my ($puname,$pudom)=split(/\:/,$_); |
|
$r->print(' '.&Apache::loncommon::aboutmewrapper( |
|
&Apache::loncommon::plainname($puname, |
|
$pudom),$puname,$pudom)); |
|
} |
|
$r->print('</td></tr>'); |
|
} |
|
$r->print('</table>'); |
|
# |
|
# Interface output |
my $CCL=&mt('Current Class List'); |
my $CCL=&mt('Current Class List'); |
$r->print(<<END); |
$r->print('<input type="hidden" name="action" value="'. |
<input type="hidden" name="action" value="$ENV{'form.action'}" /> |
$ENV{'form.action'}.'" />'); |
<input type="hidden" name="state" value="" /> |
$r->print("<p>\n"); |
<p> |
|
<font size="+1">$CCL</font> |
|
|
|
END |
|
if ($ENV{'form.action'} ne 'modifystudent') { |
if ($ENV{'form.action'} ne 'modifystudent') { |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash('csv' => "CSV", |
'ef' => "Excel format", |
'excel' => "Excel", |
'ss' => "Student Status", |
'html' => 'HTML'); |
); |
$r->print('<font size="+1">'); |
$r->print(<<END); |
my $output_selector = '<select size="1" name="state" >'; |
<font size="+1"> |
if ($ENV{'form.state'} !~ /^(csv|excel|html)$/ ) { |
<a href="javascript:document.studentform.state.value='csv';document.studentform.submit();">CSV format</a> |
$ENV{'form.state'} = 'html'; |
|
} |
<a href="javascript:document.studentform.state.value='excel';document.studentform.submit();">$lt{'ef'}</a> |
foreach my $outputformat ('html','csv','excel') { |
</font> |
my $option = '<option value="'.$outputformat.'" '; |
|
if ($outputformat eq $ENV{'form.state'}) { |
$lt{'ss'}: |
$option .= 'selected '; |
END |
} |
|
$option .='>'.$lt{$outputformat}.'</option>'; |
|
$output_selector .= "\n".$option; |
|
} |
|
$output_selector .= '</select>'; |
|
$r->print(&mt('Output Format: [_1]',$output_selector).(' 'x3)); |
} |
} |
$r->print($status_select."</p>\n"); |
$r->print(&mt('Student Status: [_1]',$status_select)."\n"); |
my $cid=$ENV{'request.course.id'}; |
$r->print('<input type="submit" value="'.&mt('Refresh Display').'" />'."\n</p>\n"); |
|
|
|
# |
|
# Print the classlist |
|
$r->print('<h2>'.&mt('Current Class List').'</h2>'); |
my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); |
my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); |
if (! defined($classlist)) { |
if (! defined($classlist)) { |
$r->print(&mt('There are no students currently enrolled.')."\n"); |
$r->print(&mt('There are no students currently enrolled.')."\n"); |
Line 1052 END
|
Line 1167 END
|
if ($ENV{'form.action'} eq 'modifystudent') { |
if ($ENV{'form.action'} eq 'modifystudent') { |
&show_class_list($r,'view','modify','modifystudent', |
&show_class_list($r,'view','modify','modifystudent', |
$ENV{'form.Status'},$classlist,$keylist); |
$ENV{'form.Status'},$classlist,$keylist); |
} else { |
} elsif (! defined($mode) || $mode eq '') { |
&show_class_list($r,'view','aboutme','classlist', |
&show_class_list($r,'view','aboutme','classlist', |
$ENV{'form.Status'},$classlist,$keylist); |
$ENV{'form.Status'},$classlist,$keylist); |
|
} elsif ($mode eq 'csv' || $mode eq 'excel') { |
|
&show_class_list($r,$mode,'nolink','csv', |
|
$ENV{'form.Status'},$classlist,$keylist); |
} |
} |
} |
} |
} |
} |
|
|
# ============================================== view classlist |
|
sub print_formatted_classlist { |
|
my $r=shift; |
|
my $mode = shift; |
|
my $cid=$ENV{'request.course.id'}; |
|
my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); |
|
if (! defined($classlist)) { |
|
$r->print(&mt('There are no students currently enrolled.')."\n"); |
|
} else { |
|
&show_class_list($r,$mode,'nolink','csv', |
|
$ENV{'form.Status'},$classlist,$keylist); |
|
} |
|
} |
|
|
|
# =================================================== Show student list to drop |
# =================================================== Show student list to drop |
sub show_class_list { |
sub show_class_list { |
my ($r,$mode,$linkto,$action,$statusmode,$classlist,$keylist)=@_; |
my ($r,$mode,$linkto,$action,$statusmode,$classlist,$keylist)=@_; |
my $cid=$ENV{'request.course.id'}; |
my $cid=$ENV{'request.course.id'}; |
# |
# |
# Variables for excel output |
# Variables for excel output |
my ($excel_workbook, $excel_sheet, $excel_filename,$row); |
my ($excel_workbook, $excel_sheet, $excel_filename,$row,$format); |
|
# |
|
# Variables for csv output |
|
my ($CSVfile,$CSVfilename); |
# |
# |
my $sortby = $ENV{'form.sortby'}; |
my $sortby = $ENV{'form.sortby'}; |
if ($sortby !~ /^(username|domain|section|fullname|id)$/) { |
if ($sortby !~ /^(username|domain|section|fullname|id)$/) { |
$sortby = 'username'; |
$sortby = 'username'; |
} |
} |
# Print out header |
# Print out header |
|
$r->print(<<END); |
|
<input type="hidden" name="sortby" value="$sortby" /> |
|
<input type="hidden" name="sname" value="" /> |
|
<input type="hidden" name="sdom" value="" /> |
|
END |
if ($mode eq 'view') { |
if ($mode eq 'view') { |
if ($linkto eq 'aboutme') { |
if ($linkto eq 'aboutme') { |
$r->print(&mt('Select a user name to view the users personal page.')); |
$r->print(&mt('Select a user name to view the users personal page.')); |
Line 1119 sub show_class_list {
|
Line 1231 sub show_class_list {
|
</tr> |
</tr> |
END |
END |
} elsif ($mode eq 'csv') { |
} elsif ($mode eq 'csv') { |
|
# |
|
# Open a file |
|
$CSVfilename = '/prtspool/'. |
|
$ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'. |
|
time.'_'.rand(1000000000).'.csv'; |
|
unless ($CSVfile = Apache::File->new('>/home/httpd'.$CSVfilename)) { |
|
$r->log_error("Couldn't open $CSVfilename for output $!"); |
|
$r->print("Problems occured in writing the csv file. ". |
|
"This error has been logged. ". |
|
"Please alert your LON-CAPA administrator."); |
|
$CSVfile = undef; |
|
} |
|
# |
|
# Write headers and data to file |
if($statusmode eq 'Expired') { |
if($statusmode eq 'Expired') { |
$r->print(&mt('Students with expired roles')); |
print $CSVfile '"'.&mt('Students with expired roles').'"'."\n"; |
} |
} |
if ($statusmode eq 'Any') { |
if ($statusmode eq 'Any') { |
$r->print('"'.join('","',(&mt("username"),&mt("domain"),"ID", |
print $CSVfile '"'.join('","',map { |
&mt("student name"),&mt("section"),&mt("status"))). |
&Apache::loncommon::csv_translate(&mt($_)) |
'"'."\n"); |
} ("username","domain","ID","student name", |
|
"section","status")).'"'."\n"; |
} else { |
} else { |
$r->print('"'.join('","',(&mt("username"),&mt("domain"),"ID", |
print $CSVfile '"'.join('","',map { |
&mt("student name"),&mt("section"))).'"'."\n"); |
&Apache::loncommon::csv_translate(&mt($_)) |
|
} ("username","domain","ID","student name", |
|
"section")).'"'."\n"; |
} |
} |
} elsif ($mode eq 'excel') { |
} elsif ($mode eq 'excel') { |
# Create the excel spreadsheet |
# Create the excel spreadsheet |
Line 1138 END
|
Line 1267 END
|
$excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'. |
$excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'. |
$excel_filename); |
$excel_filename); |
$excel_workbook->set_tempdir('/home/httpd/perl/tmp'); |
$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 '. |
$ENV{'course.'.$ENV{'request.course.id'}.'.description'}; |
$ENV{'course.'.$ENV{'request.course.id'}.'.description'}; |
$excel_sheet->write($row++,0,$description); |
$excel_sheet->write($row++,0,$description,$format->{'h1'}); |
# |
# |
$excel_sheet->write($row++,0,["username","domain","ID", |
$excel_sheet->write($row++,0,["username","domain","ID", |
"student name","section","status"]); |
"student name","section","status"],$format->{'bold'}); |
} |
} |
# |
# |
# Sort the students |
# Sort the students |
Line 1198 END
|
Line 1329 END
|
</tr> |
</tr> |
END |
END |
} elsif ($mode eq 'csv') { |
} elsif ($mode eq 'csv') { |
|
next if (! defined($CSVfile)); |
# no need to bother with $linkto |
# no need to bother with $linkto |
my @line = (); |
my @line = (); |
foreach ($username,$domain,$id,$name,$section) { |
foreach ($username,$domain,$id,$name,$section) { |
Line 1206 END
|
Line 1338 END
|
if ($statusmode eq 'Any') { |
if ($statusmode eq 'Any') { |
push @line,&Apache::loncommon::csv_translate($status); |
push @line,&Apache::loncommon::csv_translate($status); |
} |
} |
my $tmp = $"; |
print $CSVfile '"'.join('","',@line).'"'."\n"; |
$" = '","'; |
|
$r->print("\"@line\"\n"); |
|
$" = $tmp; |
|
} elsif ($mode eq 'excel') { |
} elsif ($mode eq 'excel') { |
$excel_sheet->write($row++,0,[$username,$domain,$id, |
$excel_sheet->write($row++,0,[$username,$domain,$id, |
$name,$section,$status]); |
$name,$section,$status]); |
Line 1221 END
|
Line 1350 END
|
$excel_workbook->close(); |
$excel_workbook->close(); |
$r->print('<p><a href="'.$excel_filename.'">'. |
$r->print('<p><a href="'.$excel_filename.'">'. |
&mt('Your Excel spreadsheet').'</a> '.&mt('is ready for download').'.</p>'."\n"); |
&mt('Your Excel spreadsheet').'</a> '.&mt('is ready for download').'.</p>'."\n"); |
|
} elsif ($mode eq 'csv') { |
|
close($CSVfile); |
|
$r->print('<a href="'.$CSVfilename.'">'. |
|
&mt('Your CSV file').'</a> is ready for download.'. |
|
"\n"); |
|
$r->rflush(); |
} |
} |
} |
} |
|
|
Line 1256 sub print_modify_student_form {
|
Line 1391 sub print_modify_student_form {
|
$r->print('<p>'.$starttime.'</p>'); |
$r->print('<p>'.$starttime.'</p>'); |
return; |
return; |
} |
} |
|
# |
# Deal with date forms |
# Deal with date forms |
|
my $current_date_description = ''; |
|
my $textdate = ''; |
|
|
|
if (! defined($starttime) || $starttime == 0) { |
|
$current_date_description = &mt('Current Starting Date: not set'). |
|
'<br />'; |
|
} else { |
|
$current_date_description = |
|
&mt('Current Starting Date: [_1]', |
|
&Apache::lonlocal::locallocaltime($starttime)).'<br />'; |
|
} |
|
if (! defined($endtime) || $endtime == 0) { |
|
$current_date_description.= &mt('Current Ending Date: not set'). |
|
'<br />'; |
|
} else { |
|
$current_date_description.= |
|
&mt('Current Ending Date: [_1]', |
|
&Apache::lonlocal::locallocaltime($endtime)).'<br />'; |
|
|
|
} |
my $date_table = &date_setting_table($starttime,$endtime); |
my $date_table = &date_setting_table($starttime,$endtime); |
# |
# |
if (! exists($ENV{'form.Status'}) || |
if (! exists($ENV{'form.Status'}) || |
Line 1289 $lt{'odcc'}
|
Line 1445 $lt{'odcc'}
|
<input type="hidden" name="state" value="done" /> |
<input type="hidden" name="state" value="done" /> |
<input type="hidden" name="sortby" value="$sortby" /> |
<input type="hidden" name="sortby" value="$sortby" /> |
<input type="hidden" name="Status" value="$ENV{'form.Status'}" /> |
<input type="hidden" name="Status" value="$ENV{'form.Status'}" /> |
|
|
<h2>$lt{'mef'} $info{'firstname'} $info{'middlename'} |
<h2>$lt{'mef'} $info{'firstname'} $info{'middlename'} |
$info{'lastname'} $info{'generation'}, $sname\@$sdom</h2> |
$info{'lastname'} $info{'generation'}, $sname\@$sdom</h2> |
<p> |
<p> |
Line 1308 $info{'lastname'} $info{'generation'}, $
|
Line 1463 $info{'lastname'} $info{'generation'}, $
|
<input type="checkbox" name="forceid" > |
<input type="checkbox" name="forceid" > |
$lt{'disn'} |
$lt{'disn'} |
</p><p> |
</p><p> |
<b>$lt{'sec'}</b>: <input type="text" name="section" value="$section" size="4"/> |
<b>$lt{'sec'}</b>: <input type="text" name="section" value="$section" size="14"/> |
</p> |
</p> |
|
<p>$current_date_description</p> |
<p>$date_table</p> |
<p>$date_table</p> |
<input type="submit" value="$lt{'sm'}" /> |
<input type="submit" value="$lt{'sm'}" /> |
</body></html> |
</body></html> |
Line 1701 sub upfile_drop_add {
|
Line 1857 sub upfile_drop_add {
|
} |
} |
} |
} |
# |
# |
|
# Store the field choices away |
|
foreach my $field (qw/username names |
|
fname mname lname gen id sec ipwd email/) { |
|
$ENV{'form.'.$field.'_choice'}=$fields{$field}; |
|
} |
|
&Apache::loncommon::store_course_settings('enrollment_upload', |
|
{ 'username_choice' => 'scalar', |
|
'names_choice' => 'scalar', |
|
'fname_choice' => 'scalar', |
|
'mname_choice' => 'scalar', |
|
'lname_choice' => 'scalar', |
|
'gen_choice' => 'scalar', |
|
'id_choice' => 'scalar', |
|
'sec_choice' => 'scalar', |
|
'ipwd_choice' => 'scalar', |
|
'email_choice' => 'scalar' }); |
|
|
|
# |
my ($startdate,$enddate) = &get_dates_from_form(); |
my ($startdate,$enddate) = &get_dates_from_form(); |
if ($ENV{'form.makedatesdefault'}) { |
if ($ENV{'form.makedatesdefault'}) { |
$r->print(&make_dates_default($startdate,$enddate)); |
$r->print(&make_dates_default($startdate,$enddate)); |
Line 1956 sub handler {
|
Line 2130 sub handler {
|
} |
} |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['action','state']); |
['action','state']); |
|
|
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>"/adm/dropadd", |
|
text=>"Enrollment Manager", |
|
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'})))) { |
(&Apache::lonnet::allowed('cst',$ENV{'request.course.id'})))) { |
Line 1967 sub handler {
|
Line 2147 sub handler {
|
# |
# |
# Only output the header information if they did not request csv format |
# Only output the header information if they did not request csv format |
# |
# |
if (exists($ENV{'form.state'}) && ($ENV{'form.state'} eq 'csv')) { |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
$r->content_type('text/csv'); |
['state','action']); |
} else { |
# Start page |
# Start page |
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
$r->print(&header()); |
$r->print(&header()); |
|
} |
|
# |
# |
# Main switch on form.action and form.state, as appropriate |
# Main switch on form.action and form.state, as appropriate |
if (! exists($ENV{'form.action'})) { |
if (! exists($ENV{'form.action'})) { |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'Enrollment Manager')); |
&print_main_menu($r); |
&print_main_menu($r); |
} elsif ($ENV{'form.action'} eq 'upload') { |
} elsif ($ENV{'form.action'} eq 'upload') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/dropadd?action=upload&state=', |
|
text=>"Upload Classlist", |
|
faq=>9,bug=>'Instructor Interface',}); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'Upload Classlist')); |
if (! exists($ENV{'form.state'})) { |
if (! exists($ENV{'form.state'})) { |
&print_first_courselist_upload_form($r); |
&print_first_courselist_upload_form($r); |
} elsif ($ENV{'form.state'} eq 'got_file') { |
} elsif ($ENV{'form.state'} eq 'got_file') { |
Line 1994 sub handler {
|
Line 2180 sub handler {
|
&print_first_courselist_upload_form($r); |
&print_first_courselist_upload_form($r); |
} |
} |
} elsif ($ENV{'form.action'} eq 'drop') { |
} elsif ($ENV{'form.action'} eq 'drop') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/dropadd?action=drop', |
|
text=>"Drop Students", |
|
faq=>9,bug=>'Instructor Interface',}); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'Drop Students')); |
if (! exists($ENV{'form.state'})) { |
if (! exists($ENV{'form.state'})) { |
&print_drop_menu($r); |
&print_drop_menu($r); |
} elsif ($ENV{'form.state'} eq 'done') { |
} elsif ($ENV{'form.state'} eq 'done') { |
Line 2002 sub handler {
|
Line 2194 sub handler {
|
&print_drop_menu($r); |
&print_drop_menu($r); |
} |
} |
} elsif ($ENV{'form.action'} eq 'enrollstudent') { |
} elsif ($ENV{'form.action'} eq 'enrollstudent') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/dropadd?action=enrollstudent', |
|
text=>"Enroll Student", |
|
faq=>9,bug=>'Instructor Interface',}); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'Enroll Student')); |
if (! exists($ENV{'form.state'})) { |
if (! exists($ENV{'form.state'})) { |
&get_student_username_domain_form($r); |
&get_student_username_domain_form($r); |
} elsif ($ENV{'form.state'} eq 'gotusername') { |
} elsif ($ENV{'form.state'} eq 'gotusername') { |
Line 2012 sub handler {
|
Line 2210 sub handler {
|
&get_student_username_domain_form($r); |
&get_student_username_domain_form($r); |
} |
} |
} elsif ($ENV{'form.action'} eq 'classlist') { |
} elsif ($ENV{'form.action'} eq 'classlist') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/dropadd?action=classlist', |
|
text=>"View Classlist", |
|
faq=>9,bug=>'Instructor Interface',}); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'View Classlist')); |
if (! exists($ENV{'form.state'})) { |
if (! exists($ENV{'form.state'})) { |
&print_html_classlist($r); |
&print_html_classlist($r,undef); |
} elsif ($ENV{'form.state'} eq 'csv') { |
} elsif ($ENV{'form.state'} eq 'csv') { |
&print_formatted_classlist($r,'csv'); |
&print_html_classlist($r,'csv'); |
} elsif ($ENV{'form.state'} eq 'excel') { |
} elsif ($ENV{'form.state'} eq 'excel') { |
&print_formatted_classlist($r,'excel'); |
&print_html_classlist($r,'excel'); |
} else { |
} else { |
&print_html_classlist($r); |
&print_html_classlist($r,undef); |
} |
} |
} elsif ($ENV{'form.action'} eq 'modifystudent') { |
} elsif ($ENV{'form.action'} eq 'modifystudent') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>'/adm/dropadd?action=modifystudent', |
|
text=>"Modify Student Data", |
|
faq=>9,bug=>'Instructor Interface',}); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'Modify Student Data')); |
if (! exists($ENV{'form.state'})) { |
if (! exists($ENV{'form.state'})) { |
&print_html_classlist($r); |
&print_html_classlist($r); |
} elsif ($ENV{'form.state'} eq 'selected') { |
} elsif ($ENV{'form.state'} eq 'selected') { |
Line 2036 sub handler {
|
Line 2246 sub handler {
|
&Apache::lonnet::logthis("Undetermined state in londropadd.pm. ". |
&Apache::lonnet::logthis("Undetermined state in londropadd.pm. ". |
"form.action = ".$ENV{'form.action'}. |
"form.action = ".$ENV{'form.action'}. |
"Someone should fix this."); |
"Someone should fix this."); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs |
|
(undef,'Enrollment Manager')); |
&print_main_menu($r); |
&print_main_menu($r); |
} |
} |
# |
# |
# Finish up |
# Finish up |
if (exists($ENV{'form.state'}) && ($ENV{'form.state'} eq 'csv')) { |
$r->print('</form></body></html>'); |
$r->print("\n"); |
|
} else { |
|
$r->print('</form></body></html>'); |
|
} |
|
return OK; |
return OK; |
} |
} |
|
|