--- loncom/interface/lonparmset.pm 2001/12/06 22:39:45 1.37 +++ loncom/interface/lonparmset.pm 2001/12/26 21:45:29 1.41 @@ -1,18 +1,49 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # +# $Id: lonparmset.pm,v 1.41 2001/12/26 21:45:29 www Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# # (Handler to resolve ambiguous file locations # # (TeX Content Handler # +# YEAR=2000 # 05/29/00,05/30,10/11 Gerd Kortemeyer) # # 10/11,10/12,10/16 Gerd Kortemeyer) # # 11/20,11/21,11/22,11/23,11/24,11/25,11/27,11/28, # 12/08,12/12, +# YEAR=2001 # 16/01/01,02/08,03/20,03/23,03/24,03/26,05/09, # 07/05,07/06,08/08,08/09,09/01,09/21 Gerd Kortemeyer +# 12/17 Scott Harrison +# 12/19 Guy Albertelli +# 12/26 Gerd Kortemeyer +# +### package Apache::lonparmset; @@ -250,7 +281,7 @@ sub assessparms { undef %allkeys; undef %allmaps; undef %defp; - map { + foreach (keys %bighash) { if ($_=~/^src\_(\d+)\.(\d+)$/) { my $mapid=$1; my $resid=$2; @@ -260,7 +291,8 @@ sub assessparms { $ids[$#ids+1]=$id; $typep{$id}=$1; $keyp{$id}=''; - map { + foreach (split(/\,/, + &Apache::lonnet::metadata($srcf,'keys'))) { if ($_=~/^parameter\_(.*)/) { my $key=$_; my $allkey=$1; @@ -282,8 +314,7 @@ sub assessparms { $keyp{$id}=$key; } } - } split(/\,/, - &Apache::lonnet::metadata($srcf,'keys')); + } $mapp{$id}= &Apache::lonnet::declutter($bighash{'map_id_'.$mapid}); $allmaps{$mapid}=$mapp{$id}; @@ -292,7 +323,7 @@ sub assessparms { &Apache::lonnet::declutter($srcf); } } - } keys %bighash; + } # ---------------------------------------------------------- Anything to store? if ($ENV{'form.pres_marker'}) { my ($sresid,$spnam,$snum)=split(/\&/,$ENV{'form.pres_marker'}); @@ -384,22 +415,22 @@ sub assessparms { $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata', $ENV{'course.'.$ENV{'request.course.id'}.'.home'}); if ($reply!~/^error\:/) { - map { + foreach (split(/\&/,$reply)) { my ($name,$value)=split(/\=/,$_); $courseopt{&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$reply); + } } # --------------------------------------------------- Get userdata (if present) if ($uname) { my $reply= &Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome); if ($reply!~/^error\:/) { - map { + foreach (split(/\&/,$reply)) { my ($name,$value)=split(/\=/,$_); $useropt{&Apache::lonnet::unescape($name)}= &Apache::lonnet::unescape($value); - } split(/\&/,$reply); + } } } @@ -492,37 +523,37 @@ ENDHEAD $r->print(''); } - map { + foreach ('tolerance','date_default','date_start','date_end', + 'date_interval','int','float','string') { $r->print(''); - } ('tolerance','date_default','date_start','date_end','date_interval', - 'int','float','string'); + } $r->print('

'.$message.'

Sort list by'); $r->print('
Select Enclosing Map
Select Parameter

