Diff for /loncom/interface/spreadsheet/assesscalc.pm between versions 1.47 and 1.48

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

Removed from v.1.47  
changed lines
  Added in v.1.48


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>