version 1.2, 2000/11/21 12:22:29
|
version 1.3, 2000/11/21 22:57:53
|
Line 23 my %useropt;
|
Line 23 my %useropt;
|
my %bighash; |
my %bighash; |
my %parmhash; |
my %parmhash; |
|
|
my @srcp; |
my @ids; |
my @typep; |
my %symbp; |
my @resp; |
my %typep; |
my @mapp; |
|
my @symbp; |
|
|
|
my $uname; |
my $uname; |
my $udom; |
my $udom; |
Line 35 my $uhome;
|
Line 33 my $uhome;
|
|
|
my $csec; |
my $csec; |
|
|
|
my $fcat; |
|
|
# -------------------------------------------- Figure out a cascading parameter |
# -------------------------------------------- Figure out a cascading parameter |
|
|
sub parmval { |
sub parmval { |
my ($what,$idx)=@_; |
my ($what,$id)=@_; |
# ----------------------------------------------------- Cascading lookup scheme |
# ----------------------------------------------------- Cascading lookup scheme |
my $symbparm=$symbp[$idx].'.'.$what; |
my $symbparm=$symbp{$id}.'.'.$what; |
my $reslevel= |
my $reslevel= |
$ENV{'request.course.id'}.'.'.$symbparm; |
$ENV{'request.course.id'}.'.'.$symbparm; |
my $seclevel= |
my $seclevel= |
Line 51 sub parmval {
|
Line 51 sub parmval {
|
|
|
# ----------------------------------------------------------- first, check user |
# ----------------------------------------------------------- first, check user |
|
|
|
if ($uname) { |
if ($useropt{$reslevel}) { return $useropt{$reslevel}; } |
if ($useropt{$reslevel}) { return $useropt{$reslevel}; } |
if ($useropt{$seclevel}) { return $useropt{$seclevel}; } |
if ($useropt{$seclevel}) { return $useropt{$seclevel}; } |
if ($useropt{$courselevel}) { return $useropt{$courselevel}; } |
if ($useropt{$courselevel}) { return $useropt{$courselevel}; } |
|
} |
|
|
# -------------------------------------------------------- second, check course |
# -------------------------------------------------------- second, check course |
|
|
Line 65 sub parmval {
|
Line 67 sub parmval {
|
|
|
my $thisparm=$parmhash{$symbparm}; |
my $thisparm=$parmhash{$symbparm}; |
if ($thisparm) { return $thisparm; } |
if ($thisparm) { return $thisparm; } |
|
|
|
|
# --------------------------------------------- last, look in resource metadata |
# --------------------------------------------- last, look in resource metadata |
|
|
my $filename='/home/httpd/res/'.$srcp[$idx].'.meta'; |
my $filename='/home/httpd/res/'.$bighash{'src_'.$id}.'.meta'; |
if (-e $filename) { |
if (-e $filename) { |
my @content; |
my @content; |
{ |
{ |
Line 84 sub parmval {
|
Line 85 sub parmval {
|
return ''; |
return ''; |
} |
} |
|
|
|
# ---------------------------------------------------------------- Sort routine |
|
|
|
sub bycat { |
|
if ($fcat eq '') { |
|
$a<=>$b; |
|
} else { |
|
&parmval('0.'.$fcat,$a)<=>&parmval('0.'.$fcat,$b); |
|
} |
|
} |
|
|
# ================================================================ Main Handler |
# ================================================================ Main Handler |
|
|
sub handler { |
sub handler { |
Line 105 sub handler {
|
Line 116 sub handler {
|
%useropt=(); |
%useropt=(); |
%bighash=(); |
%bighash=(); |
|
|
@srcp=(); |
@ids=(); |
@typep=(); |
%symbp=(); |
@resp=(); |
%typep=(); |
@mapp=(); |
|
@symbp=(); |
|
|
|
$uname=$ENV{'form.uname'}; |
$uname=$ENV{'form.uname'}; |
$udom=$ENV{'form.udom'}; |
$udom=$ENV{'form.udom'}; |
unless ($udom) { $uname=''; } |
unless ($udom) { $uname=''; } |
$uhome=''; |
$uhome=''; |
|
my $message=''; |
if ($uname) { |
if ($uname) { |
$uhome=&Apache::lonnet::homeserver($uname,$udom); |
$uhome=&Apache::lonnet::homeserver($uname,$udom); |
} |
} |
|
if ($uhome eq 'no_host') { |
|
$message= |
|
"<h3><font color=red>Unknown User $uname at Domain $udom</font></h3>"; |
|
$uname=''; |
|
} |
|
|
$csec=$ENV{'form.csec'}; |
$csec=$ENV{'form.csec'}; |
|
unless ($csec) { $csec=''; } |
|
$fcat=$ENV{'form.fcat'}; |
|
unless ($fcat) { $fcat=''; } |
|
|
# ------------------------------------------------------------------- Tie hashs |
# ------------------------------------------------------------------- Tie hashs |
if ((tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', |
if ((tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', |
Line 154 sub handler {
|
Line 172 sub handler {
|
if ($_=~/^src\_(\d+)\.(\d+)$/) { |
if ($_=~/^src\_(\d+)\.(\d+)$/) { |
my $mapid=$1; |
my $mapid=$1; |
my $resid=$2; |
my $resid=$2; |
|
my $id=$mapid.'.'.$resid; |
if ($bighash{$_}=~/\.(problem|exam|quiz|assess|survey|form)$/) { |
if ($bighash{$_}=~/\.(problem|exam|quiz|assess|survey|form)$/) { |
$typep[$#typep+1]=$1; |
$ids[$#ids+1]=$id; |
$mapp[$#mapp+1]=$mapid; |
$typep{$id}=$1; |
$resp[$#resp+1]=$resid; |
$symbp{$id}= |
$srcp[$#srcp+1]=&Apache::lonnet::declutter($bighash{$_}); |
|
$symbp[$#symbp+1]= |
|
&Apache::lonnet::declutter($bighash{'map_id_'.$mapid}). |
&Apache::lonnet::declutter($bighash{'map_id_'.$mapid}). |
'___'.$resid.'___'.$srcp[$#srcp]; |
'___'.$resid.'___'. |
|
&Apache::lonnet::declutter($bighash{$_}); |
} |
} |
} |
} |
} keys %bighash; |
} keys %bighash; |
# ------------------------------------------------------------------- Sort this |
# ------------------------------------------------------------------- Sort this |
|
@ids=sort bycat @ids; |
# ------------------------------------------------------------------ Start page |
# ------------------------------------------------------------------ Start page |
$r->content_type('text/html'); |
$r->content_type('text/html'); |
$r->send_http_header; |
$r->send_http_header; |
$r->print('<html><body bgcolor="#FFFFFF">'); |
$r->print( |
|
'<html><body bgcolor="#FFFFFF"><h1>Set Assessment Parameters</h1>'); |
|
$r->print("<h2>Course: $ENV{'course.'. |
|
$ENV{'request.course.id'}.'.description'}</h2>"); |
|
if ($csec) { |
|
$r->print("<h3>Section/Group: $csec</h3>"); |
|
} |
|
if ($uname) { |
|
$r->print("<h3>For User $uname at Domain $udom"); |
|
} |
|
if ($uhome eq 'no_host') { |
|
$r->print($message); |
|
} |
|
map { |
|
$r->print($_.'<br>'); |
|
} @ids; |
$r->print('</body></html>'); |
$r->print('</body></html>'); |
untie(%bighash); |
untie(%bighash); |
untie(%parmhash); |
untie(%parmhash); |