--- loncom/interface/spreadsheet/assesscalc.pm 2003/05/23 21:03:29 1.9 +++ loncom/interface/spreadsheet/assesscalc.pm 2003/06/23 20:47:00 1.15 @@ -1,5 +1,5 @@ # -# $Id: assesscalc.pm,v 1.9 2003/05/23 21:03:29 matthew Exp $ +# $Id: assesscalc.pm,v 1.15 2003/06/23 20:47:00 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -123,6 +123,10 @@ sub clear_package { undef(%courseopt); } +sub initialize { + &clear_package(); +} + ######################################################## ######################################################## @@ -136,10 +140,12 @@ sub clear_package { ######################################################## sub initialize_package { my ($sname,$sdomain) = @_; - $current_course = $ENV{'request.course.id'}; $current_name = $sname; $current_domain = $sdomain; - undef(%courseopt); + if ($current_course ne $ENV{'request.course.id'}) { + $current_course = $ENV{'request.course.id'}; + undef(%courseopt); + } &load_cached_export_rows(); &load_parameter_caches(); } @@ -365,13 +371,15 @@ sub outsheet_html { ################################### # Determine table structure ################################### + my $importcolor = '#FFFFFF'; + my $exportcolor = '#FFFFAA'; my $num_uneditable = 1; my $num_left = 52-$num_uneditable; my $tableheader =<<"END"; - + @@ -379,7 +387,7 @@ END my $label_num = 0; foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ if ($label_num<$num_uneditable) { - $tableheader .= ''. - $self->html_template_row($num_uneditable)."\n"); + $self->html_template_row($num_uneditable,$importcolor). + "\n"); # # Print out summary/export row $r->print(''. - $self->html_export_row()."\n"); + $self->html_export_row($exportcolor)."\n"); # # Prepare to output rows $tableheader =<<"END"; @@ -405,7 +414,7 @@ END END foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ if ($label_num<$num_uneditable) { - $tableheader.='
Assessment   Calculations
'; + $tableheader .= ''; } else { $tableheader .= ''; } @@ -392,11 +400,12 @@ END # # Print out template row $r->print('
Template 
Export0
'; + $tableheader.=''; } else { $tableheader.=''; } @@ -418,7 +427,7 @@ END $r->print("
\n".$tableheader); } $r->print(''.$rownum.''. - $self->assess_html_row($num_uneditable,$rownum)."\n"); + $self->assess_html_row($rownum,$importcolor)."\n"); } $r->print("\n"); return; @@ -426,7 +435,7 @@ END sub assess_html_row { my $self = shift(); - my ($num_uneditable,$row) = @_; + my ($row,$importcolor) = @_; my $parameter_name = $self->{'formulas'}->{'A'.$row}; my @rowdata = $self->get_row($row); my $num_cols_output = 0; @@ -439,9 +448,17 @@ sub assess_html_row { $row_html .= ''.$parameter_name.''; } foreach my $cell (@rowdata) { - $row_html .= ''; - $row_html .= &Apache::Spreadsheet::html_editable_cell($cell,'#E0FFDD'); + if ($num_cols_output < 1) { + $row_html .= ''; + $row_html .= &Apache::Spreadsheet::html_uneditable_cell($cell, + '#FFDDDD'); + } else { + $row_html .= ''; + $row_html .= &Apache::Spreadsheet::html_editable_cell($cell, + '#E0FFDD',1); + } $row_html .= ''; + $num_cols_output++; } return $row_html; } @@ -497,8 +514,21 @@ sub excel_rows { sub compute { my $self = shift; - $self->logthis('computing'); +# $self->logthis('computing'); $self->initialize_safe_space(); + ######################################### + ######################################### + ### ### + ### Retrieve the problem parameters ### + ### ### + ######################################### + ######################################### + my @Mandatory_parameters = ("stores_0_solved", + "stores_0_awarddetail", + "stores_0_awarded", + "timestamp", + "stores_0_tries", + "stores_0_award"); # # Definitions undef(%nice_parameter_name); @@ -507,7 +537,7 @@ sub compute { # Get the metadata fields and determine their proper names my ($symap,$syid,$srcf)=split(/___/,$self->{'symb'}); my @Metadata = split(/\,/,&Apache::lonnet::metadata($srcf,'keys')); - foreach my $parm (@Metadata) { + foreach my $parm (@Mandatory_parameters,@Metadata) { next if ($parm !~ /^(resource\.|stores|parameter)_/); my $cleaned_name = $parm; $cleaned_name =~ s/^resource\./stores_/; @@ -587,6 +617,7 @@ sub compute { # # Save the export data $self->save_export_data(); + $self->save() if ($self->need_to_save()); return; }