version 1.66, 2001/10/16 09:53:50
|
version 1.74, 2001/11/06 10:43:57
|
Line 6
|
Line 6
|
# 01/01/01,02/01,03/01,19/01,20/01,22/01, |
# 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/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, |
# 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,10/16 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; |
package Apache::lonspreadsheet; |
|
|
Line 676 sub rown {
|
Line 677 sub rown {
|
} else { |
} else { |
$defaultbg='#E0FF'; |
$defaultbg='#E0FF'; |
} |
} |
$rowdata.="\n<tr><td><b><font size=+1>$n</font></b></td>"; |
unless ($ENV{'form.showcsv'}) { |
|
$rowdata.="\n<tr><td><b><font size=+1>$n</font></b></td>"; |
|
} else { |
|
$rowdata.="\n".'"'.$n.'"'; |
|
} |
my $showf=0; |
my $showf=0; |
my $proc; |
my $proc; |
my $maxred; |
my $maxred; |
Line 699 sub rown {
|
Line 704 sub rown {
|
if ((($vl ne '') || ($vl eq '0')) && |
if ((($vl ne '') || ($vl eq '0')) && |
(($showf==1) || ($sheettype ne 'studentcalc'))) { $dataflag=1; } |
(($showf==1) || ($sheettype ne 'studentcalc'))) { $dataflag=1; } |
if ($showf==0) { $vl=$_; } |
if ($showf==0) { $vl=$_; } |
|
unless ($ENV{'form.showcsv'}) { |
if ($showf<=$maxred) { $bgcolor='#FFDDDD'; } |
if ($showf<=$maxred) { $bgcolor='#FFDDDD'; } |
if (($n==0) && ($showf<=26)) { $bgcolor='#CCCCFF'; } |
if (($n==0) && ($showf<=26)) { $bgcolor='#CCCCFF'; } |
if (($showf>$maxred) || ((!$n) && ($showf>0))) { |
if (($showf>$maxred) || ((!$n) && ($showf>0))) { |
Line 711 sub rown {
|
Line 717 sub rown {
|
} else { |
} else { |
$rowdata.='<td bgcolor='.$bgcolor.'> '.$vl.' </td>'; |
$rowdata.='<td bgcolor='.$bgcolor.'> '.$vl.' </td>'; |
} |
} |
|
} else { |
|
$rowdata.=',"'.$vl.'"'; |
|
} |
$showf++; |
$showf++; |
} $safeeval->reval($proc.'('.$n.')'); |
} $safeeval->reval($proc.'('.$n.')'); |
if ($ENV{'form.showall'} || ($dataflag)) { |
if ($ENV{'form.showall'} || ($dataflag)) { |
return $rowdata.'</tr>'; |
return $rowdata.($ENV{'form.showcsv'}?'':'</tr>'); |
} else { |
} else { |
return ''; |
return ''; |
} |
} |
Line 737 sub outsheet {
|
Line 746 sub outsheet {
|
$realm='Course'; |
$realm='Course'; |
} |
} |
my $maxyellow=52-$maxred; |
my $maxyellow=52-$maxred; |
my $tabledata= |
my $tabledata; |
|
unless ($ENV{'form.showcsv'}) { |
|
$tabledata= |
'<table border=2><tr><th colspan=2 rowspan=2><font size=+2>'. |
'<table border=2><tr><th colspan=2 rowspan=2><font size=+2>'. |
$realm.'</font></th>'. |
$realm.'</font></th>'. |
'<td bgcolor=#FFDDDD colspan='.$maxred. |
'<td bgcolor=#FFDDDD colspan='.$maxred. |
Line 757 sub outsheet {
|
Line 768 sub outsheet {
|
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', |
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', |
'a','b','c','d','e','f','g','h','i','j','k','l','m', |
'a','b','c','d','e','f','g','h','i','j','k','l','m', |
'n','o','p','q','r','s','t','u','v','w','x','y','z'); |
'n','o','p','q','r','s','t','u','v','w','x','y','z'); |
$tabledata.='</tr>'; |
$tabledata.='</tr>'.&rown($safeeval,'-').&rown($safeeval,0); |
|
} else { $tabledata='<pre>'; } |
|
|
|
$r->print($tabledata); |
|
|
my $row; |
my $row; |
my $maxrow=&getmaxrow($safeeval); |
my $maxrow=&getmaxrow($safeeval); |
$tabledata.=&rown($safeeval,'-').&rown($safeeval,0); |
|
$r->print($tabledata); |
|
|
|
my @sortby=(); |
my @sortby=(); |
my @sortidx=(); |
my @sortidx=(); |
Line 782 sub outsheet {
|
Line 795 sub outsheet {
|
for ($row=0;$row<$maxrow;$row++) { |
for ($row=0;$row<$maxrow;$row++) { |
my $thisrow=&rown($safeeval,$sortidx[$row]+1); |
my $thisrow=&rown($safeeval,$sortidx[$row]+1); |
if ($thisrow) { |
if ($thisrow) { |
if ($n/25==int($n/25)) { |
if (($n/25==int($n/25)) && (!$ENV{'form.showcsv'})) { |
$r->print("</table>\n<br>\n"); |
$r->print("</table>\n<br>\n"); |
$r->rflush(); |
$r->rflush(); |
$r->print('<table border=2><tr><td> <td>'.$what.'</td>'); |
$r->print('<table border=2><tr><td> <td>'.$what.'</td>'); |
Line 798 sub outsheet {
|
Line 811 sub outsheet {
|
$r->print($thisrow); |
$r->print($thisrow); |
} |
} |
} |
} |
$r->print('</table>'); |
$r->print($ENV{'form.showcsv'}?'</pre>':'</table>'); |
} |
} |
|
|
# |
# |
Line 867 sub readsheet {
|
Line 880 sub readsheet {
|
my $sheetxml=''; |
my $sheetxml=''; |
{ |
{ |
my $fh; |
my $fh; |
if ($fh=Apache::File->new($includedir. |
my $dfn=$fn; |
'/default.'.&gettype($safeeval))) { |
$dfn=~s/\_/\./g; |
|
if ($fh=Apache::File->new($includedir.'/'.$dfn)) { |
$sheetxml=join('',<$fh>); |
$sheetxml=join('',<$fh>); |
} |
} else { |
|
$sheetxml='<field row="0" col="A">"Error"</field>'; |
|
} |
} |
} |
my $parser=HTML::TokeParser->new(\$sheetxml); |
my $parser=HTML::TokeParser->new(\$sheetxml); |
my $token; |
my $token; |
Line 1049 sub parmval {
|
Line 1065 sub parmval {
|
# ----------------------------------------------------- Cascading lookup scheme |
# ----------------------------------------------------- Cascading lookup scheme |
my $rwhat=$what; |
my $rwhat=$what; |
$what=~s/^parameter\_//; |
$what=~s/^parameter\_//; |
$what=~s/\_/\./; |
$what=~s/\_([^\_]+)$/\.$1/; |
|
|
my $symbparm=$symb.'.'.$what; |
my $symbparm=$symb.'.'.$what; |
my $mapparm=$mapname.'___(all).'.$what; |
my $mapparm=$mapname.'___(all).'.$what; |
Line 1140 sub updateclasssheet {
|
Line 1156 sub updateclasssheet {
|
my ($sname,$sdom)=split(/\:/,$name); |
my ($sname,$sdom)=split(/\:/,$name); |
my $ssec=&Apache::lonnet::usection($sdom,$sname,$cid); |
my $ssec=&Apache::lonnet::usection($sdom,$sname,$cid); |
if ($ssec==-1) { |
if ($ssec==-1) { |
|
unless ($ENV{'form.showcsv'}) { |
$rowlabel='<font color=red>Data not available: '.$name. |
$rowlabel='<font color=red>Data not available: '.$name. |
'</font>'; |
'</font>'; |
|
} else { |
|
$rowlabel='ERROR","'.$name. |
|
'","Data not available","","","'; |
|
} |
} else { |
} else { |
my %reply=&Apache::lonnet::idrget($sdom,$sname); |
my %reply=&Apache::lonnet::idrget($sdom,$sname); |
my $reply=&Apache::lonnet::reply('get:'.$sdom.':'.$sname. |
my $reply=&Apache::lonnet::reply('get:'.$sdom.':'.$sname. |
':environment:firstname&middlename&lastname&generation', |
':environment:firstname&middlename&lastname&generation', |
&Apache::lonnet::homeserver($sname,$sdom)); |
&Apache::lonnet::homeserver($sname,$sdom)); |
|
unless ($ENV{'form.showcsv'}) { |
$rowlabel='<a href="/adm/studentcalc?uname='.$sname. |
$rowlabel='<a href="/adm/studentcalc?uname='.$sname. |
'&udom='.$sdom.'">'. |
'&udom='.$sdom.'">'. |
$ssec.' '.$reply{$sname}.'<br>'; |
$ssec.' '.$reply{$sname}.'<br>'; |
Line 1154 sub updateclasssheet {
|
Line 1176 sub updateclasssheet {
|
$rowlabel.=&Apache::lonnet::unescape($_).' '; |
$rowlabel.=&Apache::lonnet::unescape($_).' '; |
} split(/\&/,$reply); |
} split(/\&/,$reply); |
$rowlabel.='</a>'; |
$rowlabel.='</a>'; |
|
} 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; |
$currentlist{&Apache::lonnet::unescape($name)}=$rowlabel; |
} |
} |
Line 1214 sub updatestudentassesssheet {
|
Line 1246 sub updatestudentassesssheet {
|
|
|
my %allkeys=('timestamp' => |
my %allkeys=('timestamp' => |
'Timestamp of Last Transaction<br>timestamp'); |
'Timestamp of Last Transaction<br>timestamp'); |
my %allassess=(); |
|
|
|
my $adduserstr=''; |
my $adduserstr=''; |
if ((&getuname($safeeval) ne $ENV{'user.name'}) || |
if ((&getuname($safeeval) ne $ENV{'user.name'}) || |
Line 1223 sub updatestudentassesssheet {
|
Line 1254 sub updatestudentassesssheet {
|
'&udom='.&getudom($safeeval); |
'&udom='.&getudom($safeeval); |
} |
} |
|
|
|
my %allassess=('_feedback' => |
|
'<a href="/adm/assesscalc?usymb=_feedback'.$adduserstr. |
|
'">Feedback</a>', |
|
'_evaluation' => |
|
'<a href="/adm/assesscalc?usymb=_evaluation'.$adduserstr. |
|
'">Evaluation</a>', |
|
'_tutoring' => |
|
'<a href="/adm/assesscalc?usymb=_tutoring'.$adduserstr. |
|
'">Tutoring</a>', |
|
'_discussion' => |
|
'<a href="/adm/assesscalc?usymb=_discussion'.$adduserstr. |
|
'">Discussion</a>' |
|
); |
|
|
map { |
map { |
if ($_=~/^src\_(\d+)\.(\d+)$/) { |
if ($_=~/^src\_(\d+)\.(\d+)$/) { |
my $mapid=$1; |
my $mapid=$1; |
Line 1247 sub updatestudentassesssheet {
|
Line 1292 sub updatestudentassesssheet {
|
$display.= |
$display.= |
&Apache::lonnet::metadata($srcf,$key.'.name'); |
&Apache::lonnet::metadata($srcf,$key.'.name'); |
} |
} |
$key=~s/\W/\_/g; |
|
$display.='<br>'.$key; |
$display.='<br>'.$key; |
$allkeys{$key}=$display; |
$allkeys{$key}=$display; |
} |
} |
Line 1567 sub loadassessment {
|
Line 1611 sub loadassessment {
|
} else { |
} else { |
my $key=$f{$_}; |
my $key=$f{$_}; |
my $ckey=$key; |
my $ckey=$key; |
$ckey=~s/\W/\_/g; |
|
$key=~s/^stores\_/resource\./; |
$key=~s/^stores\_/resource\./; |
$key=~s/\_/\./; |
$key=~s/\_/\./g; |
$c{$_}=$returnhash{$key}; |
$c{$_}=$returnhash{$key}; |
$c{$ckey}=$returnhash{$key}; |
$c{$ckey}=$returnhash{$key}; |
} |
} |
Line 1676 sub forcedrecalc {
|
Line 1719 sub forcedrecalc {
|
sub exportsheet { |
sub exportsheet { |
my ($uname,$udom,$stype,$usymb,$fn)=@_; |
my ($uname,$udom,$stype,$usymb,$fn)=@_; |
my @exportarr=(); |
my @exportarr=(); |
|
|
|
if (($usymb=~/^\_(\w+)/) && (!$fn)) { |
|
$fn='default_'.$1; |
|
} |
|
|
# |
# |
# Check if cached |
# Check if cached |
# |
# |
Line 1900 $tmpdir=$r->dir_config('lonDaemons').'/t
|
Line 1948 $tmpdir=$r->dir_config('lonDaemons').'/t
|
} |
} |
} (split(/&/,$ENV{'QUERY_STRING'})); |
} (split(/&/,$ENV{'QUERY_STRING'})); |
|
|
|
if (($ENV{'form.usymb'}=~/^\_(\w+)/) && (!$ENV{'form.ufn'})) { |
|
$ENV{'form.ufn'}='default_'.$1; |
|
} |
|
|
# -------------------------------------- Interactive loading of specific sheet? |
# -------------------------------------- Interactive loading of specific sheet? |
if (($ENV{'form.load'}) && ($ENV{'form.loadthissheet'} ne 'Default')) { |
if (($ENV{'form.load'}) && ($ENV{'form.loadthissheet'} ne 'Default')) { |
$ENV{'form.ufn'}=$ENV{'form.loadthissheet'}; |
$ENV{'form.ufn'}=$ENV{'form.loadthissheet'}; |
Line 2145 ENDSCRIPT
|
Line 2197 ENDSCRIPT
|
$r->print('<input type=checkbox name=showall onClick="submit()"'); |
$r->print('<input type=checkbox name=showall onClick="submit()"'); |
if ($ENV{'form.showall'}) { $r->print(' checked'); } |
if ($ENV{'form.showall'}) { $r->print(' checked'); } |
$r->print('>'); |
$r->print('>'); |
|
if (&gettype($asheet) eq 'classcalc') { |
|
$r->print( |
|
' Output CSV format: <input type=checkbox name=showcsv onClick="submit()"'); |
|
if ($ENV{'form.showcsv'}) { $r->print(' checked'); } |
|
$r->print('>'); |
|
} |
# ------------------------------------------------------------- Print out sheet |
# ------------------------------------------------------------- Print out sheet |
|
|
&outsheet($r,$asheet); |
&outsheet($r,$asheet); |