--- loncom/interface/lonuserutils.pm 2008/09/11 19:42:28 1.65 +++ loncom/interface/lonuserutils.pm 2008/09/12 13:39:26 1.68 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Utility functions for managing LON-CAPA user accounts # -# $Id: lonuserutils.pm,v 1.65 2008/09/11 19:42:28 droeschl Exp $ +# $Id: lonuserutils.pm,v 1.68 2008/09/12 13:39:26 droeschl Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1337,7 +1337,9 @@ sub print_userlist { if ($context eq 'course') { if (($env{'form.showrole'} eq 'st') || ($env{'form.showrole'} eq 'Any')) { my $classlist = &Apache::loncoursedata::get_classlist(); - %userlist = %{$classlist}; + if (ref($classlist) eq 'HASH') { + %userlist = %{$classlist}; + } } if ($env{'form.showrole'} ne 'st') { my $showroles; @@ -2044,6 +2046,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'); @@ -2247,12 +2250,14 @@ END $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); @@ -2261,6 +2266,7 @@ END $excel_sheet->write($row++,0,$results_description,$format->{'h2'}); # my @colnames = map {$lt{$_}} (@cols); + $excel_sheet->write($row++,0,\@colnames,$format->{'bold'}); } @@ -2412,7 +2418,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'); @@ -2532,7 +2541,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) { @@ -2555,12 +2564,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') { @@ -3507,7 +3514,9 @@ sub upfile_drop_add { if ($context eq 'course') { my ($cnum,$cdom) = &get_course_identity(); my $roster = &Apache::loncoursedata::get_classlist(); - %userlist = %{$roster}; + if (ref($roster) eq 'HASH') { + %userlist = %{$roster}; + } my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef, \@statuses,\@poss_roles); &gather_userinfo($context,'view',\%userlist,$indexhash,\%info, @@ -3898,7 +3907,7 @@ sub upfile_drop_add { ''. &mt('There are no students with current/future access to the course.'). ''."\n"); - } else { + } elsif (ref($classlist) eq 'HASH') { # Remove the students we just added from the list of students. foreach my $line (@userdata) { my %entries=&Apache::loncommon::record_sep($line);