--- loncom/interface/lonparmset.pm 2005/06/02 19:17:12 1.201
+++ loncom/interface/lonparmset.pm 2005/06/03 21:19:04 1.206
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.201 2005/06/02 19:17:12 www Exp $
+# $Id: lonparmset.pm,v 1.206 2005/06/03 21:19:04 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -217,6 +217,10 @@ sub cacheparmhash {
}
}
+sub resetsymbcache {
+ $symbsid='';
+}
+
sub symbcache {
my $id=shift;
if ($symbsid ne $env{'request.course.id'}) {
@@ -442,33 +446,23 @@ sub plink {
&valout($value,$type).'';
}
-
sub startpage {
- my ($r,$id,$udom,$csec,$uname,$have_assesments,$trimheader)=@_;
+ my ($r,$id,$udom,$csec,$uname,$have_assessments)=@_;
my $bodytag=&Apache::loncommon::bodytag('Set/Modify Course Parameters','',
'onUnload="pclose()"');
- my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Table');
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Table Mode Parameter Setting');
my $chooseopt=&Apache::loncommon::select_dom_form($udom,'udom').' '.
&Apache::loncommon::selectstudent_link('parmform','uname','udom');
my $selscript=&Apache::loncommon::studentbrowser_javascript();
my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
my %lt=&Apache::lonlocal::texthash(
- 'cep' => "Course Environment Parameters",
- 'scep' => "Set Course Environment Parameters",
- 'smcap' => "Set/Modify Course Assessment Parameter",
- 'mcap' => "Modify Course Assessment Parameters",
- 'caphm' => "Course Assessment Parameter - Helper Mode",
- 'capom' => "Course Assessment Parameters - Overview Mode",
'captm' => "Course Assessments Parameters - Table Mode",
'sg' => "Section/Group",
'fu' => "For User",
'oi' => "or ID",
'ad' => "at Domain"
);
- my $overallhelp=
- &Apache::loncommon::help_open_menu('','Setting Parameters','Course_Setting_Parameters','',10,'Instructor Interface');
- my $assessparmhelp=&Apache::loncommon::help_open_topic("Cascading_Parameters","Assessment Parameters");
my $html=&Apache::lonxml::xmlbegin();
$r->print(<
$bodytag
$breadcrumbs
-$overallhelp
ENDHEAD
-
- unless ($trimheader) {$r->print(<
-
$lt{'cep'}
-
-
-
-$assessparmhelp
-
-
-
-
-ENDHEAD2
- }
my %sectionhash=();
my $sections='';
if (&Apache::loncommon::get_sections(
@@ -559,8 +532,8 @@ ENDHEAD2
$lt{'captm'}
ENDHEAD3
- if (!$have_assesments) {
- $r->print(''.&mt('There are no assesment parameters in this course to set.').' ');
+ if (!$have_assessments) {
+ $r->print(''.&mt('There are no assessment parameters in this course to set.').' ');
} else {
$r->print(<
@@ -603,7 +576,7 @@ sub print_row {
}
my $parm=$$display{$which};
- if ($parmlev eq 'full' || $parmlev eq 'brief') {
+ if ($parmlev eq 'full') {
$r->print('
');
- if ($parmlev eq 'full' || $parmlev eq 'brief') {
+ if ($parmlev eq 'full') {
my $sessionval=&Apache::lonnet::EXT('resource.'.$$part{$which}.
'.'.$$name{$which},$$symbp{$rid});
-
-# this doesn't seem to work, and I don't think is correct
-# my $sessionvaltype=&Apache::lonnet::EXT('resource.'.$$part{$which}.
-# '.'.$$name{$which}.'.type',$symbp{$rid});
-# this seems to work
my $sessionvaltype=$typeoutpar[$result];
if (!defined($sessionvaltype)) { $sessionvaltype=$$defaulttype{$which}; }
$r->print('
'.
@@ -896,7 +852,6 @@ sub assessparms {
my $pssymb='';
my $parmlev='';
- my $trimheader='';
my $prevvisit=$env{'form.prevvisit'};
unless ($env{'form.parmlev'}) {
@@ -915,13 +870,11 @@ sub assessparms {
if (!@pscat) { @pscat=('all'); }
$pschp='';
$parmlev = 'full';
- $trimheader='yes';
} elsif ($env{'form.symb'}) {
$pssymb=$env{'form.symb'};
if (!@pscat) { @pscat=('all'); }
$pschp='';
$parmlev = 'full';
- $trimheader='yes';
} else {
$env{'form.url'}='';
}
@@ -981,10 +934,15 @@ sub assessparms {
# ---------------------------------------------------------- Anything to store?
if ($env{'form.pres_marker'}) {
- $message.=&storeparm(split(/\&/,$env{'form.pres_marker'}),
- $env{'form.pres_value'},
- $env{'form.pres_type'},
- $uname,$udom,$csec);
+ my @markers=split(/\&\&\&/,$env{'form.pres_marker'});
+ my @values=split(/\&\&\&/,$env{'form.pres_value'});
+ my @types=split(/\&\&\&/,$env{'form.pres_type'});
+ for (my $i=0;$i<=$#markers;$i++) {
+ $message.=&storeparm(split(/\&/,$markers[$i]),
+ $values[$i],
+ $types[$i],
+ $uname,$udom,$csec);
+ }
# ---------------------------------------------------------------- Done storing
$message.='
'.&mt('Changes can take up to 10 minutes before being active for all students.').&Apache::loncommon::help_open_topic('Caching').'
';
}
@@ -1006,16 +964,8 @@ sub assessparms {
if ($psprt[0] eq "all" || !@psprt) {@psprt = (keys %allparts);}
# ------------------------------------------------------------------ Start page
- my $have_assesments=1;
- if (scalar(keys(%allkeys)) eq 0) { $have_assesments=0; }
-
- $trimheader = 'yes';
- &startpage($r,$id,$udom,$csec,$uname,$have_assesments,$trimheader);
+ &startpage($r,$id,$udom,$csec,$uname,scalar(keys(%allkeys)));
-# if ($env{'form.url'}) {
-# $r->print('');
-# }
$r->print('');
foreach ('tolerance','date_default','date_start','date_end',
@@ -1190,7 +1140,7 @@ sub assessparms {
my $csuname=$env{'user.name'};
my $csudom=$env{'user.domain'};
- if ($parmlev eq 'full' || $parmlev eq 'brief') {
+ if ($parmlev eq 'full') {
my $coursespan=$csec?8:5;
$r->print('
');
$r->print('
');
@@ -1336,7 +1286,7 @@ ENDTABLEHEADFOUR
} # end foreach ids
# -------------------------------------------------- End entry for one resource
$r->print('
');
- } # end of brief/full
+ } # end of full
#--------------------------------------------------- Entry for parm level map
if ($parmlev eq 'map') {
my $defbgone = '"E0E099"';
@@ -1927,6 +1877,7 @@ ENDOVER
$r->print('
'.
&mt('Error deleting parameters').'
');
}
+ &Apache::lonnet::devalidatecourseresdata($crs,$dom);
}
if ($putentries) {
if (&Apache::lonnet::put('resourcedata',\%newdata,$dom,$crs) eq 'ok') {
@@ -1935,22 +1886,47 @@ ENDOVER
$r->print('
'.
&mt('Error storing parameters').'
');
}
+ &Apache::lonnet::devalidatecourseresdata($crs,$dom);
}
-# Read and display
- my %resourcedata=&Apache::lonnet::dump('resourcedata',$dom,$crs);
+# Read coursedata
+ my $resourcedata=&Apache::lonnet::get_courseresdata($crs,$dom);
+# Read userdata
+
+ my $classlist=&Apache::loncoursedata::get_classlist();
+ foreach (keys %$classlist) {
+ # the following undefs are for 'domain', and 'username' respectively.
+ if ($_=~/^(\w+)\:(\w+)$/) {
+ my ($tuname,$tudom)=($1,$2);
+ my $useropt=&Apache::lonnet::get_userresdata($tuname,$tudom);
+ foreach my $userkey (keys %{$useropt}) {
+ if ($userkey=~/^$env{'request.course.id'}/) {
+ my $newkey=$userkey;
+ $newkey=~s/^($env{'request.course.id'}\.)/$1\[useropt\:$tuname\:$tudom\]\./;
+ $$resourcedata{$newkey}=$$useropt{$userkey};
+ }
+ }
+ }
+ }
+
my $oldsection='';
my $oldrealm='';
my $oldpart='';
my $pointer=0;
$tableopen=0;
my $foundkeys=0;
- foreach my $thiskey (sort keys %resourcedata) {
- if ($resourcedata{$thiskey.'.type'}) {
+ foreach my $thiskey (sort keys %{$resourcedata}) {
+ if ($$resourcedata{$thiskey.'.type'}) {
+ $r->print($thiskey);
my ($course,$middle,$part,$name)=
($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
my $section=&mt('All Students');
if ($middle=~/^\[(.*)\]\./) {
- $section=&mt('Group/Section').': '.$1;
+ my $issection=$1;
+ if ($issection=~/^useropt\:(\w+)\:(\w+)/) {
+ $section=&mt('User').": ".&Apache::loncommon::plainname($1,$2);
+ } else {
+ $section=&mt('Group/Section').': '.$issection;
+ }
$middle=~s/^\[(.*)\]\.//;
}
$middle=~s/\.$//;
@@ -1983,19 +1959,19 @@ ENDOVER
':