--- loncom/interface/lonparmset.pm 2005/03/17 22:12:52 1.187
+++ loncom/interface/lonparmset.pm 2005/05/30 17:58:51 1.195
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.187 2005/03/17 22:12:52 www Exp $
+# $Id: lonparmset.pm,v 1.195 2005/05/30 17:58:51 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -115,13 +115,13 @@ sub parmval {
my $symbparm=$symbp{$id}.'.'.$what;
my $mapparm=$mapp{$id}.'___(all).'.$what;
- my $seclevel=$ENV{'request.course.id'}.'.['.$csec.'].'.$what;
- my $seclevelr=$ENV{'request.course.id'}.'.['.$csec.'].'.$symbparm;
- my $seclevelm=$ENV{'request.course.id'}.'.['.$csec.'].'.$mapparm;
-
- my $courselevel=$ENV{'request.course.id'}.'.'.$what;
- my $courselevelr=$ENV{'request.course.id'}.'.'.$symbparm;
- my $courselevelm=$ENV{'request.course.id'}.'.'.$mapparm;
+ my $seclevel=$env{'request.course.id'}.'.['.$csec.'].'.$what;
+ my $seclevelr=$env{'request.course.id'}.'.['.$csec.'].'.$symbparm;
+ my $seclevelm=$env{'request.course.id'}.'.['.$csec.'].'.$mapparm;
+
+ my $courselevel=$env{'request.course.id'}.'.'.$what;
+ my $courselevelr=$env{'request.course.id'}.'.'.$symbparm;
+ my $courselevelm=$env{'request.course.id'}.'.'.$mapparm;
@@ -212,13 +212,13 @@ sub storeparm {
my $symbparm=$symbp{$sresid}.'.'.$spnam;
my $mapparm=$mapp{$sresid}.'___(all).'.$spnam;
- my $seclevel=$ENV{'request.course.id'}.'.['.$csec.'].'.$spnam;
- my $seclevelr=$ENV{'request.course.id'}.'.['.$csec.'].'.$symbparm;
- my $seclevelm=$ENV{'request.course.id'}.'.['.$csec.'].'.$mapparm;
+ my $seclevel=$env{'request.course.id'}.'.['.$csec.'].'.$spnam;
+ my $seclevelr=$env{'request.course.id'}.'.['.$csec.'].'.$symbparm;
+ my $seclevelm=$env{'request.course.id'}.'.['.$csec.'].'.$mapparm;
- my $courselevel=$ENV{'request.course.id'}.'.'.$spnam;
- my $courselevelr=$ENV{'request.course.id'}.'.'.$symbparm;
- my $courselevelm=$ENV{'request.course.id'}.'.'.$mapparm;
+ my $courselevel=$env{'request.course.id'}.'.'.$spnam;
+ my $courselevelr=$env{'request.course.id'}.'.'.$symbparm;
+ my $courselevelm=$env{'request.course.id'}.'.'.$mapparm;
my $storeunder='';
if (($snum==11) || ($snum==3)) { $storeunder=$courselevel; }
@@ -249,13 +249,13 @@ sub storeparm {
if ($delete) {
$reply=&Apache::lonnet::del
('resourcedata',[keys(%storecontent)],
- $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
- $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+ $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'});
+ $env{'course.'.$env{'request.course.id'}.'.domain'},
+ $env{'course.'.$env{'request.course.id'}.'.num'});
}
} else {
# ------------------------------------------------------------------ Store User
@@ -279,6 +279,7 @@ sub storeparm {
$reply=&Apache::lonnet::cput
('resourcedata',\%storecontent,$udom,$uname);
}
+ &Apache::lonnet::devalidateuserresdata($uname,$udom);
}
if ($reply=~/^error\:(.*)/) {
@@ -367,9 +368,9 @@ sub plink {
my $winvalue=$value;
unless ($winvalue) {
if ($type=~/^date/) {
- $winvalue=$ENV{'form.recent_'.$type};
+ $winvalue=$env{'form.recent_'.$type};
} else {
- $winvalue=$ENV{'form.recent_'.(split(/\_/,$type))[0]};
+ $winvalue=$env{'form.recent_'.(split(/\_/,$type))[0]};
}
}
return
@@ -384,6 +385,7 @@ sub startpage {
my $bodytag=&Apache::loncommon::bodytag('Set/Modify Course Parameters','',
'onUnload="pclose()"');
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Table');
my $chooseopt=&Apache::loncommon::select_dom_form($udom,'udom').' '.
&Apache::loncommon::selectstudent_link('parmform','uname','udom');
my $selscript=&Apache::loncommon::studentbrowser_javascript();
@@ -453,6 +455,7 @@ $html
$selscript
$bodytag
+$breadcrumbs
$overallhelp
ENDHEAD
@@ -474,9 +477,22 @@ $assessparmhelp
ENDHEAD2
-}
- $r->print(<
+ }
+ my %sectionhash=();
+ my $sections='';
+ if (&Apache::loncommon::get_sections(
+ $env{'course.'.$env{'request.course.id'}.'.domain'},
+ $env{'course.'.$env{'request.course.id'}.'.num'},
+ \%sectionhash)) {
+ $sections=$lt{'sg'}.': ';
+ }
+ $r->print(<
$lt{'captm'}
ENDHEAD3
@@ -485,13 +501,12 @@ ENDHEAD3
} else {
$r->print(<
-$lt{'sg'}:
-
-
+$sections
+
$lt{'fu'}
-
+
$lt{'oi'}
-
+
$lt{'ad'}
$chooseopt
@@ -700,7 +715,7 @@ sub extractResourceInformation {
my $name=&Apache::lonnet::metadata($srcf,$key.'.name');
my $part= &Apache::lonnet::metadata($srcf,$key.'.part');
my $parmdis = $display;
- $parmdis =~ s|(\[Part.*$)||g;
+ $parmdis =~ s|(\[Part.*)$||g;
my $partkey = $part;
$partkey =~ tr|_|.|;
$$allparms{$name} = $parmdis;
@@ -776,7 +791,7 @@ sub assessparms {
my $uhome;
my $csec;
- my $coursename=$ENV{'course.'.$ENV{'request.course.id'}.'.description'};
+ my $coursename=$env{'course.'.$env{'request.course.id'}.'.description'};
$alllevs{'Resource Level'}='full';
$alllevs{'Map Level'}='map';
@@ -796,53 +811,54 @@ sub assessparms {
my $message='';
- $csec=$ENV{'form.csec'};
- if ($udom=$ENV{'form.udom'}) {
- } elsif ($udom=$ENV{'request.role.domain'}) {
- } elsif ($udom=$ENV{'user.domain'}) {
+ $csec=$env{'form.csec'};
+
+ if ($udom=$env{'form.udom'}) {
+ } elsif ($udom=$env{'request.role.domain'}) {
+ } elsif ($udom=$env{'user.domain'}) {
} else {
$udom=$r->dir_config('lonDefDomain');
}
my @pscat=&Apache::loncommon::get_env_multiple('form.pscat');
- my $pschp=$ENV{'form.pschp'};
+ my $pschp=$env{'form.pschp'};
my @psprt=&Apache::loncommon::get_env_multiple('form.psprt');
if (!@psprt) { $psprt[0]='0'; }
- my $showoptions=$ENV{'form.showoptions'};
+ my $showoptions=$env{'form.showoptions'};
my $pssymb='';
my $parmlev='';
my $trimheader='';
- my $prevvisit=$ENV{'form.prevvisit'};
+ my $prevvisit=$env{'form.prevvisit'};
- unless ($ENV{'form.parmlev'}) {
+ unless ($env{'form.parmlev'}) {
$parmlev = 'map';
} else {
- $parmlev = $ENV{'form.parmlev'};
+ $parmlev = $env{'form.parmlev'};
}
# ----------------------------------------------- Was this started from grades?
- if (($ENV{'form.command'} eq 'set') && ($ENV{'form.url'})
- && (!$ENV{'form.dis'})) {
- my $url=$ENV{'form.url'};
+ if (($env{'form.command'} eq 'set') && ($env{'form.url'})
+ && (!$env{'form.dis'})) {
+ my $url=$env{'form.url'};
$url=~s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--;
$pssymb=&Apache::lonnet::symbread($url);
if (!@pscat) { @pscat=('all'); }
$pschp='';
$parmlev = 'full';
$trimheader='yes';
- } elsif ($ENV{'form.symb'}) {
- $pssymb=$ENV{'form.symb'};
+ } elsif ($env{'form.symb'}) {
+ $pssymb=$env{'form.symb'};
if (!@pscat) { @pscat=('all'); }
$pschp='';
$parmlev = 'full';
$trimheader='yes';
} else {
- $ENV{'form.url'}='';
+ $env{'form.url'}='';
}
- my $id=$ENV{'form.id'};
+ my $id=$env{'form.id'};
if (($id) && ($udom)) {
$uname=(&Apache::lonnet::idget($udom,$id))[1];
if ($uname) {
@@ -853,7 +869,7 @@ sub assessparms {
&mt('at domain')." '$udom'";
}
} else {
- $uname=$ENV{'form.uname'};
+ $uname=$env{'form.uname'};
}
unless ($udom) { $uname=''; }
$uhome='';
@@ -866,13 +882,13 @@ sub assessparms {
$uname='';
} else {
$csec=&Apache::lonnet::getsection($udom,$uname,
- $ENV{'request.course.id'});
+ $env{'request.course.id'});
if ($csec eq '-1') {
$message="".
&mt("User")." '$uname' ".&mt("at domain")." '$udom' ".
&mt("not in this course")."";
$uname='';
- $csec=$ENV{'form.csec'};
+ $csec=$env{'form.csec'};
} else {
my %name=&Apache::lonnet::userenvironment($udom,$uname,
('firstname','middlename','lastname','generation','id'));
@@ -886,46 +902,46 @@ sub assessparms {
unless ($csec) { $csec=''; }
- my $fcat=$ENV{'form.fcat'};
+ my $fcat=$env{'form.fcat'};
unless ($fcat) { $fcat=''; }
# ------------------------------------------------------------------- Tie hashs
- if (!(tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db',
+ if (!(tie(%bighash,'GDBM_File',$env{'request.course.fn'}.'.db',
&GDBM_READER(),0640))) {
- $r->print("Unable to access course data. (File $ENV{'request.course.fn'}.db not tieable)");
+ $r->print("Unable to access course data. (File $env{'request.course.fn'}.db not tieable)");
return ;
}
if (!(tie(%parmhash,'GDBM_File',
- $ENV{'request.course.fn'}.'_parms.db',&GDBM_READER(),0640))) {
- $r->print("Unable to access parameter data. (File $ENV{'request.course.fn'}_parms.db not tieable)");
+ $env{'request.course.fn'}.'_parms.db',&GDBM_READER(),0640))) {
+ $r->print("Unable to access parameter data. (File $env{'request.course.fn'}_parms.db not tieable)");
return ;
}
# --------------------------------------------------------- Get all assessments
- extractResourceInformation(\%bighash, \@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp,\%maptitles);
+ &extractResourceInformation(\%bighash, \@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp,\%maptitles);
$mapp{'0.0'} = '';
$symbp{'0.0'} = '';
# ---------------------------------------------------------- Anything to store?
- if ($ENV{'form.pres_marker'}) {
- $message.=&storeparm(split(/\&/,$ENV{'form.pres_marker'}),
- $ENV{'form.pres_value'},
- $ENV{'form.pres_type'},
+ if ($env{'form.pres_marker'}) {
+ $message.=&storeparm(split(/\&/,$env{'form.pres_marker'}),
+ $env{'form.pres_value'},
+ $env{'form.pres_type'},
$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').'
';
}
# --------------------------------------------- Devalidate cache for this child
&Apache::lonnet::devalidatecourseresdata(
- $ENV{'course.'.$ENV{'request.course.id'}.'.num'},
- $ENV{'course.'.$ENV{'request.course.id'}.'.domain'});
- &Apache::lonnet::clear_EXT_cache_status();
+ $env{'course.'.$env{'request.course.id'}.'.num'},
+ $env{'course.'.$env{'request.course.id'}.'.domain'});
+ #&Apache::lonnet::clear_EXT_cache_status();
# -------------------------------------------------------------- Get coursedata
%courseopt = &Apache::lonnet::dump
('resourcedata',
- $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
- $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+ $env{'course.'.$env{'request.course.id'}.'.domain'},
+ $env{'course.'.$env{'request.course.id'}.'.num'});
# --------------------------------------------------- Get userdata (if present)
if ($uname) {
%useropt=&Apache::lonnet::dump('resourcedata',$udom,$uname);
@@ -952,6 +968,7 @@ sub assessparms {
my $have_assesments=1;
if (scalar(keys(%allkeys)) eq 0) { $have_assesments=0; }
+ $trimheader = 'yes';
&startpage($r,$id,$udom,$csec,$uname,$have_assesments,$trimheader);
if (!$have_assesments) {
@@ -959,8 +976,8 @@ sub assessparms {
untie(%parmhash);
return '';
}
-# if ($ENV{'form.url'}) {
-# $r->print('');
# }
$r->print('');
@@ -968,7 +985,7 @@ sub assessparms {
foreach ('tolerance','date_default','date_start','date_end',
'date_interval','int','float','string') {
$r->print('');
+ $env{'form.recent_'.$_}.'" name="recent_'.$_.'">');
}
$r->print('
'.$message.'
');
@@ -1134,8 +1151,8 @@ sub assessparms {
if (($prevvisit) || ($pschp) || ($pssymb)) {
# ----------------------------------------------------------------- Start Table
my @catmarker=map { tr|.|_|; 'parameter_'.$_; } @pscat;
- my $csuname=$ENV{'user.name'};
- my $csudom=$ENV{'user.domain'};
+ my $csuname=$env{'user.name'};
+ my $csudom=$env{'user.domain'};
if ($parmlev eq 'full' || $parmlev eq 'brief') {
my $coursespan=$csec?8:5;
@@ -1177,8 +1194,8 @@ ENDTABLETWO
$r->print(<
$lt{'aut'}
$lt{'type'}
$lt{'emof'}
$lt{'part'}
$lt{'pn'}
-
$lt{'gen'}
$lt{'femof'}
-
$lt{'def'}
$lt{'foremf'}
$lt{'fr'}
+
$lt{'gen'}
$lt{'foremf'}
+
$lt{'def'}
$lt{'femof'}
$lt{'fr'}
ENDTABLEHEADFOUR
if ($csec) {
@@ -1496,17 +1513,19 @@ sub crsenv {
my $setoutput='';
my $bodytag=&Apache::loncommon::bodytag(
'Set Course Environment Parameters');
- my $dom = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
- my $crs = $ENV{'course.'.$ENV{'request.course.id'}.'.num'};
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,
+ 'Edit Course Environment');
+ my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
#
# Go through list of changes
- foreach (keys %ENV) {
+ foreach (keys %env) {
next if ($_!~/^form\.(.+)\_setparmval$/);
my $name = $1;
- my $value = $ENV{'form.'.$name.'_value'};
+ my $value = $env{'form.'.$name.'_value'};
if ($name eq 'newp') {
- $name = $ENV{'form.newp_name'};
+ $name = $env{'form.newp_name'};
}
if ($name eq 'url') {
$value=~s/^\/res\///;
@@ -1582,7 +1601,7 @@ sub crsenv {
}
# ------------------------- Re-init course environment entries for this session
- &Apache::lonnet::coursedescription($ENV{'request.course.id'});
+ &Apache::lonnet::coursedescription($env{'request.course.id'});
# -------------------------------------------------------- Get parameters again
@@ -1778,7 +1797,7 @@ sub crsenv {
my $Set=&mt('Set');
my $browse_js=&Apache::loncommon::browser_and_searcher_javascript('parmset');
my $html=&Apache::lonxml::xmlbegin();
- $r->print(<print(<