--- loncom/interface/lonuserutils.pm 2008/09/12 00:55:37 1.66
+++ loncom/interface/lonuserutils.pm 2009/03/21 06:21:55 1.73.2.3
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Utility functions for managing LON-CAPA user accounts
#
-# $Id: lonuserutils.pm,v 1.66 2008/09/12 00:55:37 raeburn Exp $
+# $Id: lonuserutils.pm,v 1.73.2.3 2009/03/21 06:21:55 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -329,7 +329,7 @@ sub print_upload_manager_header {
$env{'request.role.domain'},$context,
$groupslist);
my $checked=(($env{'form.noFirstLine'})?' checked="checked" ':'');
- $r->print(&mt('Total number of records found in file: [_1] .',$distotal).
+ $r->print(&mt('Total number of records found in file: [_1]',''.$distotal.' ').
" \n");
$r->print('
'.
&mt('Identify fields in uploaded list')." \n");
@@ -341,11 +341,11 @@ sub print_upload_manager_header {
&hidden_input('fileupload',$env{'form.fileupload'}).
&hidden_input('upfiletype',$env{'form.upfiletype'}).
&hidden_input('upfile_associate',$env{'form.upfile_associate'}));
+ $r->print('
'.
+ &mt('Ignore First Line').'');
$r->print('
');
- $r->print('
'.
- &mt('Ignore First Line').'');
$r->print("
\n".
'');
@@ -743,7 +743,7 @@ sub print_upload_manager_footer {
$Str .= '
'.&mt('Change authentication for existing users in domain "[_1]" to these settings?',$defdom).' '.&mt('No').' '.&mt('Yes').'
';
} else {
$Str .= "
\n".
- &mt('Note: this will not take effect if the user already exists').
+ &mt('Note: This will not take effect if the user already exists.').
&Apache::loncommon::help_open_topic('Auth_Options').
"
\n";
}
@@ -797,13 +797,17 @@ sub print_upload_manager_footer {
if ($context eq 'course' || $context eq 'domain') {
$Str .= &forceid_change($context);
}
- $Str .= '
';
+ $Str .= '';
$r->print($Str);
return;
}
@@ -1009,7 +1013,7 @@ sub date_setting_table {
}
my $perpetual = ' '.&mt('no ending date').' ';
if ($mode eq 'create_enrolldates') {
@@ -1295,9 +1299,13 @@ sub print_userlist {
$output_selector .= "\n".$option;
}
$output_selector .= '';
- $r->print(''.&mt('Output Format: [_1]',$output_selector).' '.(' 'x3));
- }
- $r->print(''.&mt('User Status: [_1]',$status_select).' '.(' 'x3)."\n");
+ $r->print(''
+ .&mt('Output Format: [_1]',$output_selector)
+ .' '.(' 'x3));
+ }
+ $r->print(''
+ .&mt('User Status: [_1]',$status_select)
+ .' '.(' 'x3)."\n");
my $roleselected = '';
if ($env{'form.showrole'} eq 'Any') {
$roleselected = ' selected="selected" ';
@@ -1308,6 +1316,12 @@ sub print_userlist {
($cnum,$cdom) = &get_course_identity();
$r->print(§ion_group_filter($cnum,$cdom));
}
+ if ($env{'form.phase'} eq '') {
+ $r->print(' '.&list_submit_button(&mt('Display List of Users')).
+ "\n\n".
+ ' ');
+ return;
+ }
if (!(($context eq 'domain') && ($env{'form.roletype'} eq 'course'))) {
$r->print(' '.&list_submit_button(&mt('Update Display')).
"\n\n");
@@ -1473,7 +1487,10 @@ sub print_userlist {
$permission,$env{'form.Status'},\%userlist,$keylist);
}
if (!$usercount) {
- $r->print(' '.&mt('There are no users matching the search criteria.'));
+ $r->print(''
+ .&mt('There are no users matching the search criteria.')
+ .' '
+ );
}
}
$r->print(' '
+ .&mt('Role Type: [_1]',$role_select)
+ .'';
} else {
$role_select = ''."\n".
''.
@@ -1510,7 +1529,9 @@ sub role_filter {
$role_select .= ' '.$plrole.' ';
}
$role_select .= ' ';
- $output = ''.&mt('Role: [_1]',$role_select).' ';
+ $output = ''
+ .&mt('Role: [_1]',$role_select)
+ .' ';
}
return $output;
}
@@ -2046,6 +2067,7 @@ END
'aboutme' => "Display a user's personal page",
'owin' => "Open in a new window",
'modify' => "Modify a user's information",
+ 'clicker' => "Clicker-ID",
);
if ($context eq 'domain' && $env{'form.roletype'} eq 'course') {
$lt{'extent'} = &mt('Course(s): description, section(s), status');
@@ -2243,18 +2265,20 @@ END
time.'_'.rand(1000000000).'.csv';
unless ($CSVfile = Apache::File->new('>/home/httpd'.$CSVfilename)) {
$r->log_error("Couldn't open $CSVfilename for output $!");
- $r->print(&mt('Problems occurred in writing the csv file. '
+ $r->print(&mt('Problems occurred in writing the CSV file. '
.'This error has been logged. '
.'Please alert your LON-CAPA administrator.'));
$CSVfile = undef;
}
#
+ push @cols,'clicker';
# Write headers and data to file
print $CSVfile '"'.$results_description.'"'."\n";
print $CSVfile '"'.join('","',map {
&Apache::loncommon::csv_translate($lt{$_})
- } (@cols)).'"'."\n";
+ } (@cols))."\"\n";
} elsif ($mode eq 'excel') {
+ push @cols,'clicker';
# Create the excel spreadsheet
($excel_workbook,$excel_filename,$format) =
&Apache::loncommon::create_workbook($r);
@@ -2263,6 +2287,7 @@ END
$excel_sheet->write($row++,0,$results_description,$format->{'h2'});
#
my @colnames = map {$lt{$_}} (@cols);
+
$excel_sheet->write($row++,0,\@colnames,$format->{'bold'});
}
@@ -2284,6 +2309,11 @@ END
$grpfilter = 'all';
}
}
+ my %ltstatus = &Apache::lonlocal::texthash(
+ Active => 'Active',
+ Future => 'Future',
+ Expired => 'Expired',
+ );
# Get groups, role, permanent e-mail so we can sort on them if
# necessary.
foreach my $user (keys(%{$userlist})) {
@@ -2414,7 +2444,10 @@ END
foreach my $item (@{$keylist}) {
$in{$item} = $sdata->[$index{$item}];
}
- my $role = $in{'role'};
+ my $clickers = (&Apache::lonnet::userenvironment($in{'domain'},$in{'username'},'clickers'))[1];
+ if ($clickers!~/\w/) { $clickers='-'; }
+ $in{'clicker'} = $clickers;
+ my $role = $in{'role'};
$in{'role'}=&Apache::lonnet::plaintext($sdata->[$index{'role'}]);
if (! defined($in{'start'}) || $in{'start'} == 0) {
$in{'start'} = &mt('none');
@@ -2493,6 +2526,12 @@ END
$r->print(''.&print_username_link($mode,\%in).' ');
} elsif (($item eq 'start' || $item eq 'end') && ($actionselect)) {
$r->print(''.$in{$item}.' '."\n");
+ } elsif ($item eq 'status') {
+ my $showitem = $in{$item};
+ if (defined($ltstatus{$in{$item}})) {
+ $showitem = $ltstatus{$in{$item}};
+ }
+ $r->print(''.$showitem.' '."\n");
} else {
$r->print(''.$in{$item}.' '."\n");
}
@@ -2534,7 +2573,7 @@ END
foreach my $item (@cols) {
push @line,&Apache::loncommon::csv_translate($in{$item});
}
- print $CSVfile '"'.join('","',@line).'"'."\n";
+ print $CSVfile '"'.join('","',@line)."\"\n";
} elsif ($mode eq 'excel') {
my $col = 0;
foreach my $item (@cols) {
@@ -2557,12 +2596,10 @@ END
$r->print(&Apache::loncommon::end_data_table().' ');
} elsif ($mode eq 'excel') {
$excel_workbook->close();
- $r->print(''.
- &mt('Your Excel spreadsheet').' '.&mt('is ready for download').'.
'."\n");
+ $r->print(&mt('[_1]Your Excel spreadsheet[_2] is ready for download.', '',' ')."
\n");
} elsif ($mode eq 'csv') {
close($CSVfile);
- $r->print(''.
- &mt('Your CSV file').' '.&mt('is ready for download').'.
'."\n");
+ $r->print(&mt('[_1]Your CSV file[_2] is ready for download.', '',' ')."
\n");
$r->rflush();
}
if ($mode eq 'autoenroll') {
@@ -3020,7 +3057,7 @@ sub results_header_row {
}
if ($context eq 'course') {
if ($mode eq 'csv' || $mode eq 'excel') {
- $description = &mt('Course - ').$env{'course.'.$env{'request.course.id'}.'.description'}.': ';
+ $description = &mt('Course - [_1]:',$env{'course.'.$env{'request.course.id'}.'.description'}).' ';
}
if ($statusmode eq 'Expired') {
$description .= &mt('Users in course with expired [_1] roles',$showfilter);
@@ -3079,8 +3116,11 @@ sub results_header_row {
}
} elsif ($context eq 'author') {
$description =
- &mt('Author space for [_1] ',
- &Apache::loncommon::plainname($env{'user.name'},$env{'user.domain'})).': ';
+ &mt('Author space for [_1]'
+ ,''
+ .&Apache::loncommon::plainname($env{'user.name'},$env{'user.domain'})
+ .' ')
+ .': ';
if ($statusmode eq 'Expired') {
$description .= &mt('Co-authors with expired [_1] roles',$showfilter);
} elsif ($statusmode eq 'Future') {
@@ -3096,7 +3136,7 @@ sub results_header_row {
}
} elsif ($context eq 'domain') {
my $domdesc = &Apache::lonnet::domain($env{'request.role.domain'},'description');
- $description = &mt('Domain - ').$domdesc.': ';
+ $description = &mt('Domain - [_1]:',$domdesc).' ';
if ($env{'form.roletype'} eq 'domain') {
if ($statusmode eq 'Expired') {
$description .= &mt('Users in domain with expired [_1] roles',$showfilter);
@@ -3351,17 +3391,18 @@ sub print_first_users_upload_form {
$str .= ' ';
$str .= "".&mt('Upload a file containing information about users')." \n";
$str .= &Apache::loncommon::upfile_select_html();
- $str .= "\n";
- $str .= ' '."\n";
- $str .= ' '.
- &mt('Ignore First Line')."
\n";
+ $str .= '';
$str .= &Apache::loncommon::help_open_topic("Course_Create_Class_List",
&mt("How do I create a users list from a spreadsheet")).
" \n";
$str .= &Apache::loncommon::help_open_topic("Course_Convert_To_CSV",
- &mt("How do I create a CSV file from a spreadsheet")).
- " \n";
+ &mt("How do I create a CSV file from a spreadsheet"));
+ $str .= "
\n";
+ $str .= "\n";
+ $str .= ' '.
+ &mt('Ignore First Line')."
\n";
+ $str .= ' '." \n";
$str .= &Apache::loncommon::end_page();
$r->print($str);
return;
@@ -3613,14 +3654,13 @@ sub upfile_drop_add {
ne &LONCAPA::clean_username($entries{$fields{'username'}})) {
$r->print(' '.
&mt('[_1] : Unacceptable username for user [_2] [_3] [_4] [_5]',
- $entries{$fields{'username'}},$fname,$mname,$lname,$gen).
- '');
+ $entries{$fields{'username'}},$fname,$mname,$lname,$gen));
next;
} else {
- if ($entries{$fields{'dom'}}
+ if ($entries{$fields{'domain'}}
ne &LONCAPA::clean_domain($entries{$fields{'domain'}})) {
$r->print(' '. ''.$entries{$fields{'domain'}}.
- ' : '.&mt('Unacceptable domain for user [_2] [_3] [_4] [_5]',$fname,$mname,$lname,$gen).'');
+ ': '.&mt('Unacceptable domain for user [_2] [_3] [_4] [_5]',$fname,$mname,$lname,$gen));
next;
}
my $username = $entries{$fields{'username'}};