--- loncom/interface/spreadsheet/assesscalc.pm 2006/09/03 00:39:57 1.56 +++ loncom/interface/spreadsheet/assesscalc.pm 2014/02/11 19:11:30 1.60 @@ -1,5 +1,5 @@ # -# $Id: assesscalc.pm,v 1.56 2006/09/03 00:39:57 albertel Exp $ +# $Id: assesscalc.pm,v 1.60 2014/02/11 19:11:30 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -156,7 +156,7 @@ sub initialize { if (! defined($navmap)) { $navmap = Apache::lonnavmaps::navmap->new(); } - if (!defined($navmap)) { + if ((!defined($navmap)) || (!ref($navmap))) { &Apache::lonnet::logthis('assesscalc:Can not open Coursemap'); } &Apache::loncoursedata::clear_internal_caches(); @@ -174,7 +174,7 @@ sub initialize { ######################################################## ######################################################## sub initialize_package { - my ($sname,$sdomain,$in_navmap) = @_; + my ($sname,$sdomain,$in_navmap,$calling_sheet) = @_; $current_name = $sname; $current_domain = $sdomain; $navmap = $in_navmap; @@ -185,7 +185,7 @@ sub initialize_package { undef(%courseopt); } &load_cached_export_rows(); - &load_parameter_caches(); + &load_parameter_caches($calling_sheet); &Apache::loncoursedata::clear_internal_caches(); } @@ -202,6 +202,7 @@ sub initialize_package { ######################################################## ######################################################## sub load_parameter_caches { + my ($calling_sheet) = @_; my $userprefix = $current_name.':'.$current_domain.'_'; $userprefix =~ s/:/_/g; # @@ -234,6 +235,10 @@ sub load_parameter_caches { if (! %userdata) { %userdata = &Apache::loncoursedata::get_current_state($current_name, $current_domain); + my ($tmp) = %userdata; + if ($tmp =~ /^error:(.*)/) { + $calling_sheet->set_calcerror($1); + } $userdata{'loadtime'} = time; } return; @@ -272,7 +277,7 @@ sub ensure_current_caches { undef(%useropt); undef(%userdata); } - &load_parameter_caches(); + &load_parameter_caches($self); } ################################################## @@ -483,19 +488,19 @@ END $r->print($tableheader); # # Print out template row - $r->print('Template '. + $r->print(''.&mt('Template').' '. $self->html_template_row($num_uneditable,$importcolor). "\n"); # # Print out summary/export row - $r->print('Export0'. + $r->print(''.&mt('Export').'0'. $self->html_export_row($exportcolor)."\n"); # # Prepare to output rows - $tableheader =<<"END"; - - -END + $tableheader = + '
rowItem
'. + ''. + ''; foreach (split(//,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')){ if ($label_num<$num_uneditable) { $tableheader.='
'.&mt('Row').''.&mt('Item').''; @@ -847,7 +852,7 @@ sub sett { # Replace 'A0' with the value from 'A0' $t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g; # Replace parameters - $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge; + $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge; } } # @@ -866,7 +871,7 @@ sub sett { $t{$cell}=$formula; $t{$cell}=~s/\.\.+/\,/g; $t{$cell}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$sheet_values\{\'$2\'\}/g; - $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/ge; + $t{$cell}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.$self->expandnamed($2)/sge; } } # Put %t into the safe space