--- loncom/interface/lonparmset.pm 2002/12/30 14:10:58 1.81 +++ loncom/interface/lonparmset.pm 2003/06/20 14:21:03 1.104 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.81 2002/12/30 14:10:58 www Exp $ +# $Id: lonparmset.pm,v 1.104 2003/06/20 14:21:03 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -56,6 +56,7 @@ package Apache::lonparmset; use strict; use Apache::lonnet; use Apache::Constants qw(:common :http REDIRECT); +use Apache::lonhtmlcommon(); use Apache::loncommon; use GDBM_File; use Apache::lonhomework; @@ -72,6 +73,8 @@ my %mapp; my %typep; my %keyp; +my %maptitles; + my $uname; my $udom; my $uhome; @@ -96,13 +99,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 @@ -282,16 +285,14 @@ sub plink { sub startpage { - my ($r,$id,$udom,$csec,$uname)=@_; - $r->content_type('text/html'); - $r->send_http_header; - + my ($r,$id,$udom,$csec,$uname,$have_assesments)=@_; + my $bodytag=&Apache::loncommon::bodytag('Set Course Parameters','', 'onUnload="pclose()"'); 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(); $r->print(< @@ -304,15 +305,7 @@ sub startpage { parmwin.close(); } - function pjump(type,dis,value,marker,ret,call) { - document.parmform.pres_marker.value=''; - parmwin=window.open("/adm/rat/parameter.html?type="+escape(type) - +"&value="+escape(value)+"&marker="+escape(marker) - +"&return="+escape(ret) - +"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms", - "height=350,width=350,scrollbars=no,menubar=no"); - - } + $pjump_def function psub() { pclose(); @@ -348,12 +341,24 @@ sub startpage { $selscript $bodytag +

Course Environment

+

Course Assessments

+ +Use Assignment Parameter Helper, a +simpler interface to set open, due, or answer open dates for problems or +sequences.
 
