version 1.47, 2005/05/15 03:45:42
|
version 1.50, 2005/05/17 20:14:19
|
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) { |
|
$display .= &Apache::lonnet::metadata($srcf,$cleaned_name.'.name'); |
|
} |
|
$parameters_and_names{$cleaned_name}=$display; |
|
} |
} |
return (%parameters_and_names); |
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 $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 793 sub compute {
|
Line 789 sub compute {
|
$value = 'q{'.$value.'}' if ($value =~/([^\d\.]|\.\.)/); |
$value = 'q{'.$value.'}' if ($value =~/([^\d\.]|\.\.)/); |
$c{$parm} = $value; |
$c{$parm} = $value; |
} |
} |
|
foreach my $cell (grep(/^A/,keys(%f))) { |
|
# Clean out any bad formulas |
|
next if (exists($c{$f{$cell}})); |
|
next if ($cell eq 'A0'); |
|
delete($f{$cell}); |
|
} |
$self->formulas(\%f); |
$self->formulas(\%f); |
$self->constants(\%c); |
$self->constants(\%c); |
$self->calcsheet(); |
$self->calcsheet(); |