--- loncom/interface/lonparmset.pm 2005/06/06 15:13:46 1.212 +++ loncom/interface/lonparmset.pm 2005/06/06 21:28:55 1.216 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.212 2005/06/06 15:13:46 www Exp $ +# $Id: lonparmset.pm,v 1.216 2005/06/06 21:28:55 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -403,7 +403,7 @@ sub valout { $result.=$sec.' secs '; } $result=~s/\s+$//; - } elsif ($type=~/^date/) { + } elsif (&isdateparm($type)) { $result = localtime($value); } else { $result = $value; @@ -434,7 +434,7 @@ sub plink { my ($type,$dis,$value,$marker,$return,$call)=@_; my $winvalue=$value; unless ($winvalue) { - if ($type=~/^date/) { + if (&isdateparm($type)) { $winvalue=$env{'form.recent_'.$type}; } else { $winvalue=$env{'form.recent_'.(split(/\_/,$type))[0]}; @@ -742,6 +742,11 @@ sub extractResourceInformation { ################################################## ################################################## +sub isdateparm { + my $type=shift; + return (($type=~/^date/) && (!($type eq 'date_interval'))); +} + sub parmmenu { my ($r,$allparms,$pscat,$keyorder)=@_; my $tempkey; @@ -967,6 +972,20 @@ sub keysindisplayorder { } (keys %{$name}); } +sub sortmenu { + my ($r,$sortorder)=@_; + $r->print('
print(' checked="on"'); + } + $r->print(' />'.&mt('Sort by realm first, then student (group/section)')); + $r->print('
print(' checked="on"'); + } + $r->print(' />'.&mt('Sort by student (group/section) first, then realm')); +} + sub standardkeyorder { return ('parameter_0_opendate' => 1, 'parameter_0_duedate' => 2, @@ -1043,7 +1062,7 @@ sub assessparms { my $coursename=$env{'course.'.$env{'request.course.id'}.'.description'}; $alllevs{'Resource Level'}='full'; - $alllevs{'Map Level'}='map'; + $alllevs{'Map/Folder Level'}='map'; $alllevs{'Course Level'}='general'; my %allparms; @@ -2031,7 +2050,7 @@ sub extractuser { } sub listdata { - my ($r,$resourcedata,$listdata)=@_; + my ($r,$resourcedata,$listdata,$sortorder)=@_; # Start list output my $oldsection=''; @@ -2040,7 +2059,15 @@ sub listdata { my $pointer=0; $tableopen=0; my $foundkeys=0; - foreach my $thiskey (sort keys %{$listdata}) { + foreach my $thiskey (sort { + if ($sortorder eq 'realmstudent') { + my ($astudent,$arealm)=($a=~/^$env{'request.course.id'}\.([^\.]+)\.(.+)\.[^\.]+$/); + my ($bstudent,$brealm)=($b=~/^$env{'request.course.id'}\.([^\.]+)\.(.+)\.[^\.]+$/); + ($arealm cmp $brealm) || ($astudent cmp $bstudent); + } else { + $a cmp $b; + } + } keys %{$listdata}) { if ($$listdata{$thiskey.'.type'}) { my $thistype=$$listdata{$thiskey.'.type'}; if ($$resourcedata{$thiskey.'.type'}) { @@ -2067,19 +2094,32 @@ sub listdata { my ($map,$id,$url)=&Apache::lonnet::decode_symb($middle); $realm=''.&mt('Resource').': '.&Apache::lonnet::gettitle($middle).'
('.$url.' in '.$map.' id: '.$id.')
'; } - if ($section ne $oldsection) { - $r->print(&tableend()."\n

$section

"); - $oldsection=$section; - $oldrealm=''; - } - if ($realm ne $oldrealm) { - $r->print(&tableend()."\n

$realm

"); - $oldrealm=$realm; - $oldpart=''; + if ($sortorder eq 'realmstudent') { + if ($realm ne $oldrealm) { + $r->print(&tableend()."\n

$realm

"); + $oldrealm=$realm; + $oldsection=''; + } + if ($section ne $oldsection) { + $r->print(&tableend()."\n

$section

"); + $oldsection=$section; + $oldpart=''; + } + } else { + if ($section ne $oldsection) { + $r->print(&tableend()."\n

$section

"); + $oldsection=$section; + $oldrealm=''; + } + if ($realm ne $oldrealm) { + $r->print(&tableend()."\n

$realm

"); + $oldrealm=$realm; + $oldpart=''; + } } if ($part ne $oldpart) { $r->print(&tableend(). - "\n

".&mt('Part').": $part

"); + "\n".&mt('Part').": $part"); $oldpart=$part; } # @@ -2089,7 +2129,7 @@ sub listdata { ':'); $foundkeys++; - if ($thistype=~/^date/) { + if (&isdateparm($thistype)) { my $jskey='key_'.$pointer; $pointer++; $r->print( @@ -2112,8 +2152,7 @@ sub listdata { sub newoverview { my $r=shift; - my $bodytag=&Apache::loncommon::bodytag( - 'Set Course Assessment Parameters'); + my $bodytag=&Apache::loncommon::bodytag('Set 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,'Overview'); @@ -2142,7 +2181,7 @@ ENDOVER my %alllevs=(); $alllevs{'Resource Level'}='full'; - $alllevs{'Map Level'}='map'; + $alllevs{'Map/Folder Level'}='map'; $alllevs{'Course Level'}='general'; my $csec=$env{'form.csec'}; @@ -2191,8 +2230,14 @@ ENDOVER &partmenu($r,\%allparts,\@psprt); $r->print(''); §ionmenu($r,\@selected_sections); - $r->print(''. - '

'); + + $r->print(''); + + my $sortorder=$env{'form.sortorder'}; + unless ($sortorder) { $sortorder='realmstudent'; } + &sortmenu($r,$sortorder); + + $r->print('

'); # Build the list data hash from the specified parms @@ -2243,7 +2288,7 @@ ENDOVER # List data - &listdata($r,$resourcedata,$listdata); + &listdata($r,$resourcedata,$listdata,$sortorder); } $r->print(&tableend(). ((($env{'form.store'}) || ($env{'form.dis'}))?'

':''). @@ -2252,8 +2297,7 @@ ENDOVER sub overview { my $r=shift; - my $bodytag=&Apache::loncommon::bodytag( - 'Modify Course Assessment Parameters'); + my $bodytag=&Apache::loncommon::bodytag('Modify 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,'Overview'); @@ -2275,9 +2319,14 @@ ENDOVER my $resourcedata=&readdata($crs,$dom); + + my $sortorder=$env{'form.sortorder'}; + unless ($sortorder) { $sortorder='realmstudent'; } + &sortmenu($r,$sortorder); + # List data - my $foundkeys=&listdata($r,$resourcedata,$resourcedata); + my $foundkeys=&listdata($r,$resourcedata,$resourcedata,$sortorder); $r->print(&tableend().'

'. ($foundkeys?'':&mt('There are no parameters.')).'

'); @@ -2411,19 +2460,19 @@ ENDMAINFORMHEAD action => 'crsenv', permission => $parm_permission, }, - { text => 'Set/Modify Course Assessment Parameters - Helper Mode', + { text => 'Set/Modify Resource Parameters - Helper Mode', url => '/adm/helper/parameter.helper', permission => $parm_permission, }, - { text => 'Modify Course Assessment Parameters - Overview Mode', + { text => 'Modify Resource Parameters - Overview Mode', action => 'setoverview', permission => $parm_permission, }, - { text => 'Set Course Assessment Parameters - Overview Mode', + { text => 'Set Resource Parameters - Overview Mode', action => 'newoverview', permission => $parm_permission, }, - { text => 'Set/Modify Course Assessment Parameters - Table Mode', + { text => 'Set/Modify Resource Parameters - Table Mode', action => 'settable', permission => $parm_permission, help => 'Cascading_Parameters', @@ -2485,7 +2534,7 @@ sub handler { 'pres_marker', 'pres_value', 'pres_type', - 'udom','uname']); + 'udom','uname','symb']); &Apache::lonhtmlcommon::clear_breadcrumbs();