--- loncom/interface/Attic/lonspreadsheet.pm 2001/10/16 19:27:19 1.67 +++ loncom/interface/Attic/lonspreadsheet.pm 2001/11/05 18:22:24 1.73 @@ -6,7 +6,8 @@ # 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,07/21,09/01,09/10,9/11,9/12,9/13,9/14,9/17 Gerd Kortemeyer +# 07/09,07/14,07/21,09/01,09/10,9/11,9/12,9/13,9/14,9/17, +# 10/16,10/17,10/20,11/05 Gerd Kortemeyer package Apache::lonspreadsheet; @@ -676,7 +677,11 @@ sub rown { } else { $defaultbg='#E0FF'; } - $rowdata.="\n$n"; + unless ($ENV{'form.showcsv'}) { + $rowdata.="\n$n"; + } else { + $rowdata.="\n".'"'.$n.'"'; + } my $showf=0; my $proc; my $maxred; @@ -699,6 +704,7 @@ sub rown { if ((($vl ne '') || ($vl eq '0')) && (($showf==1) || ($sheettype ne 'studentcalc'))) { $dataflag=1; } if ($showf==0) { $vl=$_; } + unless ($ENV{'form.showcsv'}) { if ($showf<=$maxred) { $bgcolor='#FFDDDD'; } if (($n==0) && ($showf<=26)) { $bgcolor='#CCCCFF'; } if (($showf>$maxred) || ((!$n) && ($showf>0))) { @@ -711,10 +717,13 @@ sub rown { } else { $rowdata.=' '.$vl.' '; } + } else { + $rowdata.=',"'.$vl.'"'; + } $showf++; } $safeeval->reval($proc.'('.$n.')'); if ($ENV{'form.showall'} || ($dataflag)) { - return $rowdata.''; + return $rowdata.($ENV{'form.showcsv'}?'':''); } else { return ''; } @@ -737,7 +746,9 @@ sub outsheet { $realm='Course'; } my $maxyellow=52-$maxred; - my $tabledata= + my $tabledata; + unless ($ENV{'form.showcsv'}) { + $tabledata= ''. '
'. $realm.'print($tabledata); + my $row; my $maxrow=&getmaxrow($safeeval); - $tabledata.=&rown($safeeval,'-').&rown($safeeval,0); - $r->print($tabledata); my @sortby=(); my @sortidx=(); @@ -782,7 +795,7 @@ sub outsheet { for ($row=0;$row<$maxrow;$row++) { my $thisrow=&rown($safeeval,$sortidx[$row]+1); if ($thisrow) { - if ($n/25==int($n/25)) { + if (($n/25==int($n/25)) && (!$ENV{'form.showcsv'})) { $r->print("
\n
\n"); $r->rflush(); $r->print(''); @@ -798,7 +811,7 @@ sub outsheet { $r->print($thisrow); } } - $r->print('
 '.$what.'
'); + $r->print($ENV{'form.showcsv'}?'':''); } # @@ -867,10 +880,13 @@ sub readsheet { my $sheetxml=''; { my $fh; - if ($fh=Apache::File->new($includedir. - '/default.'.&gettype($safeeval))) { + my $dfn=$fn; + $dfn=~s/\_/\./g; + if ($fh=Apache::File->new($includedir.'/'.$dfn)) { $sheetxml=join('',<$fh>); - } + } else { + $sheetxml='"Error"'; + } } my $parser=HTML::TokeParser->new(\$sheetxml); my $token; @@ -1049,7 +1065,7 @@ sub parmval { # ----------------------------------------------------- Cascading lookup scheme my $rwhat=$what; $what=~s/^parameter\_//; - $what=~s/\_/\./; + $what=~s/\_([^\_]+)$/\.$1/; my $symbparm=$symb.'.'.$what; my $mapparm=$mapname.'___(all).'.$what; @@ -1140,13 +1156,19 @@ sub updateclasssheet { my ($sname,$sdom)=split(/\:/,$name); my $ssec=&Apache::lonnet::usection($sdom,$sname,$cid); if ($ssec==-1) { + unless ($ENV{'form.showcsv'}) { $rowlabel='Data not available: '.$name. ''; + } else { + $rowlabel='ERROR","'.$name. + '","Data not available","","","'; + } } else { my %reply=&Apache::lonnet::idrget($sdom,$sname); my $reply=&Apache::lonnet::reply('get:'.$sdom.':'.$sname. ':environment:firstname&middlename&lastname&generation', &Apache::lonnet::homeserver($sname,$sdom)); + unless ($ENV{'form.showcsv'}) { $rowlabel=''. $ssec.' '.$reply{$sname}.'
'; @@ -1154,6 +1176,16 @@ sub updateclasssheet { $rowlabel.=&Apache::lonnet::unescape($_).' '; } split(/\&/,$reply); $rowlabel.='
'; + } else { + $rowlabel=$ssec.'","'.$reply{$sname}.'"'; + my $ncount=0; + map { + $rowlabel.=',"'.&Apache::lonnet::unescape($_).'"'; + $ncount++; + } split(/\&/,$reply); + unless ($ncount==4) { $rowlabel.=',""'; } + $rowlabel=~s/\"$//; + } } $currentlist{&Apache::lonnet::unescape($name)}=$rowlabel; } @@ -1214,7 +1246,6 @@ sub updatestudentassesssheet { my %allkeys=('timestamp' => 'Timestamp of Last Transaction
timestamp'); - my %allassess=(); my $adduserstr=''; if ((&getuname($safeeval) ne $ENV{'user.name'}) || @@ -1223,6 +1254,17 @@ sub updatestudentassesssheet { '&udom='.&getudom($safeeval); } + my %allassess=('_feedback' => + 'Feedback', + '_evaluation' => + 'Evaluation', + '_tutoring' => + 'Tutoring' + ); + map { if ($_=~/^src\_(\d+)\.(\d+)$/) { my $mapid=$1; @@ -1567,7 +1609,7 @@ sub loadassessment { my $key=$f{$_}; my $ckey=$key; $key=~s/^stores\_/resource\./; - $key=~s/\_/\./; + $key=~s/\_/\./g; $c{$_}=$returnhash{$key}; $c{$ckey}=$returnhash{$key}; } @@ -1898,6 +1940,10 @@ $tmpdir=$r->dir_config('lonDaemons').'/t } } (split(/&/,$ENV{'QUERY_STRING'})); + if (($ENV{'form.usymb'}=~/^\_(\w+)/) && (!$ENV{'form.ufn'})) { + $ENV{'form.ufn'}='default_'.$1; + } + # -------------------------------------- Interactive loading of specific sheet? if (($ENV{'form.load'}) && ($ENV{'form.loadthissheet'} ne 'Default')) { $ENV{'form.ufn'}=$ENV{'form.loadthissheet'}; @@ -2143,7 +2189,12 @@ ENDSCRIPT $r->print('print(' checked'); } $r->print('>'); - + if (&gettype($asheet) eq 'classcalc') { + $r->print( + ' Output CSV format: print(' checked'); } + $r->print('>'); + } # ------------------------------------------------------------- Print out sheet &outsheet($r,$asheet);