--- loncom/interface/Attic/lonspreadsheet.pm 2002/08/12 18:21:42 1.99 +++ loncom/interface/Attic/lonspreadsheet.pm 2002/09/09 18:28:02 1.100.2.1 @@ -1,5 +1,5 @@ # -# $Id: lonspreadsheet.pm,v 1.99 2002/08/12 18:21:42 albertel Exp $ +# $Id: lonspreadsheet.pm,v 1.100.2.1 2002/09/09 18:28:02 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -768,6 +768,14 @@ sub expandnamed { } if ($#matches == 0) { $returnvalue = '$c{\''.$matches[0].'\'}'; + } elsif ($#matches > 0) { + # more than one match. Look for a concise one + $returnvalue = "'non-unique parameter name : $expression'"; + foreach (@matches) { + if (/^$expression$/) { + $returnvalue = '$c{\''.$_.'\'}'; + } + } } else { $returnvalue = "'bad parameter name : $expression'"; } @@ -1742,8 +1750,11 @@ sub updatestudentassesssheet { my $safeeval=shift; my %bighash; my $stype=&gettype($safeeval); + my $uname=&getuname($safeeval); + my $udom =&getudom($safeeval); my %current=(); - unless ($updatedata{$ENV{'request.course.fn'}.'_'.$stype}) { + unless ($updatedata{ + $ENV{'request.course.fn'}.'_'.$stype.'_'.$uname.'_'.$udom}) { # -------------------------------------------------------------------- Tie hash if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', &GDBM_READER(),0640)) { @@ -1824,7 +1835,7 @@ sub updatestudentassesssheet { } elsif ($stype eq 'studentcalc') { %current=%allassess; } - $updatedata{$ENV{'request.course.fn'}.'_'.$stype}= + $updatedata{$ENV{'request.course.fn'}.'_'.$stype.'_'.$uname.'_'.$udom}= join('___;___',%current); } else { return 'Could not access course data'; @@ -1832,7 +1843,7 @@ sub updatestudentassesssheet { # ------------------------------------------------------ Get current from cache } else { %current=split(/\_\_\_\;\_\_\_/, - $updatedata{$ENV{'request.course.fn'}.'_'.$stype}); + $updatedata{$ENV{'request.course.fn'}.'_'.$stype.'_'.$uname.'_'.$udom}); } # -------------------- Find discrepancies between the course row table and this #