--- loncom/interface/courseprefs.pm 2009/10/29 14:57:18 1.9 +++ loncom/interface/courseprefs.pm 2009/11/24 13:49:28 1.13 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.9 2009/10/29 14:57:18 raeburn Exp $ +# $Id: courseprefs.pm,v 1.13 2009/11/24 13:49:28 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -101,7 +101,7 @@ sub handler { date => 'Locale used for community calendar', coco => 'Community Content', copo => 'Community Policy', - priv => 'Domain Coodinators in community', + priv => 'Domain Coordinators in community', defd => 'Default dates for member access', stuv => 'Member-viewable membership list options', stul => 'Member agreement needed to be listed', @@ -126,7 +126,7 @@ sub handler { date => 'Locale used for course calendar', coco => 'Course Content', copo => 'Course Policy', - priv => 'Domain Coodinators in course', + priv => 'Domain Coordinators in course', defd => 'Default dates for student access', stuv => 'Student-viewable classlist options', stul => 'Student agreement needed to be listed', @@ -332,7 +332,7 @@ sub handler { \@prefs_order,\%prefs,\%values, $cnum,undef,\@allitems); } elsif ($phase eq 'display') { - my $jscript = &get_jscript($cdom,$phase); + my $jscript = &get_jscript($cdom,$phase,$crstype); my @allitems = &get_allitems(%prefs); &Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context, \@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype); @@ -1174,8 +1174,8 @@ sub get_course { } sub get_jscript { - my ($cdom,$phase) = @_; - my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom); + my ($cdom,$phase,$crstype) = @_; + my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom,$crstype); my ($jscript,$categorize_js); my $stubrowse_js = &Apache::loncommon::studentbrowser_javascript(); my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset'); @@ -1294,14 +1294,14 @@ sub print_courseinfo { if (ref($cathash) eq 'HASH') { $categoriesform = &Apache::loncommon::assign_categories_table($cathash, - $settings->{'categories'})."\n"; + $settings->{'categories'},$crstype)."\n"; } } if (!defined($categoriesform)) { $categoriesform = &mt('No categories defined for this domain'); } - my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom); + my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom,$crstype); my $replace; if ($crstype eq 'Community') { @@ -1507,15 +1507,24 @@ sub new_cloners_dom_row { } sub can_modify_catsettings { - my ($dom) = @_; + my ($dom,$crstype) = @_; my %domconf = &Apache::lonnet::get_dom('configuration',['coursecategories'],$dom); my ($can_toggle_cat,$can_categorize); if (ref($domconf{'coursecategories'}) eq 'HASH') { - if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') { - $can_toggle_cat = 1; - } - if ($domconf{'coursecategories'}{'categorize'} eq 'crs') { - $can_categorize = 1; + if ($crstype eq 'Community') { + if ($domconf{'coursecategories'}{'togglecatscomm'} eq 'comm') { + $can_toggle_cat = 1; + } + if ($domconf{'coursecategories'}{'categorizecomm'} eq 'comm') { + $can_categorize = 1; + } + } else { + if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') { + $can_toggle_cat = 1; + } + if ($domconf{'coursecategories'}{'categorize'} eq 'crs') { + $can_categorize = 1; + } } } return ($can_toggle_cat,$can_categorize); @@ -1531,7 +1540,13 @@ sub assign_course_categories { if (ref($domconf{'coursecategories'}) eq 'HASH') { $cathash = $domconf{'coursecategories'}{'cats'}; if (ref($cathash) eq 'HASH') { - $hascats = 1; + foreach my $cat (keys(%{$cathash})) { + next if ($cat eq 'instcode::0'); + unless ($crstype eq 'Community') { + next if ($cat eq 'communities::0'); + } + $hascats ++; + } } } my $catwin_js; @@ -1597,15 +1612,20 @@ ENDSCRIPT if ($hascats) { my %currsettings = &Apache::lonnet::get('environment',['hidefromcat','categories'],$cdom,$cnum); - $categoriesform .= $assign.'

'. - '
'."\n". - &Apache::loncommon::assign_categories_table($cathash, - $currsettings{'categories'})."\n". - '

'; + my $cattable = &Apache::loncommon::assign_categories_table($cathash, + $currsettings{'categories'},$crstype); + if ($cattable eq '') { + $categoriesform .= &mt('No suitable categories defined for this course type in this domain.'); + } else { + $categoriesform .= $assign.'

'. + '
'."\n". + $cattable."\n". + '

