--- loncom/interface/courseprefs.pm 2012/04/11 13:02:39 1.28.2.12 +++ loncom/interface/courseprefs.pm 2010/12/24 17:17:33 1.38 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.28.2.12 2012/04/11 13:02:39 raeburn Exp $ +# $Id: courseprefs.pm,v 1.38 2010/12/24 17:17:33 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -215,6 +215,7 @@ use Apache::lonnet; use Apache::loncommon(); use Apache::lonhtmlcommon(); use Apache::lonconfigsettings; +use Apache::lonparmset; use Apache::lonlocal; use LONCAPA qw(:DEFAULT :match); @@ -338,7 +339,7 @@ sub handler { if ($phase eq 'releaseinfo') { my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'}; - if ($loncaparev) { + if ($loncaparev) { &display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype); return OK; } @@ -353,8 +354,6 @@ sub handler { 'courseinfo' => { text => $lt{'gens'}, help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value'}], ordered => ['owner','co-owners','loncaparev','description', 'courseid','categories','hidefromcat', 'externalsyllabus','cloners','url','rolenames'], @@ -375,8 +374,6 @@ sub handler { 'localization' => { text => 'Language and Time Localization', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value',}], ordered => ['languages','timezone','datelocale'], itemtext => { languages => 'Languages used', @@ -388,9 +385,7 @@ sub handler { { text => 'Feedback messages', help => 'Course_Environment', header => [{col1 => 'Questions about:', - col2 => 'Recipients'}, - {col1 => 'Questions about:', - col2 => 'Custom Text'}], + col2 => 'Recipients'}], ordered => ['question.email','comment.email','policy.email'], itemtext => { 'question.email' => 'Resource Content', @@ -439,8 +434,6 @@ sub handler { 'appearance' => { text => 'Display of resources ', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value',}], ordered => ['default_xml_style','pageseparators', 'disable_receipt_display','texengine', 'tthoptions'], @@ -455,8 +448,6 @@ sub handler { 'grading' => { text => 'Grading', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value',}], ordered => ['grading','rndseed', 'receiptalg','disablesigfigs'], itemtext => { @@ -470,11 +461,9 @@ sub handler { 'printouts' => { text => 'Printout generation', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value',}], ordered => ['problem_stream_switch','suppress_tries', 'default_paper_size','print_header_format', - 'disableexampointprint'], + 'disableexampointprint','canuse_pdfforms'], itemtext => { problem_stream_switch => 'Allow problems to be split over pages', suppress_tries => 'Suppress number of tries in printing', @@ -487,8 +476,6 @@ sub handler { 'spreadsheet' => { text => 'Spreadsheets', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value'}], ordered => ['spreadsheet_default_classcalc', 'spreadsheet_default_studentcalc', 'spreadsheet_default_assesscalc','hideemptyrows'], @@ -502,8 +489,6 @@ sub handler { 'bridgetasks' => { text => 'Bridge tasks', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value'}], ordered => ['task_messages','task_grading', 'suppress_embed_prompt'], itemtext => { @@ -559,17 +544,12 @@ sub print_config_box { my $itemtext = $item->{'itemtext'}; my $rowtotal = 0; my $output = - '
'. - &mt($item->{text}).' '. - &Apache::loncommon::help_open_topic($item->{'help'}).' | '."\n". - '||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-
|
-
|
'; +'; return ($output,$rowtotal); } @@ -680,21 +648,7 @@ sub process_changes { } } } elsif (ref($item->{'ordered'}) eq 'ARRAY') { - 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'}}; - } + @ordered = @{$item->{'ordered'}}; } if (@ordered > 0) { if ($action eq 'feedback') { @@ -736,6 +690,7 @@ 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} = '*'; @@ -1391,9 +1346,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.'); } } } @@ -1730,6 +1685,7 @@ sub print_courseinfo { '', input => 'textbox', size => '40', + advanced => 1 }, 'description' => { text => ''.&mt($itemtext->{'description'}).'', @@ -1753,12 +1709,14 @@ sub print_courseinfo { &mt('Owner and Coordinators included automatically'), input => 'textbox', size => '40', + advanced => 1 }, 'rolenames' => { text => ''.&mt($itemtext->{'rolenames'}).' '. '('.$replace.')', input => 'textbox', size => '20', + advanced => 1 }, 'externalsyllabus' => { text => ''.&mt($itemtext->{'externalsyllabus'}).' ('. @@ -1790,7 +1748,11 @@ sub print_courseinfo { next if (!$can_categorize); } $count ++; - $datatable .= &item_table_row_start($items{$item}{text},$count); + if (exists $items{$item}{advanced} && $items{$item}{advanced} == 1) { + $datatable .= &item_table_row_start($items{$item}{text},$count,"advanced"); + } else { + $datatable .= &item_table_row_start($items{$item}{text},$count); + } if ($items{$item}{input} eq 'radio') { $datatable .= &yesno_radio($item,$settings); } elsif ($item eq 'cloners') { @@ -2107,11 +2069,6 @@ 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); @@ -2121,7 +2078,7 @@ sub display_loncaparev_constraints { } my (%fromparam,%rowspan,%bymap,%byresource,@scopeorder,%toshow,%allmaps, %byresponsetype,%bysubmission); - @scopeorder = ('all','section/group','user'); + @scopeorder = ('course','section/group','user'); my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); if (ref($resourcedata) eq 'HASH') { foreach my $key (keys(%{$resourcedata})) { @@ -2139,18 +2096,18 @@ sub display_loncaparev_constraints { if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) { $middle = $1; $which = $2; - $scope = 'user'; + $scope = 'user'; } elsif ($key =~ /^\Q$start\E(\[(\w+)\]\.)/) { $middle = $1; $which = $2; $scope = 'section/group'; } else { - $scope = 'all'; + $scope = 'course'; } my $what="$stdname=$valname"; if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { $level = 'general'; - if ($scope eq 'all') { + if ($scope eq 'course') { if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { push(@{$fromparam{$rev}{$scope}},$what); @@ -2171,7 +2128,7 @@ sub display_loncaparev_constraints { } elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) { $level = 'folder'; $map = $1; - if ($scope eq 'all') { + if ($scope eq 'course') { if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { push(@{$bymap{$map}{$rev}{$scope}},$what); @@ -2191,7 +2148,7 @@ sub display_loncaparev_constraints { } elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { $level = 'resource'; $resource = $1; - if ($scope eq 'all') { + if ($scope eq 'course') { if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { push(@{$byresource{$resource}{$rev}{$scope}},$what); @@ -2230,7 +2187,7 @@ sub display_loncaparev_constraints { if ($newrow) { $output .= &Apache::loncommon::continue_data_table_row(); } - $output .= ' '.$lt{$scope}.' | ';
+ $output .= ''.$scope.' | ';
foreach my $which (sort(keys(%{$fromparam{$rev}{$scope}}))) {
$output .= ''.$which.' | '.
join(' | ';
@@ -2241,7 +2198,7 @@ sub display_loncaparev_constraints {
if ($newrow) {
$output .= &Apache::loncommon::continue_data_table_row();
}
- $output .= '',@{$fromparam{$rev}{$scope}{$which}}).' '.$lt{$scope}.' | | '.
+ $output .= ' | '.$scope.' | | '.
join(' | '.
&Apache::loncommon::end_data_table_row();
$newrow = 1;
@@ -2334,7 +2291,7 @@ sub display_loncaparev_constraints {
my $mapres_header = '',@{$fromparam{$rev}{$scope}}).' '. &mt('Requirements for specific folders or resources'). ''; - if ((keys(%toshow) > 0) || (keys(%byresource) > 0) || + if ((keys(%toshow) > 0) || (keys(%byresource) > 0) || (keys(%bysubmission) > 0) || (keys(%byresponsetype))) { $output .= $mapres_header; } @@ -2347,22 +2304,21 @@ sub display_loncaparev_constraints { $r->print($output); if (defined($navmap)) { &show_contents_view($r,$navmap,$cid,\%toshow,\%bymap,\%byresource,\%bysubmission, - \%byresponsetype,\@scopeorder,\%lt); + \%byresponsetype,\@scopeorder); } - $r->print(''); + $r->print(' '); } else { $r->print(' '. &mt('No version requirements from resource content or settings.'). - ' '); + ''); } $r->print(&Apache::loncommon::end_page()); return; } sub show_contents_view { - my ($r,$navmap,$cid,$toshow,$bymap,$byresource,$bysubmission,$byresponsetype, - $scopeorder,$lt) = @_; - if ((keys(%{$toshow}) > 0) || (keys(%{$byresource}) > 0) || + my ($r,$navmap,$cid,$toshow,$bymap,$byresource,$bysubmission,$byresponsetype,$scopeorder) = @_; + if ((keys(%{$toshow}) > 0) || (keys(%{$byresource}) > 0) || (keys(%{$bysubmission}) > 0) || (keys(%{$byresponsetype}) > 0)) { my $location=&Apache::loncommon::lonhttpdurl("/adm/lonIcons"); my $whitespace = '![]() '.$icon.' '.&mt('Main Course Documents').' | ');
- &releases_by_map($r,$bymap,$topmap,$scopeorder,$lt);
+ &releases_by_map($r,$bymap,$topmap,$scopeorder);
$r->print(&Apache::loncommon::end_data_table_row());
my $it=$navmap->getIterator(undef,undef,undef,1,1,undef);
my $curRes;
@@ -2414,7 +2370,7 @@ sub show_contents_view {
}
$r->print(&Apache::loncommon::start_data_table_row().
''.$indent.$icon.' '.$title.' | ');
- &releases_by_map($r,$bymap,$url,$scopeorder,$lt);
+ &releases_by_map($r,$bymap,$url,$scopeorder);
$r->print(&Apache::loncommon::end_data_table_row());
} else {
my $rowspan;
@@ -2443,7 +2399,7 @@ sub show_contents_view {
$r->print('
|