--- loncom/interface/courseprefs.pm 2010/12/24 17:27:30 1.28.2.6 +++ loncom/interface/courseprefs.pm 2012/02/17 17:00:29 1.28.2.10.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.28.2.6 2010/12/24 17:27:30 raeburn Exp $ +# $Id: courseprefs.pm,v 1.28.2.10.2.2 2012/02/17 17:00:29 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -474,7 +474,7 @@ sub handler { col2 => 'Value',}], ordered => ['problem_stream_switch','suppress_tries', 'default_paper_size','print_header_format', - 'disableexampointprint','canuse_pdfforms'], + 'disableexampointprint'], itemtext => { problem_stream_switch => 'Allow problems to be split over pages', suppress_tries => 'Suppress number of tries in printing', @@ -680,7 +680,21 @@ sub process_changes { } } } elsif (ref($item->{'ordered'}) eq 'ARRAY') { - @ordered = @{$item->{'ordered'}}; + if ($action eq 'courseinfo') { + my ($can_toggle_cat,$can_categorize) = + &can_modify_catsettings($cdom,$crstype); + foreach my $entry (@{$item->{'ordered'}}) { + next if (($entry eq 'hidefromcat') && + (!$can_toggle_cat)); + next if (($entry eq 'categories') && + (!$can_categorize)); + next if (($entry eq 'loncaparev') || + ($entry eq 'owner')); + push(@ordered,$entry); + } + } else { + @ordered = @{$item->{'ordered'}}; + } } if (@ordered > 0) { if ($action eq 'feedback') { @@ -722,7 +736,6 @@ sub process_changes { } } else { foreach my $entry (@ordered) { - next if (($entry eq 'loncaparev') || ($entry eq 'owner')); if ($entry eq 'cloners') { if ($env{'form.cloners_all'}) { $newvalues{$entry} = '*'; @@ -1378,9 +1391,9 @@ sub store_changes { $output .= ''; } else { if ($crstype eq 'Community') { - $output = &mt('No changes made to community settings.'); + $output .= &mt('No changes made to community settings.'); } else { - $output = &mt('No changes made to course settings.'); + $output .= &mt('No changes made to course settings.'); } } } @@ -2094,6 +2107,11 @@ sub display_loncaparev_constraints { my $cdom = $env{'course.'.$cid.'.domain'}; my $cnum = $env{'course.'.$cid.'.num'}; my $output; + my %lt = &Apache::lonlocal::texthash ( + 'all' => 'all', + 'section/group' => 'section/group', + 'user' => 'user', + ); my (%checkparms,%checkresponsetypes,%checkcrstypes,%anonsurvey,%randomizetry); &Apache::loncommon::build_release_hashes(\%checkparms,\%checkresponsetypes, \%checkcrstypes,\%anonsurvey,\%randomizetry); @@ -2103,7 +2121,7 @@ sub display_loncaparev_constraints { } my (%fromparam,%rowspan,%bymap,%byresource,@scopeorder,%toshow,%allmaps, %byresponsetype,%bysubmission); - @scopeorder = ('course','section/group','user'); + @scopeorder = ('all','section/group','user'); my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); if (ref($resourcedata) eq 'HASH') { foreach my $key (keys(%{$resourcedata})) { @@ -2127,12 +2145,12 @@ sub display_loncaparev_constraints { $which = $2; $scope = 'section/group'; } else { - $scope = 'course'; + $scope = 'all'; } my $what="$stdname=$valname"; if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { $level = 'general'; - if ($scope eq 'course') { + if ($scope eq 'all') { if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { push(@{$fromparam{$rev}{$scope}},$what); @@ -2153,7 +2171,7 @@ sub display_loncaparev_constraints { } elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) { $level = 'folder'; $map = $1; - if ($scope eq 'course') { + if ($scope eq 'all') { if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { push(@{$bymap{$map}{$rev}{$scope}},$what); @@ -2173,7 +2191,7 @@ sub display_loncaparev_constraints { } elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { $level = 'resource'; $resource = $1; - if ($scope eq 'course') { + if ($scope eq 'all') { if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { push(@{$byresource{$resource}{$rev}{$scope}},$what); @@ -2212,7 +2230,7 @@ sub display_loncaparev_constraints { if ($newrow) { $output .= &Apache::loncommon::continue_data_table_row(); } - $output .= ''.$scope.''; + $output .= ''.$lt{$scope}.''; foreach my $which (sort(keys(%{$fromparam{$rev}{$scope}}))) { $output .= ''.$which.''. join('
',@{$fromparam{$rev}{$scope}{$which}}).''; @@ -2223,13 +2241,13 @@ sub display_loncaparev_constraints { if ($newrow) { $output .= &Apache::loncommon::continue_data_table_row(); } - $output .= ''.$scope.' '. + $output .= ''.$lt{$scope}.' '. join('
',@{$fromparam{$rev}{$scope}}).''. &Apache::loncommon::end_data_table_row(); $newrow = 1; } } -i } + } $output .= &Apache::loncommon::end_data_table().'
'; } } @@ -2329,7 +2347,7 @@ i } $r->print($output); if (defined($navmap)) { &show_contents_view($r,$navmap,$cid,\%toshow,\%bymap,\%byresource,\%bysubmission, - \%byresponsetype,\@scopeorder); + \%byresponsetype,\@scopeorder,\%lt); } $r->print('

