--- loncom/interface/spreadsheet/classcalc.pm 2005/04/07 06:56:23 1.23 +++ loncom/interface/spreadsheet/classcalc.pm 2014/02/12 16:53:09 1.32 @@ -1,5 +1,5 @@ # -# $Id: classcalc.pm,v 1.23 2005/04/07 06:56:23 albertel Exp $ +# $Id: classcalc.pm,v 1.32 2014/02/12 16:53:09 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -83,22 +83,18 @@ sub html_header { my $self = shift; my ($toprow,$bottomrow); &Apache::lonstatistics::clear_classlist_variables(); - foreach (['Sections',&Apache::lonstatistics::SectionSelect('Section','multpile',3)], - ['Enrollment Status',&Apache::lonhtmlcommon::StatusOptions(undef,undef,3)], + foreach (['Sections',&Apache::lonstatistics::SectionSelect('Section','multiple',3)], + ['Groups',&Apache::lonstatistics::GroupSelect('Group','multiple',3)], + ['Access Status',&Apache::lonhtmlcommon::StatusOptions(undef,undef,3)], ['Output Format',$self->output_selector()]) { my ($name,$selector) = @{$_}; $toprow .= ''.&mt($name).''; $bottomrow .= ''.$selector.''; } - my $status .= ''.&mt('Status: [_1]', - '' - ).''; - return "

\n\n". "".$toprow."\n". "".$bottomrow."\n". - "
\n".$status."\n". + "\n". "

"; } @@ -144,6 +140,7 @@ sub outsheet_html { 'username' => 'Username', 'domain' => 'Domain', 'section' => 'Section', + 'groups' => 'Groups', 'row' => 'Row', ); my $tableheader =<<"END"; @@ -189,6 +186,7 @@ END $header{'username'} $header{'domain'} $header{'section'} + $header{'groups'} $header{'status'} END foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ @@ -215,6 +213,7 @@ END ''.$link.$student->{'username'}.''. ''.$student->{'domain'} .''. ''.$student->{'section'} .''. + ''.$student->{'groups'} .''. ''.$student->{'status'} .''. $self->html_row($num_uneditable,$rownum,$exportcolor, $importcolor). @@ -232,7 +231,7 @@ sub excel_rows { # # Write a header row $cols_output = 0; - foreach my $value ('Fullname','Username','Domain','Section','Status','ID') { + foreach my $value ('Fullname','Username','Domain','Section','Group','Status','ID') { $worksheet->write($rows_output,$cols_output++,&mt($value),$format->{'h4'}); } $rows_output++; @@ -247,6 +246,7 @@ sub excel_rows { $student->{'username'}, $student->{'domain'}, $student->{'section'}, + $student->{'groups'}, $student->{'status'}, $student->{'id'}); $self->excel_output_row($worksheet,$rownum,$rows_output++, @@ -263,7 +263,7 @@ sub csv_rows { # # Write a header row $self->csv_output_row($filehandle,undef, - (&mt('Fullname'),&mt('Username'),&mt('Domain'),&mt('Section'),&mt('Status'),&mt('ID'))); + (&mt('Fullname'),&mt('Username'),&mt('Domain'),&mt('Section'),&mt('Group'),&mt('Status'),&mt('ID'))); # # Write each students row foreach my $student (@Students) { @@ -274,6 +274,7 @@ sub csv_rows { $student->{'username'}, $student->{'domain'}, $student->{'section'}, + $student->{'groups'}, $student->{'status'}, $student->{'id'}); $self->csv_output_row($filehandle,$rownum,@studentdata); @@ -285,6 +286,8 @@ sub output_options { my $self = shift(); return ({value => 'htmlclasslist', description => 'Student Sheet Links'}, + {value => 'source', + description => 'Show Source'}, {value => 'html', description => 'HTML'}, {value => 'excel', @@ -313,13 +316,13 @@ sub outsheet_htmlclasslist { # if ($show_expire_link) { $r->print(''. + 'recalc=expireallsheets¬_first_run=1">'. &mt('Expire all student spreadsheets').''.$/); } # - $r->print('

'. + $r->print('

'. &mt('Click on a student to be taken to their spreadsheet'). - '

'); + '

'); # my %header=&Apache::lonlocal::texthash( 'student' => 'Student', @@ -327,6 +330,7 @@ sub outsheet_htmlclasslist { 'username' => 'Username', 'domain' => 'Domain', 'section' => 'Section', + 'groups' => 'Groups', ); # # Prepare to output rows @@ -339,6 +343,7 @@ sub outsheet_htmlclasslist { $header{'username'} $header{'domain'} $header{'section'} + $header{'groups'} $header{'status'} END if ($show_expire_link) { @@ -352,7 +357,7 @@ END $r->print("\n".$tableheader); } my $link = ''; + '&sdomain='.$student->{'domain'}.'">'; $student->{'section'} = 'none' if ($student->{'section'} eq '-1'); $r->print(''. ''.$num_output.''. @@ -360,13 +365,14 @@ END ''.$link.$student->{'username'}.''. ''.$student->{'domain'} .''. ''.$student->{'section'} .''. + ''.$student->{'groups'} .''. ''.$student->{'status'} .''); if ($show_expire_link) { $r->print(''. 'Expire Record'.$/); + $student->{'username'}.':'.$student->{'domain'}.'&'. + 'output_format=htmlclasslist&'. + 'not_first_run=1'.'">'.&mt('Expire Record').''.$/); } $r->print("\n"); } @@ -374,16 +380,6 @@ END return; } -sub update_status { - my ($r,$message) = @_; - $r->print(''); - $r->rflush(); - return; -} - sub compute { my $self = shift; my ($r) = @_; @@ -392,19 +388,15 @@ sub compute { $self->initialize_safe_space(); my %c = $self->constants(); my %f = $self->formulas(); - &update_status($r,'Initializing Course Structure'); &Apache::studentcalc::initialize_package(); - my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin - ($r,&mt('Spreadsheet Computation Status'), - &mt('Spreadsheet Computation'), scalar(@Students),'inline',undef, - 'sheet','spreadsheet_status'); - &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state, - &mt('Processing first student')); + my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,scalar(@Students)); + &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,&mt('Processing first student')); foreach my $student (@Students) { if ($connection->aborted()) { $self->cleanup(); return; } my $sname = $student->{'username'}.':'.$student->{'domain'}; my $studentsheet = Apache::studentcalc->new - ($student->{'username'},$student->{'domain'},undef); + ($student->{'username'},$student->{'domain'},undef,undef, + $student->{'section'},$student->{'groupref'} ); if ($connection->aborted()) { $self->cleanup(); return; } my @exportdata = $studentsheet->export_data($r); if ($studentsheet->badcalc()) { @@ -424,17 +416,14 @@ sub compute { $c{$cell} = $data; } } - &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state, - 'last student'); + &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,'last student'); } &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); - &update_status($r,'Done computing student sheets'); $r->rflush(); $self->constants(\%c); $self->formulas(\%f); $self->calcsheet(); $self->save() if ($self->need_to_save()); - &update_status($r,'Done!'); } 1;