--- loncom/interface/spreadsheet/assesscalc.pm 2005/05/15 03:45:42 1.47 +++ loncom/interface/spreadsheet/assesscalc.pm 2005/05/17 18:01:58 1.48 @@ -1,5 +1,5 @@ # -# $Id: assesscalc.pm,v 1.47 2005/05/15 03:45:42 albertel Exp $ +# $Id: assesscalc.pm,v 1.48 2005/05/17 18:01:58 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -515,8 +515,8 @@ sub assess_html_row { my @rowdata = $self->get_row($row); my $num_cols_output = 0; my $row_html; - if (exists($nice_parameter_name{$parameter_name})) { - my $name = $nice_parameter_name{$parameter_name}; + my $name=$self->get_parm_name($parameter_name); + if ($name ne '') { $name =~ s/ /\ /g; $row_html .= ''.$name.'
'.$parameter_name.''; } else { @@ -551,10 +551,7 @@ sub csv_rows { # Write each row foreach my $rownum (sort {$a <=> $b} ($self->rows())) { my $parameter_name = $self->{'formulas'}->{'A'.$rownum}; - my $description = ''; - if (exists($nice_parameter_name{$parameter_name})) { - $description = $nice_parameter_name{$parameter_name}; - } + my $description = $self->get_parm_name($parameter_name); $self->csv_output_row($filehandle,$rownum, $parameter_name,$description); } @@ -578,10 +575,7 @@ sub excel_rows { # Write each row foreach my $rownum (sort {$a <=> $b} ($self->rows())) { my $parameter_name = $self->{'formulas'}->{'A'.$rownum}; - my $description = ''; - if (exists($nice_parameter_name{$parameter_name})) { - $description = $nice_parameter_name{$parameter_name}; - } + my $description = $self->get_parm_name($parameter_name); $self->excel_output_row($worksheet,$rownum,$rows_output++, $parameter_name,$description); } @@ -591,10 +585,10 @@ sub excel_rows { ## ## Routines to support assesscalc::compute ## -sub get_parm_names { +sub get_parm { my $self = shift; my @Mandatory_parameters = @_; - my %parameters_and_names; + my %parameters; # my ($symap,$syid,$srcf) = &Apache::lonnet::decode_symb($self->{'symb'}); my @Metadata = split(/\,/,&Apache::lonnet::metadata($srcf,'keys')); @@ -603,14 +597,20 @@ sub get_parm_names { my $cleaned_name = $parm; $cleaned_name =~ s/^resource\./stores_/; $cleaned_name =~ s/\./_/g; - my $display = &Apache::lonnet::metadata($srcf, - $cleaned_name.'.display'); - if (! $display) { - $display .= &Apache::lonnet::metadata($srcf,$cleaned_name.'.name'); - } - $parameters_and_names{$cleaned_name}=$display; + $parameters{$cleaned_name}=1; + } + return (keys(%parameters)); +} + +sub get_parm_name { + my $self = shift; + my $parm = shift; + my ($symap,$syid,$srcf) = &Apache::lonnet::decode_symb($self->{'symb'}); + my $display = &Apache::lonnet::metadata($srcf,$parm.'.display'); + if (! $display) { + $display .= &Apache::lonnet::metadata($srcf,$parm.'.name'); } - return (%parameters_and_names); + return $display; } sub get_parameter_values { @@ -737,15 +737,11 @@ sub compute { my %parameters; # holds underscored parameters by name # # Get the metadata fields and determine their proper names - my %nice_parm_names = $self->get_parm_names(@Mandatory_parameters); - while (my($cleaned_name,$display) = each(%nice_parm_names)) { - $parameters{$cleaned_name}++; - $nice_parameter_name{$cleaned_name} = $display; - } + my @parameters=$self->get_parm(@Mandatory_parameters); # # Get the values of the metadata fields $self->ensure_current_caches(); - %parameters = $self->get_parameter_values(keys(%parameters)); + %parameters = $self->get_parameter_values(@parameters); # # Clean out unnecessary parameters foreach (keys(%parameters)) { @@ -790,7 +786,7 @@ sub compute { if ($parm =~ /_submission$/ && $value =~ /(\{|\})/) { $value = 'witheld'; } - $value = 'q{'.$value.'}' if ($value =~/([^\d\.]|\.\.)/); + #$value = 'q{'.$value.'}' if ($value =~/([^\d\.]|\.\.)/); $c{$parm} = $value; } $self->formulas(\%f); @@ -841,7 +837,7 @@ sub sett { && $self->{'constants'}->{$formula} ne '' ) { $Apache::Spreadsheet::sheet_values{$cell}= - eval($self->{'constants'}->{$formula}); + $self->{'constants'}->{$formula}; } } else { $t{$cell}=$formula;