--- loncom/interface/lonparmset.pm 2002/10/03 22:31:58 1.72
+++ 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.72 2002/10/03 22:31:58 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
@@ -544,6 +546,7 @@ sub extractResourceInformation {
my $defp = shift;
my $mapp = shift;
my $symbp = shift;
+ my $maptitles=shift;
foreach (keys %$bighash) {
if ($_=~/^src\_(\d+)\.(\d+)$/) {
@@ -584,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);
@@ -657,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='';
@@ -750,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'} = '';
@@ -779,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='';
@@ -795,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
#
@@ -814,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(
@@ -894,13 +916,13 @@ sub assessparms {
$r->print('
| ');
- $r->print('
Select Enclosing Map | ');
+ $r->print('
Select Enclosing Map or Folder | ');
$r->print(' |
\n");
} else {
@@ -930,7 +952,6 @@ sub assessparms {
$r->print('>All Parameters');
my $cnt=0;
-
foreach $tempkey (sort { $allparms{$a} cmp $allparms{$b} }
keys %allparms ) {
++$cnt;
@@ -949,10 +970,12 @@ sub assessparms {
$r->print('');
+ my %temphash=();
+ foreach (@psprt) { $temphash{$_}=1; }
foreach $tempkey (sort keys %allparts) {
unless ($tempkey =~ /\./) {
$r->print('');
@@ -962,7 +985,7 @@ sub assessparms {
$r->print('Sort list by | ');
$r->print(' |