--- loncom/interface/Attic/lonspreadsheet.pm 2001/07/20 02:05:33 1.55 +++ loncom/interface/Attic/lonspreadsheet.pm 2001/07/21 23:55:31 1.57 @@ -6,7 +6,7 @@ # 01/01/01,02/01,03/01,19/01,20/01,22/01, # 03/05,03/08,03/10,03/12,03/13,03/15,03/17, # 03/19,03/20,03/21,03/27,04/05,04/09, -# 07/09,07/14 Gerd Kortemeyer +# 07/09,07/14,07/21 Gerd Kortemeyer package Apache::lonspreadsheet; @@ -87,9 +87,6 @@ undef %c; undef %rl; undef @os; - undef $nfield; - undef $nsheet; - $maxrow=0; $sheettype=''; @@ -404,7 +401,7 @@ sub outrowassess { my @cols=(); if ($n) { my ($usy,$ufn)=split(/\_\_\&\&\&\_\_/,$f{'A'.$n}); - $cols[0]=$rl{$f{'A'.$n}}.''. + $cols[0]=$f{'A'.$n}.''.$rl{$usy}.''. 'Default'; map { @@ -532,12 +529,6 @@ sub getmaxrow { my $safeeval=shift; return $safeeval->reval('$maxrow'); } -# -------------------------------------------- Store which sheet needs changing - -sub changesheet { - my ($safeeval,$nfield,$nsheet)=@_; - $safeeval->reval('$nfield='.$nfield.'; $nsheet='.$nsheet.';'); -} # ---------------------------------------------------------------- Set filename @@ -893,8 +884,10 @@ sub writesheet { # ----------------------------------------------------------------- Write sheet my $sheetdata=''; map { + unless ($f{$_} eq 'import') { $sheetdata.=&Apache::lonnet::escape($_).'='. &Apache::lonnet::escape($f{$_}).'&'; + } } keys %f; $sheetdata=~s/\&$//; my $reply=&Apache::lonnet::reply('put:'.$cdom.':'.$cnum.':'.$fn.':'. @@ -962,8 +955,9 @@ sub tmpread { } } if ($nform eq 'changesheet') { + $fo{'A'.$nfield}=(split(/\_\_\&\&\&\_\_/,$fo{'A'.$nfield}))[0]; unless ($ENV{'form.sel_'.$nfield} eq 'Default') { - &changesheet($safeeval,$nfield,$ENV{'form.sel_'.$nfield}); + $fo{'A'.$nfield}.='__&&&__'.$ENV{'form.sel_'.$nfield}; } } else { if ($nfield) { $fo{$nfield}=$nform; } @@ -1235,10 +1229,14 @@ sub updatestudentassesssheet { map { if ($_=~/^A(\d+)/) { $maxrow=($1>$maxrow)?$1:$maxrow; - $existing{$f{$_}}=1; - unless ((defined($current{$f{$_}})) || (!$1)) { + my ($usy,$ufn)=split(/\_\_\&\&\&\_\_/,$f{$_}); + $existing{$usy}=1; + unless ((defined($current{$usy})) || (!$1)) { $f{$_}='!!! Obsolete'; $changed=1; + } elsif ($ufn) { + $current{$usy} + =~s/assesscalc\?usymb\=/assesscalc\?ufn\=$ufn\&usymb\=/; } } } keys %f; @@ -1953,27 +1951,6 @@ ENDSCRIPT } } -# ---------------------------------------------------- See if something to save - - if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { - my $fname=''; - if ($ENV{'form.saveas'} && ($fname=$ENV{'form.newfn'})) { - $fname=~s/\W/\_/g; - if ($fname eq 'default') { $fname='course_default'; } - $fname.='_'.&gettype($asheet); - &setfilename($asheet,$fname); - $ENV{'form.ufn'}=$fname; - $r->print('Saving spreadsheet: '. - &writesheet($asheet,$ENV{'form.makedefufn'}).''); - } - } - -# ------------------------------------------------ Write the modified worksheet - - $r->print('Current sheet: '.&getfilename($asheet).''); - - &tmpwrite($asheet); - # ---------------------------------------------------------- Additional options $r->print( @@ -2062,6 +2039,29 @@ ENDSCRIPT my $calcoutput=&calcsheet($asheet); $r->print(''.$calcoutput.''); +# ---------------------------------------------------- See if something to save + + if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { + my $fname=''; + if ($ENV{'form.saveas'} && ($fname=$ENV{'form.newfn'})) { + $fname=~s/\W/\_/g; + if ($fname eq 'default') { $fname='course_default'; } + $fname.='_'.&gettype($asheet); + &setfilename($asheet,$fname); + $ENV{'form.ufn'}=$fname; + $r->print('Saving spreadsheet: '. + &writesheet($asheet,$ENV{'form.makedefufn'}).''); + } + } + +# ------------------------------------------------ Write the modified worksheet + + $r->print('Current sheet: '.&getfilename($asheet).''); + + &tmpwrite($asheet); + +# ------------------------------------------------------------- Print out sheet + &outsheet($r,$asheet); $r->print('
Saving spreadsheet: '. - &writesheet($asheet,$ENV{'form.makedefufn'}).'
'); - } - } - -# ------------------------------------------------ Write the modified worksheet - - $r->print('Current sheet: '.&getfilename($asheet).'
'); - - &tmpwrite($asheet); - # ---------------------------------------------------------- Additional options $r->print( @@ -2062,6 +2039,29 @@ ENDSCRIPT my $calcoutput=&calcsheet($asheet); $r->print('
Saving spreadsheet: '. + &writesheet($asheet,$ENV{'form.makedefufn'}).'
'); + } + } + +# ------------------------------------------------ Write the modified worksheet + + $r->print('Current sheet: '.&getfilename($asheet).'
'); + + &tmpwrite($asheet); + +# ------------------------------------------------------------- Print out sheet + &outsheet($r,$asheet); $r->print('