--- loncom/interface/lonparmset.pm 2002/10/01 07:09:05 1.71
+++ loncom/interface/lonparmset.pm 2003/03/14 21:15:39 1.80.2.1
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.71 2002/10/01 07:09:05 albertel Exp $
+# $Id: lonparmset.pm,v 1.80.2.1 2003/03/14 21:15:39 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -72,6 +72,8 @@ my %mapp;
my %typep;
my %keyp;
+my %maptitles;
+
my $uname;
my $udom;
my $uhome;
@@ -96,13 +98,13 @@ Returns: A list, the first item is the
11- resource default
10- map default
9 - General Course
-8 - Map level in course
+8 - Map or Folder level in course
7 - resource level in course
6 - General for section
-5 - Map level for section
+5 - Map or Folder level for section
4 - resource level in section
3 - General for specific student
-2 - Map level for specific student
+2 - Map or Folder level for specific student
1 - resource level for specific student
=cut
@@ -467,6 +469,7 @@ sub print_row {
# '.'.$$name{$which}.'.type',$symbp{$rid});
# this seems to work
my $sessionvaltype=$typeoutpar[$result];
+ if (!defined($sessionvaltype)) { $sessionvaltype=$$defaulttype{$which}; }
$r->print('
'.
&valout($sessionval,$sessionvaltype).' '.
'
');
@@ -543,6 +546,7 @@ sub extractResourceInformation {
my $defp = shift;
my $mapp = shift;
my $symbp = shift;
+ my $maptitles=shift;
foreach (keys %$bighash) {
if ($_=~/^src\_(\d+)\.(\d+)$/) {
@@ -583,6 +587,9 @@ sub extractResourceInformation {
&Apache::lonnet::declutter($$bighash{'map_id_'.$mapid});
$$mapp{$mapid}=$$mapp{$id};
$$allmaps{$mapid}=$$mapp{$id};
+ $$maptitles{$mapid}=
+ $$bighash{'title_'.$$bighash{'ids_'.&Apache::lonnet::clutter($$mapp{$id})}};
+ $$maptitles{$$mapp{$id}}=$$maptitles{$mapid};
$$symbp{$id}=$$mapp{$id}.
'___'.$resid.'___'.
&Apache::lonnet::declutter($srcf);
@@ -656,6 +663,7 @@ sub assessparms {
my @pscat=&get_env_multiple('form.pscat');
my $pschp=$ENV{'form.pschp'};
my @psprt=&get_env_multiple('form.psprt');
+ if (!@psprt) { $psprt[0]='0'; }
my $showoptions=$ENV{'form.showoptions'};
my $pssymb='';
@@ -749,7 +757,7 @@ sub assessparms {
}
# --------------------------------------------------------- Get all assessments
- extractResourceInformation(\%bighash, \@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp);
+ extractResourceInformation(\%bighash, \@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp,\%maptitles);
$mapp{'0.0'} = '';
$symbp{'0.0'} = '';
@@ -778,6 +786,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='';
@@ -794,10 +804,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
#
@@ -813,14 +830,20 @@ 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\:(.*)/) {
$message.="Write Error: $1";
}
# ---------------------------------------------------------------- Done storing
+ $message.='
Changes can take up to 10 minutes before being active for all students
';
}
# --------------------------------------------- Devalidate cache for this child
&Apache::lonnet::devalidatecourseresdata(
@@ -893,13 +916,13 @@ sub assessparms {
$r->print('