--- loncom/interface/lonparmset.pm 2005/09/02 22:14:35 1.247 +++ loncom/interface/lonparmset.pm 2005/09/02 22:36:38 1.249 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.247 2005/09/02 22:14:35 albertel Exp $ +# $Id: lonparmset.pm,v 1.249 2005/09/02 22:36:38 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2189,6 +2189,7 @@ sub listdata { my $pointer=0; $tableopen=0; my $foundkeys=0; + my %keyorder=&standardkeyorder(); foreach my $thiskey (sort { if ($sortorder eq 'realmstudent') { my ($astudent,$arealm)=($a=~/^\Q$env{'request.course.id'}\E\.\[([^\.]+)\]\.(.+)\.[^\.]+$/); @@ -2199,7 +2200,25 @@ sub listdata { if (!defined($bstudent)) { ($brealm)=($b=~/^\Q$env{'request.course.id'}\E\.(.+)$/); } - ($arealm cmp $brealm) || ($astudent cmp $bstudent); + $arealm=~s/\.type//; + my ($ares, $aparm) = ($arealm=~/^(.*)\.(.*)$/); + $aparm=$keyorder{'parameter_0_'.$aparm}; + $brealm=~s/\.type//; + my ($bres, $bparm) = ($brealm=~/^(.*)\.(.*)$/); + $bparm=$keyorder{'parameter_0_'.$bparm}; + if ($ares eq $bres) { + if (defined($aparm) && defined($bparm)) { + ($aparm <=> $bparm); + } elsif (defined($aparm)) { + -1; + } elsif (defined($bparm)) { + 1; + } else { + ($arealm cmp $brealm) || ($astudent cmp $bstudent); + } + } else { + ($arealm cmp $brealm) || ($astudent cmp $bstudent); + } } else { $a cmp $b; }