--- loncom/interface/lonparmset.pm 2005/09/02 22:14:35 1.247
+++ loncom/interface/lonparmset.pm 2005/09/14 17:56:25 1.250
@@ -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.250 2005/09/14 17:56:25 banghart 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;
}
@@ -2733,11 +2752,6 @@ sub setinstmeta {
my $output;
my $item_num;
my $put_result;
- if ($env{'form.serial'}) {
- $next_meta = $env{'form.serial'};
- } else {
- $next_meta = 1;
- }
$r->print(&Apache::lonxml::xmlbegin());
$r->print('
LON-CAPA Set Instructor Metadata
@@ -2751,54 +2765,39 @@ sub setinstmeta {
foreach my $field (%env) {
# start by looking for populated fields
if ($field=~m/type(\d+)/) {
- my $item_num = $1;
- my $name = 'metadata.'.$item_num.'.type';
- my $value = $env{'form.type'.$item_num};
+ my $name;
+ my $value;
$put_result = &Apache::lonnet::put('environment',
{$name=>$value},$dom,$crs);
- $name = 'metadata.'.$item_num.'.values';
- $value = $env{'form.values'.$item_num};
$put_result = &Apache::lonnet::put('environment',
{$name=>$value},$dom,$crs);
}
if ($field=~m/newfield/) {
- my $item_num = $env{'form.serial'};
- my $name = 'metadata.'.$item_num.'.type';
- my $value = $env{'form.typenew'};
+ my $name = 'metadata.'.$env{'form.titlenew'};
+ my %meta_hash = {values=>[$env{'form.valuesnew'}],
+ allow_pick=>'many',
+ allow_type=>'no'};
+
+ my $value = \%meta_hash;
$put_result = &Apache::lonnet::put('environment',
{$name=>$value},$dom,$crs);
- $name = 'metadata.'.$item_num.'.values';
- $value = $env{'form.valuesnew'};
- $put_result = &Apache::lonnet::put('environment',
- {$name=>$value},$dom,$crs);
- $name = 'metadata.'.$item_num.'.title';
- $value = $env{'form.titlenew'};
- $put_result = &Apache::lonnet::put('environment',
- {$name=>$value},$dom,$crs);
-
}
-
-
}
&Apache::lonnet::coursedescription($env{'request.course.id'});
foreach my $key (sort keys %env) {
- if ($key=~m/^course\.$env{'request.course.id'}\.metadata\.\d+\.title$/) {
- $key=~m/(^course\.$env{'request.course.id'}\.metadata\.)(\d+)\.title/;
- $key_base = $1;
- $item_num = $2;
- if ($item_num ge $next_meta) {
- $next_meta = $item_num + 1;
- }
- $output.=''.$env{$key}.' | ';
- $output.='Select one: ';
- $output.='Select many: | ';
- $output.=' |
';
+ if ($key=~m/^course\.$env{'request.course.id'}\.metadata\.(.+)$/) {
+ my $meta_data_item = $1;
+ my $meta_hash=$env{$key};
+ $output.=''.$meta_data_item.' | ';
+ $output.='Select one: ';
+ $output.='Select many: | ';
+ $output.=' |
';
}
}
$output.='Create new instructor metadata item ';
$output.=' | ';
- $output.='Select one: ';
- $output.='Select many: | ';
+ $output.='students must pick only one: ';
+ $output.='Allow student to type extra info: | ';
$output.=' |
';
$output.='';
$output.='';