'); } else { @@ -2342,7 +2360,8 @@ i } } sub show_contents_view { - my ($r,$navmap,$cid,$toshow,$bymap,$byresource,$bysubmission,$byresponsetype,$scopeorder) = @_; + my ($r,$navmap,$cid,$toshow,$bymap,$byresource,$bysubmission,$byresponsetype, + $scopeorder,$lt) = @_; if ((keys(%{$toshow}) > 0) || (keys(%{$byresource}) > 0) || (keys(%{$bysubmission}) > 0) || (keys(%{$byresponsetype}) > 0)) { my $location=&Apache::loncommon::lonhttpdurl("/adm/lonIcons"); @@ -2356,7 +2375,7 @@ sub show_contents_view { &Apache::loncommon::end_data_table_header_row(). &Apache::loncommon::start_data_table_row(). ' '.$icon.' '.&mt('Main Course Documents').''); - &releases_by_map($r,$bymap,$topmap,$scopeorder); + &releases_by_map($r,$bymap,$topmap,$scopeorder,$lt); $r->print(&Apache::loncommon::end_data_table_row()); my $it=$navmap->getIterator(undef,undef,undef,1,1,undef); my $curRes; @@ -2395,7 +2414,7 @@ sub show_contents_view { } $r->print(&Apache::loncommon::start_data_table_row(). ''.$indent.$icon.' '.$title.''); - &releases_by_map($r,$bymap,$url,$scopeorder); + &releases_by_map($r,$bymap,$url,$scopeorder,$lt); $r->print(&Apache::loncommon::end_data_table_row()); } else { my $rowspan; @@ -2424,7 +2443,7 @@ sub show_contents_view { $r->print(''); foreach my $scope (@{$scopeorder}) { if (ref($byresource->{$symb}{$rev}{$scope}) eq 'HASH') { - $r->print(''); + $r->print(''); foreach my $which (sort(keys(%{$byresource->{$symb}{$rev}{$scope}}))) { $r->print(''); } elsif (ref($byresource->{$symb}{$rev}{$scope}) eq 'ARRAY') { - $r->print(''. + $r->print(''. ''); } @@ -2481,7 +2500,7 @@ sub show_contents_view { } sub releases_by_map { - my ($r,$bymap,$url,$scopeorder) = @_; + my ($r,$bymap,$url,$scopeorder,$lt) = @_; return unless ((ref($bymap) eq 'HASH') && (ref($scopeorder) eq 'ARRAY')); if (ref($bymap->{$url}) eq 'HASH') { foreach my $rev (sort(keys(%{$bymap->{$url}}))) { @@ -2490,7 +2509,7 @@ sub releases_by_map { $r->print('
'.&mt('Setting - scope: [_1]',$scope).'
'.&mt('Setting - scope: [_1]',$lt->{$scope}).''.$which.''. join('
',@{$byresource->{$symb}{$rev}{$scope}{$which}}). @@ -2432,7 +2451,7 @@ sub show_contents_view { } $r->print('
'.&mt('Setting - scope: [_1]',$scope).'
'.&mt('Setting - scope: [_1]',$lt->{$scope}).' '. join('
',@{$byresource->{$symb}{$rev}{$scope}}).'
'); foreach my $scope (@{$scopeorder}) { if (ref($bymap->{$url}{$rev}{$scope}) eq 'HASH') { - $r->print(''); + $r->print(''); foreach my $which (sort(keys(%{$bymap->{$url}{$rev}{$scope}}))) { $r->print(''); } elsif (ref($bymap->{$url}{$rev}{$scope}) eq 'ARRAY') { - $r->print(''); }
'.&mt('Setting - scope: [_1]',$scope).'
'.&mt('Setting - scope: [_1]',$lt->{$scope}).''.$which.''. join('
',@{$bymap->{$url}{$rev}{$scope}{$which}}). @@ -2498,7 +2517,7 @@ sub releases_by_map { } $r->print('
'.&mt('Setting - scope: [_1]',$scope). + $r->print('
'.&mt('Setting - scope: [_1]',$lt->{$scope}). ' '. join('
',@{$bymap->{$url}{$rev}{$scope}}).'