--- loncom/interface/domainprefs.pm 2009/08/11 23:24:29 1.102 +++ loncom/interface/domainprefs.pm 2009/08/22 18:48:56 1.106 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.102 2009/08/11 23:24:29 raeburn Exp $ +# $Id: domainprefs.pm,v 1.106 2009/08/22 18:48:56 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -105,7 +105,7 @@ affiliate type (and also default, and _L (official, unofficial and community). In each case the radio buttons allow the selection of one of four values: -0, approve, validate, autolimit=N (where N is blank, or a positive integer). +0, approval, validate, autolimit=N (where N is blank, or a positive integer). which have the following effects: 0 @@ -116,7 +116,7 @@ which have the following effects: =back -approve +approval =over @@ -1149,7 +1149,7 @@ sub print_quotas { my ($css_class,%titles); if ($context eq 'requestcourses') { @usertools = ('official','unofficial','community'); - @options =('norequest','approve','autolimit','validate'); + @options =('norequest','approval','validate','autolimit'); %validations = &Apache::lonnet::auto_courserequest_checks($dom); %titles = &courserequest_titles(); } else { @@ -1222,9 +1222,12 @@ sub print_quotas { if ($option eq 'autolimit') { $cell{$item} .= ''; + 'value="'.$currlimit.'" />'; } $cell{$item} .= '  '; + if ($option eq 'autolimit') { + $cell{$item} .= $titles{'unlimited'} + } } } else { my $checked = 'checked="checked" '; @@ -1246,7 +1249,7 @@ sub print_quotas { if ($context eq 'requestcourses') { $datatable .= ''; foreach my $item (@usertools) { - $datatable .= ''.$cell{$item}.''; + $datatable .= ''.$cell{$item}.''; } $datatable .= ''; } @@ -1328,6 +1331,9 @@ sub print_quotas { 'value="'.$currlimit.'" />'; } $defcell{$item} .= '  '; + if ($option eq 'autolimit') { + $defcell{$item} .= $titles{'unlimited'} + } } } else { my $checked = 'checked="checked" '; @@ -1349,7 +1355,7 @@ sub print_quotas { if ($context eq 'requestcourses') { $datatable .= ''; foreach my $item (@usertools) { - $datatable .= ''.$defcell{$item}.''; + $datatable .= ''.$defcell{$item}.''; } $datatable .= ''; } @@ -1363,9 +1369,13 @@ sub print_quotas { $typecount ++; $css_class = $typecount%2?' class="LC_odd_row"':''; $datatable .= ''. - ''.&mt('LON-CAPA Advanced Users'). - ' ('. - &mt('overrides affiliation').')'. + ''.&mt('LON-CAPA Advanced Users').' '; + if ($context eq 'requestcourses') { + $datatable .= &mt('(overrides affiliation, if set)'); + } else { + $datatable .= &mt('(overrides affiliation, if checked)'); + } + $datatable .= ''. ''; if ($context eq 'requestcourses') { $datatable .= ''; @@ -1384,10 +1394,15 @@ sub print_quotas { } } } - if (!$curroption) { - $curroption = 'norequest'; - } $datatable .= ''; + my $checked = ''; + if ($curroption eq '') { + $checked = ' checked="checked"'; + } + $advcell{$item} .= '  '; foreach my $option (@options) { my $val = $option; if ($option eq 'norequest') { @@ -1403,7 +1418,7 @@ sub print_quotas { next if (!$canvalidate); } my $checked = ''; - if ($option eq $curroption) { + if ($val eq $curroption) { $checked = ' checked="checked"'; } elsif ($option eq 'autolimit') { if ($curroption =~ /^autolimit/) { @@ -1420,6 +1435,9 @@ sub print_quotas { 'value="'.$currlimit.'" />'; } $advcell{$item} .= '  '; + if ($option eq 'autolimit') { + $advcell{$item} .= $titles{'unlimited'} + } } } else { my $checked = 'checked="checked" '; @@ -1441,7 +1459,7 @@ sub print_quotas { if ($context eq 'requestcourses') { $datatable .= ''; foreach my $item (@usertools) { - $datatable .= ''; + $datatable .= ''; } $datatable .= '
'.$titles{$item}.'
'.$advcell{$item}.''.$advcell{$item}.'
'; } @@ -1452,7 +1470,7 @@ sub print_quotas { sub print_courserequestmail { my ($dom,$settings,$rowtotal) = @_; - my ($now,$datatable,%dompersonnel,@domcoord,@currapprove,$rows); + my ($now,$datatable,%dompersonnel,@domcoord,@currapproval,$rows); $now = time; $rows = 0; %dompersonnel = &Apache::lonnet::get_domain_roles($dom,['dc'],$now,$now); @@ -1467,12 +1485,12 @@ sub print_courserequestmail { if (ref($settings) eq 'HASH') { if (ref($settings->{'notify'}) eq 'HASH') { if ($settings->{'notify'}{'approval'} ne '') { - @currapprove = split(',',$settings->{'notify'}{'approval'}); + @currapproval = split(',',$settings->{'notify'}{'approval'}); } } } - if (@currapprove) { - foreach my $dc (@currapprove) { + if (@currapproval) { + foreach my $dc (@currapproval) { unless (grep(/^\Q$dc\E$/,@domcoord)) { push(@domcoord,$dc); } @@ -1498,7 +1516,7 @@ sub print_courserequestmail { $rows ++; } my $check = ' '; - if (grep(/^\Q$domcoord[$i]\E$/,@currapprove)) { + if (grep(/^\Q$domcoord[$i]\E$/,@currapproval)) { $check = ' checked="checked" '; } my ($uname,$udom) = split(':',$domcoord[$i]); @@ -1869,16 +1887,17 @@ sub courserequest_titles { unofficial => 'Unofficial', community => 'Communities', norequest => 'Not allowed', - approve => 'Approval by Dom. Coord.', + approval => 'Approval by Dom. Coord.', validate => 'With validation', autolimit => 'Numerical limit', + unlimited => '(blank for unlimited)', ); return %titles; } sub courserequest_conditions { my %conditions = &Apache::lonlocal::texthash ( - approve => '(Processing of request subject to approval by Domain Coordinator).', + approval => '(Processing of request subject to approval by Domain Coordinator).', validate => '(Processing of request subject to instittutional validation).', ); return %conditions; @@ -3769,7 +3788,7 @@ sub modify_quotas { } if ($context eq 'requestcourses') { @usertools = ('official','unofficial','community'); - @options =('norequest','approve','autolimit','validate'); + @options =('norequest','approval','validate','autolimit'); %validations = &Apache::lonnet::auto_courserequest_checks($dom); %titles = &courserequest_titles(); $toolregexp = join('|',@usertools); @@ -3824,7 +3843,12 @@ sub modify_quotas { } foreach my $item (@usertools) { foreach my $type (@{$types},'default','_LC_adv') { + my $unset; if ($context eq 'requestcourses') { + $unset = '0'; + if ($type eq '_LC_adv') { + $unset = ''; + } if ($confhash{$item}{$type} eq 'autolimit') { $confhash{$item}{$type} .= '='; unless ($limithash{$item}{$type} =~ /\D/) { @@ -3845,7 +3869,7 @@ sub modify_quotas { } } else { if ($context eq 'requestcourses') { - if ($confhash{$item}{$type} ne 'norequest') { + if ($confhash{$item}{$type} ne $unset) { $changes{$item}{$type} = 1; } } else { @@ -3856,7 +3880,7 @@ sub modify_quotas { } } else { if ($context eq 'requestcourses') { - if ($confhash{$item}{$type} eq 'norequest') { + if ($confhash{$item}{$type} ne $unset) { $changes{$item}{$type} = 1; } } else { @@ -3982,7 +4006,15 @@ sub modify_quotas { $resulttext .= '
  • '.&mt('Set to be available to [_1]',$typetitle).'
  • '; } } else { - $resulttext .= '
  • '.&mt('Set to be unavailable to [_1]',$typetitle).'
  • '; + if ($type eq '_LC_adv') { + if ($confhash{$item}{$type} eq '0') { + $resulttext .= '
  • '.&mt('Set to be unavailable to [_1]',$typetitle).'
  • '; + } else { + $resulttext .= '
  • '.&mt('No override set for [_1]',$typetitle).'
  • '; + } + } else { + $resulttext .= '
  • '.&mt('Set to be unavailable to [_1]',$typetitle).'
  • '; + } } } } @@ -4530,6 +4562,8 @@ sub modify_usercreation { if (@{$types} > 0) { @{$cancreate{'statustocreate'}} = &Apache::loncommon::get_env_multiple('form.statustocreate'); + } else { + @{$cancreate{'statustocreate'}} = (); } push(@contexts,'statustocreate'); } @@ -4538,9 +4572,11 @@ sub modify_usercreation { if (($item eq 'selfcreate') || ($item eq 'statustocreate')) { if (ref($curr_usercreation{'cancreate'}{$item}) eq 'ARRAY') { foreach my $curr (@{$curr_usercreation{'cancreate'}{$item}}) { - if (!grep(/^$curr$/,@{$cancreate{$item}})) { - if (!grep(/^$item$/,@{$changes{'cancreate'}})) { - push(@{$changes{'cancreate'}},$item); + if (ref($cancreate{$item}) eq 'ARRAY') { + if (!grep(/^$curr$/,@{$cancreate{$item}})) { + if (!grep(/^$item$/,@{$changes{'cancreate'}})) { + push(@{$changes{'cancreate'}},$item); + } } } } @@ -5009,8 +5045,10 @@ sub modify_defaults { if ($newvalues{$item} ne '') { if ($newvalues{$item} =~ /^(\w+)/) { my $langcode = $1; - if (code2language($langcode) eq '') { - push(@errors,$item); + if ($langcode ne 'x_chef') { + if (code2language($langcode) eq '') { + push(@errors,$item); + } } } else { push(@errors,$item);