'; + } } else { - $categoriesform .= &mt('No categories defined for this domain'); + $categoriesform .= &mt('No categories defined in this domain.'); } $r->print($start_page.$categoriesform.$end_page); return; @@ -1768,7 +1788,7 @@ sub user_table { } else { my $num = 0; my @curr = split(/,/,$currvalue); - $output .= &Apache::loncommon::start_data_table(); + $output .= ''; my ($currusers); foreach my $val (@curr) { next if ($val eq ''); @@ -1799,7 +1819,7 @@ sub user_table { $num ++; } if ($num) { - $output .= &Apache::loncommon::start_data_table_row(). + $output .= ''. ''. - &Apache::loncommon::end_data_table_row(); + ''; } - $output .= &Apache::loncommon::start_data_table_row(). + $output .= ''. ''.&Apache::loncommon::end_data_table_row(). - &Apache::loncommon::end_data_table(); + '
'; if ($num > 1) { $output .= $lt->{'currone'}; @@ -1808,15 +1828,14 @@ sub user_table { } $output .= '
'. ''.$currusers.'
'. $lt->{'add'}.'
'. &select_recipient($item,$num,$cdom,$sections). ''. - '
'; } return $output; } @@ -1827,9 +1846,8 @@ sub select_recipient { my $selectlink = &Apache::loncommon::selectstudent_link('display',$item.'_uname_'.$num, $item.'_udom_'.$num,1); - my $css_class = ($num % 2)?'LC_even_row':'LC_odd_row'; my $output = - '
'.&mt('Username').'
'. + ''. ''; if (ref($sections) eq 'ARRAY') { @@ -1883,8 +1901,8 @@ sub print_discussion { } my %items = ( 'plc.roles.denied' => { - text => ''.&mt($itemtext->{'plc.roles.denied'}).''. - &Apache::loncommon::help_open_topic("Course_Disable_Discussion"). + text => ''.&mt($itemtext->{'plc.roles.denied'}).''. + &Apache::loncommon::help_open_topic("Course_Disable_Discussion").'
'. &mt('(role-based)'), input => 'checkbox', }, @@ -1896,8 +1914,8 @@ sub print_discussion { }, 'pch.roles.denied' => { - text => ''.&mt($itemtext->{'pch.roles.denied'}).''. - &Apache::loncommon::help_open_topic("Course_Disable_Discussion").'
'. + text => ''.&mt($itemtext->{'pch.roles.denied'}).''. + &Apache::loncommon::help_open_topic("Course_Disable_Discussion").'
'. &mt('(role-based)'), input => 'checkbox', }, @@ -2203,10 +2221,11 @@ sub print_grading { input => 'selectbox', options => { standard => &mt('Standard: shows points'), - external => &mt('External: shows number of completed parts'), + external => &mt('External: shows number of completed parts and totals'), + externalnototals => &mt('External: shows only number of completed parts'), spreadsheet => &mt('Spreadsheet: (with link to detailed scores)'), }, - order => ['standard','external','spreadsheet'], + order => ['standard','external','externalnototals','spreadsheet'], }, 'rndseed' => { text => ''.&mt($itemtext->{'rndseed'}).''. @@ -2678,11 +2697,11 @@ function getIndexByName(item) { ENDJS - $output .= $currstr.&Apache::loncommon::start_data_table(); + $output .= $currstr.'
'.&mt('Username').'
'. '
'.&mt('Domain').'
'.$domform.'
'; if (@curr > 0) { for (my $i=0; $i<@curr; $i++) { my $pos = $i+1; - $output .= &Apache::loncommon::start_data_table_row(). + $output .= ''. ''; } - $output .= &Apache::loncommon::end_data_table_row(); + $output .= ''; } } my $pos = $currnum+1; - $output .= &Apache::loncommon::start_data_table_row(). + $output .= ''. ''. - &Apache::loncommon::end_data_table_row(); + ''; $pos ++; $currnum ++; - $output .= &Apache::loncommon::start_data_table_row(). + $output .= ''. ''. @@ -2717,8 +2736,8 @@ ENDJS '" value="" size ="25" />'. ''. - &Apache::loncommon::end_data_table_row(). - &Apache::loncommon::end_data_table(); + ''. + '
'. &position_selector($pos,$i,$maxnum).&mt('Delete:'). '
'. &position_selector($pos,$currnum,$maxnum). ''.&mt('New').''. &substitution_selector($currnum).'
'. &position_selector($pos,$currnum,$maxnum). ''.&mt('New').'
'; return $output; }