' ); @@ -566,7 +597,7 @@ ENDTABLEHEADFOUR $r->print(''); my $defbgone=''; my $defbgtwo=''; - map { + foreach (@ids) { my $rid=$_; my ($inmapid)=($rid=~/\.(\d+)$/); if (($pschp eq 'all') || ($allmaps{$pschp} eq $mapp{$rid}) || @@ -593,7 +624,7 @@ ENDTABLEHEADFOUR my %default=(); my $uri=&Apache::lonnet::declutter($bighash{'src_'.$rid}); - map { + foreach (split(/\,/,$keyp{$rid})) { if (($_ eq $catmarker) || ($pscat eq 'all')) { $part{$_}=&Apache::lonnet::metadata($uri,$_.'.part'); $name{$_}=&Apache::lonnet::metadata($uri,$_.'.name'); @@ -604,7 +635,7 @@ ENDTABLEHEADFOUR $type{$_}=&Apache::lonnet::metadata($uri,$_.'.type'); $thistitle=&Apache::lonnet::metadata($uri,$_.'.title'); } - } split(/\,/,$keyp{$rid}); + } my $totalparms=scalar keys %name; if ($totalparms>0) { @@ -623,7 +654,7 @@ ENDTABLEHEADFOUR $r->print(''. join(' / ',split(/\//,$mapp{$rid})).''); - map { + foreach (sort keys %name) { my $result=&parmval($part{$_}.'.'.$name{$_},$rid,$default{$_}); unless ($firstrow) { $r->print(''); @@ -696,11 +727,11 @@ ENDTABLEHEADFOUR ''.$sessionval.' '. ''); $r->print(""); - } sort keys %name; + } } # -------------------------------------------------- End entry for one resource } - } @ids; + } $r->print(''); } $r->print(''); @@ -713,7 +744,7 @@ sub crsenv { my $r=shift; my $setoutput=''; # -------------------------------------------------- Go through list of changes - map { + foreach (keys %ENV) { if ($_=~/^form\.(.+)\_setparmval$/) { my $name=$1; my $value=$ENV{'form.'.$name.'_value'}; @@ -751,7 +782,7 @@ sub crsenv { '
'; } } - } keys %ENV; + } # -------------------------------------------------------- Get parameters again my $rep=&Apache::lonnet::reply ('dump:'.$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}. @@ -771,24 +802,28 @@ sub crsenv { 'comment.email' => 'Feedback Addresses for Comments
'. '(user:domain,user:domain,...)', 'policy.email' => 'Feedback Addresses for Course Policy
'. - '(user:domain,user:domain,...)' + '(user:domain,user:domain,...)', + 'hideemptyrows' => 'Hide Empty Rows in Spreadsheets
'. + '("yes" for default hiding)', + 'discussoff' => 'Disallow Resource Discussion for Students
'. + '("yes" for disallowing discussion)' ); - map { + foreach (split(/\&/,$rep)) { my ($name,$value)=split(/\=/,$_); $name=&Apache::lonnet::unescape($name); $values{$name}=&Apache::lonnet::unescape($value); unless ($descriptions{$name}) { $descriptions{$name}=$name; } - } split(/\&/,$rep); - map { + } + foreach (sort keys %descriptions) { $output.=''.$descriptions{$_}.''; - } sort keys %descriptions; + } $output.='Create New Environment Variable
'. ''. ''. @@ -853,5 +888,73 @@ sub handler { __END__ +=head1 NAME + +Apache::lonparmset - Handler to set parameters for assessments + +=head1 SYNOPSIS + +Invoked by /etc/httpd/conf/srm.conf: + + + PerlAccessHandler Apache::lonacc + SetHandler perl-script + PerlHandler Apache::lonparmset + ErrorDocument 403 /adm/login + ErrorDocument 406 /adm/roles + ErrorDocument 500 /adm/errorhandler + + +=head1 INTRODUCTION + +This module sets assessment parameters. + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 HANDLER SUBROUTINE + +This routine is called by Apache and mod_perl. + +=over 4 + +=item * + +need to be in course + +=item * + +bring up assessment screen or course environment + +=back + +=head1 OTHER SUBROUTINES + +=over 4 + +=item * + +parmval() : figure out a cascading parameter + +=item * + +valout() : output for value + +=item * + +plink() : produces link anchor + +=item * + +assessparms() : show assess data and parameters + +=item * + +crsenv() : for the course environment + +=back + +=cut +