".
' | '.$what.' | ';
map {
- $rowdata.=''.$_.' | ';
+ $headerrow.=''.$_.' | ';
} ('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',
'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');
- $rowdata.='
';
+ $headerrow.='';
}
$rowdata.="\n$n | ";
my $showf=0;
my $proc;
my $maxred;
- if (&gettype($safeeval) eq 'studentcalc') {
+ my $sheettype=&gettype($safeeval);
+ if ($sheettype eq 'studentcalc') {
$proc='&outrowassess';
$maxred=26;
} else {
$proc='&outrow';
}
- if (&gettype($safeeval) eq 'assesscalc') {
+ if ($sheettype eq 'assesscalc') {
$maxred=1;
} else {
$maxred=26;
}
- if ($n eq '-') { $proc='&templaterow'; $n=-1; }
+ if ($n eq '-') { $proc='&templaterow'; $n=-1; $dataflag=1; }
map {
my $bgcolor=$defaultbg.((($showf-1)/5==int(($showf-1)/5))?'99':'DD');
my ($fm,$vl)=split(/\_\_\_eq\_\_\_/,$_);
+ if ((($vl ne '') || ($vl eq '0')) &&
+ (($showf==1) || ($sheettype ne 'studentcalc'))) { $dataflag=1; }
if ($showf==0) { $vl=$_; }
if ($showf<=$maxred) { $bgcolor='#FFDDDD'; }
if (($n==0) && ($showf<=26)) { $bgcolor='#CCCCFF'; }
@@ -699,7 +731,11 @@ sub rown {
}
$showf++;
} $safeeval->reval($proc.'('.$n.')');
- return $rowdata.'
';
+ if ($ENV{'form.showall'} || ($dataflag)) {
+ return $headerrow.$rowdata.'';
+ } else {
+ return $headerrow;
+ }
}
# ------------------------------------------------------------- Print out sheet
@@ -893,8 +929,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 +1000,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 +1274,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;
@@ -1479,6 +1522,18 @@ sub loadassessment {
# ----------------- now courseopt, useropt initialized for this user and course
# (used by parmval)
+#
+# Load keys for this assessment only
+#
+ my %thisassess=();
+ my ($symap,$syid,$srcf)=split(/\_\_\_/,$symb);
+
+ map {
+ $thisassess{$_}=1;
+ } split(/\,/,&Apache::lonnet::metadata($srcf,'keys'));
+#
+# Load parameters
+#
my %c=();
if (tie(%parmhash,'GDBM_File',
@@ -1488,9 +1543,11 @@ sub loadassessment {
if ($_=~/^A/) {
unless ($f{$_}=~/^\!/) {
if ($f{$_}=~/^parameter/) {
+ if ($thisassess{$f{$_}}) {
my $val=&parmval($f{$_},$safeeval);
$c{$_}=$val;
$c{$f{$_}}=$val;
+ }
} else {
my $key=$f{$_};
my $ckey=$key;
@@ -1939,7 +1996,8 @@ ENDSCRIPT
# ---------------------------------------------------------------- Course title
$r->print(''.
- $ENV{'course.'.$ENV{'request.course.id'}.'.description'}.'
');
+ $ENV{'course.'.$ENV{'request.course.id'}.'.description'}.
+ ''.localtime().'
');
# ---------------------------------------------------- See if user can see this
@@ -1953,27 +2011,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 +2099,38 @@ 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);
+
+ if (&gettype($asheet) eq 'studentcalc') {
+ $r->print('
Show rows with empty A column: ');
+ } else {
+ $r->print('
Show empty rows: ');
+ }
+ $r->print('print(' checked'); }
+ $r->print('>');
+
+# ------------------------------------------------------------- Print out sheet
+
&outsheet($r,$asheet);
$r->print('