Diff for /loncom/interface/loncoursegroups.pm between versions 1.16 and 1.17

version 1.16, 2006/05/09 15:09:27 version 1.17, 2006/05/18 01:08:50
Line 30  use Apache::loncommon; Line 30  use Apache::loncommon;
 use Apache::lonhtmlcommon;  use Apache::lonhtmlcommon;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
   use Apache::longroup;
 use Apache::Constants qw(:common :http);  use Apache::Constants qw(:common :http);
   
 sub handler {  sub handler {
Line 154  sub display_groups { Line 155  sub display_groups {
         if (!defined($action)) {          if (!defined($action)) {
             $action = 'view';              $action = 'view';
         }          }
         my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum);          my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
         if (%curr_groups) {          if (%curr_groups) {
             $r->print('<br /><br />');              $r->print('<br /><br />');
             $r->print(&Apache::lonhtmlcommon::start_pick_box());              $r->print(&Apache::lonhtmlcommon::start_pick_box());
Line 182  END Line 183  END
             my %Sortby = ();              my %Sortby = ();
             foreach my $group (sort(keys(%curr_groups))) {              foreach my $group (sort(keys(%curr_groups))) {
                 %{$grp_info{$group}} =                   %{$grp_info{$group}} = 
                                   &Apache::loncommon::get_group_settings(                                    &Apache::longroup::get_group_settings(
                                                          $curr_groups{$group});                                                           $curr_groups{$group});
                 my $members_result = &group_members($cdom,$cnum,$group,                  my $members_result = &group_members($cdom,$cnum,$group,
                                                     \%grp_info);                                                      \%grp_info);
Line 267  END Line 268  END
         my @coursegroups = split(/:/,$env{'request.course.groups'});          my @coursegroups = split(/:/,$env{'request.course.groups'});
         if (@coursegroups > 0) {          if (@coursegroups > 0) {
             $r->print('<br /><br />');              $r->print('<br /><br />');
             my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum);              my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
             if (%curr_groups) {              if (%curr_groups) {
                 foreach my $group (@coursegroups) {                  foreach my $group (@coursegroups) {
                     my %group_info =  &Apache::loncommon::get_group_settings(                      my %group_info =  &Apache::longroup::get_group_settings(
                                         $curr_groups{$group});                                          $curr_groups{$group});
                     my $description = &Apache::lonnet::unescape(                      my $description = &Apache::lonnet::unescape(
                                         $group_info{description});                                          $group_info{description});
Line 433  sub group_administration { Line 434  sub group_administration {
                                    );                                     );
     if (ref($stored{'autorole'}) eq 'ARRAY') {      if (ref($stored{'autorole'}) eq 'ARRAY') {
         foreach my $role (@{$stored{'autorole'}}) {          foreach my $role (@{$stored{'autorole'}}) {
             $elements{'modify'}{'change_settings'}{'sec_'.$role} = 'selectbox';               unless ($role eq 'cc') {
                   $elements{'modify'}{'change_settings'}{'sec_'.$role} = 
                                                                      'selectbox';
               }
         }          }
     }      }
     %{$elements{'create'}{'pick_members'}} = (      %{$elements{'create'}{'pick_members'}} = (
Line 807  function changeSort(caller) { Line 811  function changeSort(caller) {
   
 sub retrieve_settings {  sub retrieve_settings {
     my ($cdom,$cnum,$groupname) = @_;      my ($cdom,$cnum,$groupname) = @_;
     my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum,$groupname);      my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,$groupname);
   
     return if (!%curr_groups);      return if (!%curr_groups);
   
     my %groupinfo =       my %groupinfo = 
  &Apache::loncommon::get_group_settings($curr_groups{$groupname});   &Apache::longroup::get_group_settings($curr_groups{$groupname});
   
     my %stored;      my %stored;
   
Line 849  sub retrieve_settings { Line 853  sub retrieve_settings {
     $stored{'autodrop'} = $groupinfo{'autodrop'};      $stored{'autodrop'} = $groupinfo{'autodrop'};
     if (exists($groupinfo{'autosec'})) {      if (exists($groupinfo{'autosec'})) {
  foreach my $role (sort(keys(%{$groupinfo{'autosec'}}))) {   foreach my $role (sort(keys(%{$groupinfo{'autosec'}}))) {
     foreach my $section (@{$groupinfo{'autosec'}{$role}}) {              if (ref($groupinfo{'autosec'}{$role}) eq 'ARRAY') {
  push (@{$stored{'sec_'.$role}},$section);          foreach my $section (@{$groupinfo{'autosec'}{$role}}) {
     }              push (@{$stored{'sec_'.$role}},$section);
     if (@{$groupinfo{'autosec'}{$role}} > 0) {          }
  push(@{$stored{'autorole'}},$role);          if (@{$groupinfo{'autosec'}{$role}} > 0) {
     }      push(@{$stored{'autorole'}},$role);
           }
               }
  }   }
     }      }
     return %stored;      return %stored;
Line 1247  sub membership_options { Line 1253  sub membership_options {
     $r->print(&Apache::lonhtmlcommon::role_select_row(\@roles));      $r->print(&Apache::lonhtmlcommon::role_select_row(\@roles));
     if (@sections > 0) {      if (@sections > 0) {
         @sections = sort {$a cmp $b} @sections;          @sections = sort {$a cmp $b} @sections;
         unshift(@sections,'_all'); # Put 'all' at the front of the list          unshift(@sections,'all'); # Put 'all' at the front of the list
         unshift(@sections,'_nosec'); # Put 'no sections' next          unshift(@sections,'none'); # Put 'no sections' next
         $r->print('<td>&nbsp;</td>          $r->print('<td>&nbsp;</td>
                    <td colspan="3" align="center" valign="top">'.                     <td colspan="3" align="center" valign="top">'.
         &sections_selection(\@sections,'sectionpick').'</td>');          &sections_selection(\@sections,'sectionpick').'</td>');
Line 1269  sub sections_selection { Line 1275  sub sections_selection {
         $numvisible = @{$sections};          $numvisible = @{$sections};
     }      }
     foreach my $sec (@{$sections}) {      foreach my $sec (@{$sections}) {
         if ($sec eq '_all') {          if ($sec eq 'all') {
             $section_sel .= '  <option value="'.$sec.'" />all sections'."\n";              $section_sel .= '  <option value="'.$sec.'" />all sections'."\n";
         } elsif ($sec eq '_nosec') {          } elsif ($sec eq 'none') {
             $section_sel .= '  <option value="'.$sec.'" />no section'."\n";               $section_sel .= '  <option value="'.$sec.'" />no section'."\n"; 
         } else {          } else {
             $section_sel .= '  <option value="'.$sec.'" />'.$sec."\n";              $section_sel .= '  <option value="'.$sec.'" />'.$sec."\n";
Line 2588  sub member_privileges_form { Line 2594  sub member_privileges_form {
         }          }
         $specificity = $env{'form.specificity'};          $specificity = $env{'form.specificity'};
     } else {      } else {
         @defprivs = @{$$stored{'defpriv'}};          if (defined($$stored{'defpriv'})) {
               @defprivs = @{$$stored{'defpriv'}};
           }
         $specificity = $$stored{'specificity'};          $specificity = $$stored{'specificity'};
     }      }
     my @showtools;      my @showtools;
Line 2772  sub process_request { Line 2780  sub process_request {
             @defprivs = @temp;               @defprivs = @temp; 
         }          }
     } else {      } else {
         @defprivs = @{$$stored{'defpriv'}};          if (defined($$stored{'defpriv'})) {
               @defprivs = @{$$stored{'defpriv'}};
           }
     }      }
   
     my $outcome;      my $outcome;
Line 2852  sub write_group_data { Line 2862  sub write_group_data {
         if (defined($env{'form.sec_'.$role})) {          if (defined($env{'form.sec_'.$role})) {
             my @autosections=&Apache::loncommon::get_env_multiple('form.sec_'.              my @autosections=&Apache::loncommon::get_env_multiple('form.sec_'.
                                                                   $role);                                                                    $role);
             if (grep/^_all$/,@autosections) {  
                 @autosections = sort {$a cmp $b} keys(%{$sectioncount});  
             }  
             $autosec .= '<role id="'.$role.'">';              $autosec .= '<role id="'.$role.'">';
             foreach my $sec (@autosections) {              foreach my $sec (@autosections) {
                 $autosec .= '<section>'.$sec.'</section>';                  $autosec .= '<section>'.$sec.'</section>';
Line 3055  sub process_membership { Line 3062  sub process_membership {
         }          }
     }      }
     if ($roster_result eq 'ok') {      if ($roster_result eq 'ok') {
         $r->print('<br />Group membership list updated.');          $r->print('<br />'.&mt('Group membership list updated.'));
     } else {      } else {
         $r->print('<br />An error occurred while updating the group membership list -'.$roster_result.'<br />');          $r->print('<br />'.&mt('An error occurred while updating the group membership list -').$roster_result.'<br />');
     }      }
     return;      return;
 }  }
Line 3115  sub automapping { Line 3122  sub automapping {
    <td>&nbsp;</td>     <td>&nbsp;</td>
    <td colspan="3">     <td colspan="3">
    <nobr>'.$$lt{'auad'}.':&nbsp;     <nobr>'.$$lt{'auad'}.':&nbsp;
     <input type="radio" name="autoadd" value="on" />on&nbsp;&nbsp;<input type="radio" name="autoadd" value="off" />off');      <input type="radio" name="autoadd" value="on" />on&nbsp;&nbsp;<input type="radio" name="autoadd" value="off" checked="checked" />off');
     if ($action eq 'modify') {      if ($action eq 'modify') {
         $r->print('&nbsp;&nbsp;&nbsp;&nbsp;('.$$lt{'curr'}.' <b>'.$$lt{$add}.'</b>)');          $r->print('&nbsp;&nbsp;&nbsp;&nbsp;('.$$lt{'curr'}.' <b>'.$$lt{$add}.'</b>)');
     }      }
Line 3127  sub automapping { Line 3134  sub automapping {
    <td>&nbsp;</td>     <td>&nbsp;</td>
    <td colspan="3">     <td colspan="3">
     <nobr>'.$$lt{'auex'}.':&nbsp;      <nobr>'.$$lt{'auex'}.':&nbsp;
     <input type="radio" name="autodrop" value="on" />on&nbsp;&nbsp;<input type="radio" name="autodrop" value="off" />off');      <input type="radio" name="autodrop" value="on" />on&nbsp;&nbsp;<input type="radio" name="autodrop" value="off" checked="checked" />off');
     if ($action eq 'modify') {      if ($action eq 'modify') {
         $r->print('&nbsp;&nbsp;&nbsp;&nbsp;('.$$lt{'curr'}.' <b>'.$$lt{$drop}.'</b>)');          $r->print('&nbsp;&nbsp;&nbsp;&nbsp;('.$$lt{'curr'}.' <b>'.$$lt{$drop}.'</b>)');
     }      }
Line 3150  sub mapping_settings { Line 3157  sub mapping_settings {
     my @sections = keys(%{$sectioncount});      my @sections = keys(%{$sectioncount});
     if (@sections > 0) {      if (@sections > 0) {
         @sections = sort {$a cmp $b} @sections;          @sections = sort {$a cmp $b} @sections;
         unshift(@sections,'_nosec'); # Put 'no sections' next          unshift(@sections,'none'); # Put 'no sections' next
         unshift(@sections,'_all'); # Put 'all' at the front of the list          unshift(@sections,'all'); # Put 'all' at the front of the list
     }      }
     &topic_bar($r,$tabcol,$image,$$lt{'pirs'});      &topic_bar($r,$tabcol,$image,$$lt{'pirs'});
     $r->print('      $r->print('
Line 3175  sub mapping_settings { Line 3182  sub mapping_settings {
         my $plrole=&Apache::lonnet::plaintext($role);          my $plrole=&Apache::lonnet::plaintext($role);
         my $sections_sel;          my $sections_sel;
         if (@sections > 0) {          if (@sections > 0) {
             $sections_sel='<td>'.&sections_selection(\@sections,'sec_'.$role).              if ($role eq 'cc') {
                                                                        '</td>';                  $sections_sel = '<td align="right">'.
                                   &mt('all sections').'<input type="hidden" '. 
                                   'name="sec_cc" value="all" /></td>';
               } else { 
                   $sections_sel='<td align="right">'.
                                 &sections_selection(\@sections,'sec_'.$role).
                                 '</td>';
               }
         }          }
         if ($rowNum %2 == 1) {          if ($rowNum %2 == 1) {
             $rowColor = $rowColor1;              $rowColor = $rowColor1;
Line 3209  sub mapping_settings { Line 3223  sub mapping_settings {
 }  }
   
 sub standard_roles {  sub standard_roles {
     my @roles = ('st','ep','ta','in','cc');      my @roles = ('cc','in','ta','ep','st');
     return @roles;      return @roles;
 }  }
   
Line 3410  function toggleTools(field,caller) { Line 3424  function toggleTools(field,caller) {
 sub validate_groupname {  sub validate_groupname {
     my ($groupname,$action,$cdom,$cnum) = @_;      my ($groupname,$action,$cdom,$cnum) = @_;
     my %sectioncount = &Apache::loncommon::get_sections($cdom,$cnum);      my %sectioncount = &Apache::loncommon::get_sections($cdom,$cnum);
     my %curr_groups = &Apache::loncommon::coursegroups($cdom,$cnum);      my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
   
     my %lt = &Apache::lonlocal::texthash (      my %lt = &Apache::lonlocal::texthash (
                       igna => 'Invalid group name',                        igna => 'Invalid group name',

Removed from v.1.16  
changed lines
  Added in v.1.17


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>