version 1.31, 2001/01/02 22:58:46
|
version 1.34, 2001/01/20 01:07:03
|
Line 3
|
Line 3
|
# |
# |
# 11/11,11/15,11/27,12/04,12/05,12/06,12/07, |
# 11/11,11/15,11/27,12/04,12/05,12/06,12/07, |
# 12/08,12/09,12/11,12/12,12/15,12/16,12/18,12/19,12/30, |
# 12/08,12/09,12/11,12/12,12/15,12/16,12/18,12/19,12/30, |
# 01/01/01,02/01 Gerd Kortemeyer |
# 01/01/01,02/01,03/01,19/01 Gerd Kortemeyer |
|
|
package Apache::lonspreadsheet; |
package Apache::lonspreadsheet; |
|
|
Line 20 use HTML::TokeParser;
|
Line 20 use HTML::TokeParser;
|
# These cache hashes need to be independent of user, resource and course |
# These cache hashes need to be independent of user, resource and course |
# (user and course can/should be in the keys) |
# (user and course can/should be in the keys) |
# |
# |
use vars qw(%spreadsheets %courserdatas %userrdatas %defaultsheets); |
|
|
my %spreadsheets; |
|
my %courserdatas; |
|
my %userrdatas; |
|
my %defaultsheets; |
|
|
# |
# |
# These global hashes are dependent on user, course and resource, |
# These global hashes are dependent on user, course and resource, |
Line 423 ENDDEFS
|
Line 427 ENDDEFS
|
# ------------------------------------------------ Add or change formula values |
# ------------------------------------------------ Add or change formula values |
|
|
sub setformulas { |
sub setformulas { |
my ($safeeval,@f)=@_; |
my ($safeeval,%f)=@_; |
$safeeval->reval('%f='."('".join("','",@f)."');"); |
%{$safeeval->varglob('f')}=%f; |
} |
} |
|
|
# ------------------------------------------------ Add or change formula values |
# ------------------------------------------------ Add or change formula values |
|
|
sub setconstants { |
sub setconstants { |
my ($safeeval,@c)=@_; |
my ($safeeval,%c)=@_; |
$safeeval->reval('%c='."('".join("','",@c)."');"); |
%{$safeeval->varglob('c')}=%c; |
} |
} |
|
|
# ------------------------------------------------ Add or change formula values |
# ------------------------------------------------ Add or change formula values |
|
|
sub setrowlabels { |
sub setrowlabels { |
my ($safeeval,@rl)=@_; |
my ($safeeval,%rl)=@_; |
$safeeval->reval('%rl='."('".join("','",@rl)."');"); |
%{$safeeval->varglob('rl')}=%rl; |
} |
} |
|
|
# ------------------------------------------------------- Calculate spreadsheet |
# ------------------------------------------------------- Calculate spreadsheet |
Line 459 sub getvalues {
|
Line 463 sub getvalues {
|
|
|
sub getformulas { |
sub getformulas { |
my $safeeval=shift; |
my $safeeval=shift; |
return $safeeval->reval('%f'); |
return %{$safeeval->varglob('f')}; |
} |
} |
|
|
# -------------------------------------------------------------------- Get type |
# -------------------------------------------------------------------- Get type |
Line 1191 sub loadcourse {
|
Line 1195 sub loadcourse {
|
my $row=$1; |
my $row=$1; |
unless (($f{$_}=~/^\!/) |
unless (($f{$_}=~/^\!/) |
|
|
|| ($row>25)) |
|| ($row>200)) |
|
|
{ |
{ |
my @studentdata=&exportsheet(&getuname($safeeval), |
my @studentdata=&exportsheet(&getuname($safeeval), |
&getudom($safeeval), |
&getudom($safeeval), |
'studentcalc'); |
'studentcalc'); |
|
undef %userrdatas; |
my $index=0; |
my $index=0; |
map { |
map { |
if ($studentdata[$index]) { |
if ($studentdata[$index]) { |
Line 1260 sub loadassessment {
|
Line 1265 sub loadassessment {
|
unless ($uhome eq 'no_host') { |
unless ($uhome eq 'no_host') { |
# -------------------------------------------------------------- Get coursedata |
# -------------------------------------------------------------- Get coursedata |
unless |
unless |
((time-$courserdatas{$cid.'.last_cache'})<120) { |
((time-$courserdatas{$cid.'.last_cache'})<240) { |
my $reply=&Apache::lonnet::reply('dump:'.$cdom.':'.$cnum. |
my $reply=&Apache::lonnet::reply('dump:'.$cdom.':'.$cnum. |
':resourcedata',$chome); |
':resourcedata',$chome); |
if ($reply!~/^error\:/) { |
if ($reply!~/^error\:/) { |
Line 1275 sub loadassessment {
|
Line 1280 sub loadassessment {
|
} split(/\&/,$courserdatas{$ENV{'request.course.id'}}); |
} split(/\&/,$courserdatas{$ENV{'request.course.id'}}); |
# --------------------------------------------------- Get userdata (if present) |
# --------------------------------------------------- Get userdata (if present) |
unless |
unless |
((time-$userrdatas{$uname.'___'.$udom.'.last_cache'})<120) { |
((time-$userrdatas{$uname.'___'.$udom.'.last_cache'})<240) { |
my $reply= |
my $reply= |
&Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome); |
&Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome); |
if ($reply!~/^error\:/) { |
if ($reply!~/^error\:/) { |
Line 1571 ENDSCRIPT
|
Line 1576 ENDSCRIPT
|
&outsheet($r,$asheet); |
&outsheet($r,$asheet); |
$r->print('</form></body></html>'); |
$r->print('</form></body></html>'); |
|
|
|
# --------------------------------- We know this leaks, so terminate this child |
|
|
|
$r->child_terminate(); |
|
|
# ------------------------------------------------------------------------ Done |
# ------------------------------------------------------------------------ Done |
} else { |
} else { |