+ENDHEAD + + if (!$have_assesments) { + $r->print('There are no assesment parameters in this course to set.
'); + } else { + $r->print(< Section/Group: @@ -369,7 +374,7 @@ $chooseopt ENDHEAD - + } } sub print_row { @@ -549,6 +554,7 @@ sub extractResourceInformation { my $defp = shift; my $mapp = shift; my $symbp = shift; + my $maptitles=shift; foreach (keys %$bighash) { if ($_=~/^src\_(\d+)\.(\d+)$/) { @@ -589,6 +595,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); @@ -686,12 +695,12 @@ sub assessparms { my $url=$ENV{'form.url'}; $url=~s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; $pssymb=&Apache::lonnet::symbread($url); - @pscat='all'; + if (!@pscat) { @pscat=('all'); } $pschp=''; $parmlev = 'full'; } elsif ($ENV{'form.symb'}) { $pssymb=$ENV{'form.symb'}; - @pscat='all'; + if (!@pscat) { @pscat=('all'); } $pschp=''; $parmlev = 'full'; } else { @@ -719,8 +728,8 @@ sub assessparms { "Unknown user '$uname' at domain '$udom'"; $uname=''; } else { - $csec=&Apache::lonnet::usection($udom,$uname, - $ENV{'request.course.id'}); + $csec=&Apache::lonnet::getsection($udom,$uname, + $ENV{'request.course.id'}); if ($csec eq '-1') { $message="". "User '$uname' at domain '$udom' not ". @@ -756,10 +765,11 @@ 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'} = ''; + # ---------------------------------------------------------- Anything to store? if ($ENV{'form.pres_marker'}) { my ($sresid,$spnam,$snum)=split(/\&/,$ENV{'form.pres_marker'}); @@ -876,7 +886,12 @@ sub assessparms { if ($psprt[0] eq "all" || !@psprt) {@psprt = (keys %allparts);} # ------------------------------------------------------------------ Start page - &startpage($r,$id,$udom,$csec,$uname); + my $have_assesments=1; + if (scalar(keys(%allkeys)) eq 0) { $have_assesments=0; } + + &startpage($r,$id,$udom,$csec,$uname,$have_assesments); + + if (!$have_assesments) { return ''; } # if ($ENV{'form.url'}) { # $r->print(''); @@ -891,16 +906,9 @@ sub assessparms { $r->print('

'.$message.'

'); - $r->print(''); - my $submitmessage; - if (($prevvisit) || ($pschp) || ($pssymb)) { - $submitmessage = "Update Display"; - } else { - $submitmessage = "Display"; - } if (!$pssymb) { - $r->print('\n"); - - $r->print(''); - $r->print(''); + $r->print(''); - $r->print(''); + $r->print(''); $r->print('\n"); } else { @@ -934,7 +940,7 @@ sub assessparms { $r->print(''); + $r->print(' name="showoptions" value="show">Show More Options
'); # $r->print(""); # $r->print(""); # $r->print(""); @@ -984,7 +990,7 @@ sub assessparms { $r->print('

Select Parameter Level'); + $r->print('
Select Parameter Level'); $r->print('

Select Enclosing Map
Select Enclosing Map or Folder

print(" checked ");} - $r->print(' name="showoptions" value="show" onclick="form.submit();">Show More Options
Show: $showoptions
pscat: @pscat
psprt: @psprt
Sort list by'); $r->print('
'); + $r->print('
'); + if (($prevvisit) || ($pschp) || ($pssymb)) { + $submitmessage = "Update Course Assessment Parameter Display"; + } else { + $submitmessage = "Set Course Assessment Parameters"; + } + $r->print(''); # my @temp_psprt; # foreach my $t (@psprt) { @@ -1042,9 +1054,7 @@ sub assessparms { my $csuname=$ENV{'user.name'}; my $csudom=$ENV{'user.domain'}; - if ($parmlev eq 'full' || $parmlev eq 'brief') { - my $coursespan=$csec?8:5; $r->print('

'); $r->print(''); @@ -1064,17 +1074,17 @@ ENDTABLETWO } $r->print(< - - - + + + ENDTABLEHEADFOUR if ($csec) { - $r->print(''); + $r->print(''); } if ($uname) { - $r->print(''); + $r->print(''); } $r->print(''); @@ -1235,10 +1245,12 @@ ENDTABLEHEADFOUR } # end loop through ids #---------------------------------------------------- print header information + my $foldermap=($maptitle=~/^uploaded/?'Folder':'Map'); + my $showtitle=$maptitles{$maptitle}.($maptitle!~/^uploaded/?' ['.$maptitle.']':''); $r->print(<

-Set Defaults for All Resources in map -$maptitle
+Set Defaults for All Resources in $foldermap
+$showtitle
Specifically for ENDMAPONE if ($uname) { @@ -1430,7 +1442,7 @@ sub crsenv { ('url' => 'Top Level Map '. '". - 'Browse
'. + 'Select Map
'. 'Modification may make assessment data '. 'inaccessible', 'description' => 'Course Description', @@ -1439,7 +1451,7 @@ sub crsenv { 'default_xml_style' => 'Default XML Style File '. 'Browse
", + ",'sty')\">Select Style File
", 'question.email' => 'Feedback Addresses for Resource Content '. 'Questions
(user:domain,'. 'user:domain(section;section;...;*;...),...)', @@ -1450,7 +1462,8 @@ sub crsenv { 'hideemptyrows' => 'Hide Empty Rows in Spreadsheets
'. '("yes" for default hiding)', 'pageseparators' => 'Visibly Separate Items on Pages
'. - '("yes" for visible separation)', + '("yes" for visible separation, '. + 'changes will not show until next login)', 'pch.roles.denied'=> 'Disallow Resource Discussion for '. 'Roles
"st": '. 'student, "ta": '. @@ -1464,20 +1477,27 @@ sub crsenv { => 'Default Course Spreadsheet '. 'Browse
", + ",'spreadsheet')\">Select Spreadsheet File
", 'spreadsheet_default_studentcalc' => 'Default Student Spreadsheet '. 'Browse
", + ",'spreadsheet')\">Select Spreadsheet File
", 'spreadsheet_default_assesscalc' => 'Default Assessment Spreadsheet '. 'Browse
", + ",'spreadsheet')\">Select Spreadsheet File
", 'allow_limited_html_in_feedback' => 'Allow limited HTML in discussion posts
'. - '(Set value to yes to allow)' + '(Set value to yes to allow)', + 'rndseed' + => 'Randomization algorithm used
'. + 'Modifying this will make problems '. + 'have different numbers and answers', + 'problem_stream_switch' + => 'Allow problems to be split over pages
'. + ' (yes if allow anything else if not)' ); foreach (keys(%values)) { unless ($descriptions{$_}) { @@ -1554,7 +1574,7 @@ ENDENV =pod -=item handler +=item * handler Main handler. Calls &assessparms and &crsenv subroutines. @@ -1562,6 +1582,7 @@ Main handler. Calls &assessparms and &c ################################################## ################################################## + use Data::Dumper; sub handler { my $r=shift; @@ -1571,6 +1592,9 @@ sub handler { return OK; } &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}); + + $r->content_type('text/html'); + $r->send_http_header; # ----------------------------------------------------- Needs to be in a course if (($ENV{'request.course.id'}) &&

Assessment URL and TitleTypeEnclosing MapPart No.Parameter Namedefaultfrom Enclosing Mapgeneralfor Enclosing Mapfor ResourceEnclosing Map or FolderPartParameter Namedefaultfrom Enclosing Map or Foldergeneralfor Enclosing Map or Folderfor Resourcegeneralfor Enclosing Mapfor Resourcegeneralfor Enclosing Map or Folderfor Resourcegeneralfor Enclosing Mapfor Resourcegeneralfor Enclosing Map or Folderfor Resource