[LON-CAPA-cvs] cvs: loncom /interface/spreadsheet assesscalc.pm

albertel lon-capa-cvs@mail.lon-capa.org
Tue, 17 May 2005 18:02:00 -0000


albertel		Tue May 17 14:02:00 2005 EDT

  Modified files:              
    /loncom/interface/spreadsheet	assesscalc.pm 
  Log:
  - only go get the pretty names of the parameters if we are going to actually show them
  
  
Index: loncom/interface/spreadsheet/assesscalc.pm
diff -u loncom/interface/spreadsheet/assesscalc.pm:1.47 loncom/interface/spreadsheet/assesscalc.pm:1.48
--- loncom/interface/spreadsheet/assesscalc.pm:1.47	Sat May 14 23:45:42 2005
+++ loncom/interface/spreadsheet/assesscalc.pm	Tue May 17 14:01:58 2005
@@ -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 @@
     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 .= '<td>'.$name.'<br />'.$parameter_name.'</td>';
     } else {
@@ -551,10 +551,7 @@
     # 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 @@
     # 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 @@
 ##
 ## 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 @@
         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 @@
     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 @@
         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 @@
 		&& $self->{'constants'}->{$formula} ne ''
 		) {
 		$Apache::Spreadsheet::sheet_values{$cell}=
-		    eval($self->{'constants'}->{$formula});
+		    $self->{'constants'}->{$formula};
             }
         } else {
             $t{$cell}=$formula;