--- loncom/interface/lonparmset.pm 2002/11/03 19:05:31 1.76
+++ loncom/interface/lonparmset.pm 2002/11/21 22:32:53 1.79
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.76 2002/11/03 19:05:31 www Exp $
+# $Id: lonparmset.pm,v 1.79 2002/11/21 22:32:53 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -780,6 +780,8 @@ sub assessparms {
if ($snum==5) { $storeunder=$seclevelm; }
if ($snum==4) { $storeunder=$seclevelr; }
+ my $delete;
+ if ($ENV{'form.pres_value'} eq '') { $delete=1;}
my %storecontent = ($storeunder => $ENV{'form.pres_value'},
$storeunder.'.type' => $ENV{'form.pres_type'});
my $reply='';
@@ -796,10 +798,17 @@ sub assessparms {
&Apache::lonnet::expirespread('','','assesscalc');
}
# Store parameter
- $reply=&Apache::lonnet::cput
- ('resourcedata',\%storecontent,
- $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
- $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+ if ($delete) {
+ $reply=&Apache::lonnet::del
+ ('resourcedata',[keys(%storecontent)],
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+ } else {
+ $reply=&Apache::lonnet::cput
+ ('resourcedata',\%storecontent,
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+ }
} else {
# ------------------------------------------------------------------ Store User
#
@@ -815,8 +824,13 @@ sub assessparms {
&Apache::lonnet::expirespread($uname,$udom,'assesscalc');
}
# Store parameter
- $reply=&Apache::lonnet::cput
- ('resourcedata',\%storecontent,$udom,$uname);
+ if ($delete) {
+ $reply=&Apache::lonnet::del
+ ('resourcedata',[keys(%storecontent)],$udom,$uname);
+ } else {
+ $reply=&Apache::lonnet::cput
+ ('resourcedata',\%storecontent,$udom,$uname);
+ }
}
if ($reply=~/^error\:(.*)/) {
@@ -1377,6 +1391,21 @@ sub crsenv {
$dom,$crs).
'
';
}
+ if ($name =~ /^spreadsheet_default_(classcalc|
+ studentcalc|
+ assesscalc)$/x) {
+ my $sheettype = $1;
+ if ($sheettype eq 'classcalc') {
+ # no need to do anything since viewing the sheet will
+ # cause it to be updated.
+ } elsif ($sheettype eq 'studentcalc') {
+ # expire all the student spreadsheets
+ &Apache::lonnet::expirespread('','','studentcalc');
+ } else {
+ # expire all the default assessment spreadsheets
+ }
+ }
+
if ($name) {
$setoutput.='Setting '.$name.' to '.
$value.': '.