--- loncom/interface/lonparmset.pm 2006/08/10 15:36:49 1.332 +++ loncom/interface/lonparmset.pm 2006/10/07 20:02:16 1.339 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.332 2006/08/10 15:36:49 albertel Exp $ +# $Id: lonparmset.pm,v 1.339 2006/10/07 20:02:16 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1514,7 +1514,7 @@ sub assessparms { $message="\n
\n".&mt("Full Name").": ".
$name{'firstname'}.' '.$name{'middlename'}.' '
.$name{'lastname'}.' '.$name{'generation'}.
- "
\n".&mt('ID').": ".$name{'id'}.'
';
+ "
\n".&mt('ID').": ".$name{'id'}.'
';
}
@usersgroups = &Apache::lonnet::get_users_groups(
$udom,$uname,$env{'request.course.id'});
@@ -1562,7 +1562,7 @@ sub assessparms {
foreach ('tolerance','date_default','date_start','date_end',
'date_interval','int','float','string') {
$r->print('');
+ $env{'form.recent_'.$_}.'" name="recent_'.$_.'" />');
}
if (!$pssymb) {
@@ -1639,7 +1639,7 @@ sub assessparms {
);
$r->print(< '.
+ ''.
+ '
$output
+ $lt{'csv'}
+
($csuname $lt{'at'} $csudom)$lt{'csv'}
($csuname $lt{'at'} $csudom)$lt{'ic'} $lt{'rl'}
$lt{'ic'}
@@ -1740,8 +1740,8 @@ ENDTABLEHEADFOUR
"$title");
+ "', 'metadatafile', '450', '500', 'no', 'yes');\"".
+ " target=\"_self\">$title");
if ($thistitle) {
$r->print(' ('.$thistitle.')');
@@ -2005,7 +2005,7 @@ sub crsenv {
('environment',
{'top level map backup '.$bkuptime => $tmp[1] },
$dom,$crs).
- '
';
+ '
';
}
#
# Deal with modified default spreadsheets
@@ -2116,7 +2116,7 @@ sub crsenv {
'default_xml_style' => ''.&mt('Default XML Style File').' '.
'$SelectStyleFile
",
+ ",'sty')\">$SelectStyleFile
",
'question.email' => ''.&mt('Feedback Addresses for Resource Content Question').
'
(user:domain,'.
'user:domain(section;section;...;*;...),...)',
@@ -2432,7 +2432,7 @@ sub storedata {
}
&Apache::lonnet::devalidateuserresdata($tuname,$tudom);
} else {
- push (@deldata,$thiskey);
+ push (@deldata,$thiskey,$thiskey.'.type');
}
} elsif ($cmd eq 'datepointer') {
my $data=&Apache::lonhtmlcommon::get_date_from_form($env{$_});
@@ -2832,9 +2832,127 @@ ENDOVER
&Apache::loncommon::end_page());
}
+sub clean_parameters {
+ my ($r) = @_;
+ my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
+
+ my $start_page=&Apache::loncommon::start_page('Clean Parameters');
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Clean');
+ $r->print(<'.
+ &mt('These parameters refer to resources that do not exist.').
+ '
'.
+ ''.'
'.
+ '
');
+ $r->print(&Apache::loncommon::start_data_table().
+ ''.
+ ' ');
+ foreach my $thiskey (sort(keys(%{$resourcedata}))) {
+ next if (!exists($resourcedata->{$thiskey.'.type'})
+ && $thiskey=~/\.type$/);
+ my %data = &parse_key($thiskey);
+ if (exists($data{'realm_exists'})
+ && !$data{'realm_exists'}) {
+ $r->print(&Apache::loncommon::start_data_table_row().
+ ''.&mt('Delete').' '.
+ ''.&mt('Parameter').' '.
+ ''.
+ ' ');
+
+ }
+ }
+ $r->print(&Apache::loncommon::end_data_table().'' );
+
+ $r->print(' ');
+ $r->print(&mt('Parameter: "[_1]" with value: "[_2]"',
+ &standard_parameter_names($data{'parameter_name'}),
+ $resourcedata->{$thiskey}));
+ $r->print('
');
+ if ($data{'scope_type'} eq 'all') {
+ $r->print(&mt('All users'));
+ } elsif ($data{'scope_type'} eq 'user') {
+ $r->print(&mt('User: [_1]',join(':',@{$data{'scope'}})));
+ } elsif ($data{'scope_type'} eq 'section') {
+ $r->print(&mt('Section: [_1]',$data{'scope'}));
+ } elsif ($data{'scope_type'} eq 'group') {
+ $r->print(&mt('Group: [_1]',$data{'scope'}));
+ }
+ $r->print('
');
+ if ($data{'realm_type'} eq 'all') {
+ $r->print(&mt('All Resources'));
+ } elsif ($data{'realm_type'} eq 'folder') {
+ $r->print(&mt('Folder: [_1]'),$data{'realm'});
+ } elsif ($data{'realm_type'} eq 'symb') {
+ my ($map,$resid,$url) =
+ &Apache::lonnet::decode_symb($data{'realm'});
+ $r->print(&mt('Resource: [_1]
with ID: [_2]
in folder [_3]',
+ $url,$resid,$map));
+ }
+ $r->print(&mt('Part: [_1]',$data{'parameter_part'}));
+ $r->print('
';
+ if (!($options =~ /deleted/)) {
+ $output.=''.$field_text.':';
+ $output.='
';
- my @options= ( ['active', 'Show to student'],
+ my @options= ( ['active', 'Show to student'],
['onlyone','Student may select only one choice'],
['stuadd', 'Student may type choices']);
- foreach my $opt (@options) {
- my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;
- $output.=(' 'x5).'
';
+ if ($added_flag) {
+ push @options,['deleted', 'Delete Metadata Field'];
+ }
+ foreach my $opt (@options) {
+ my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;
+ $output.=(' 'x5).'
';
+ }
}
return ($output);
}
-
+sub addmetafield {
+ my ($r)=@_;
+ $r->print(&Apache::loncommon::start_page('Add Metadata Field'));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Add Metadata Field'));
+ my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+ my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
+ if (exists($env{'form.undelete'})) {
+ my @meta_fields = &Apache::loncommon::get_env_multiple('form.undelete');
+ foreach my $meta_field(@meta_fields) {
+ my $options = $env{'course.'.$env{'request.course.id'}.'.metadata.'.$meta_field.'.options'};
+ $options =~ s/deleted//;
+ $options =~ s/,,/,/;
+ my $put_result = &Apache::lonnet::put('environment',
+ {'metadata.'.$meta_field.'.options'=>$options},$dom,$crs);
+
+ $r->print('Undeleted Metadata Field '.$env{'course.'.$env{'request.course.id'}.'.metadata.'.$meta_field.'.added'}." with result ".$put_result.'
');
+ }
+ $r->print('');
+ }
+ $r->print('
Or you may enter a new metadata field name.');
+ }
+}
sub setrestrictmeta {
my ($r)=@_;
my $next_meta;
my $output;
my $item_num;
my $put_result;
-
$r->print(&Apache::loncommon::start_page('Restrict Metadata'));
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Restrict Metadata'));
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
@@ -3123,6 +3291,10 @@ sub setrestrictmeta {
if ($env{'form.'.$meta_field.'_active'}) {
$options.='active,';
}
+ if ($env{'form.'.$meta_field.'_deleted'}) {
+ $options.='deleted,';
+ }
+
my $name = $save_field;
$put_result = &Apache::lonnet::put('environment',
{'metadata.'.$meta_field.'.options'=>$options,
@@ -3134,25 +3306,59 @@ sub setrestrictmeta {
}
&Apache::lonnet::coursedescription($env{'request.course.id'},
{'freshen_cache' => 1});
+ # Get the default metadata fields
my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio');
+ # Now get possible added metadata fields
+ my $added_metadata_fields = &get_added_meta_fieldnames(\%metadata_fields);
foreach my $field (sort(keys(%metadata_fields))) {
- &Apache::lonnet::logthis ($field);
if ($field ne 'courserestricted') {
$output.= &output_row($r, $field, $metadata_fields{$field});
}
}
+ my $added_flag = 1;
+ foreach my $field (sort(keys(%$added_metadata_fields))) {
+ $output.= &output_row($r, $field, $$added_metadata_fields{$field},$added_flag);
+ }
$r->print(<
+