Diff for /loncom/interface/loncoursegroups.pm between versions 1.21 and 1.27

version 1.21, 2006/05/22 22:35:46 version 1.27, 2006/06/28 16:00:05
Line 1 Line 1
   # The LearningOnline Network with CAPA
   #
   # $Id$
 #  #
 # Copyright Michigan State University Board of Trustees  # Copyright Michigan State University Board of Trustees
 #  #
Line 32  use Apache::lonlocal; Line 35  use Apache::lonlocal;
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
 use Apache::longroup;  use Apache::longroup;
 use Apache::Constants qw(:common :http);  use Apache::Constants qw(:common :http);
   use lib '/home/httpd/lib/perl/';
   use LONCAPA;
   
 sub handler {  sub handler {
     my ($r) = @_;      my ($r) = @_;
Line 235  END Line 240  END
                         $rowColor = $rowColor2;                          $rowColor = $rowColor2;
                     }                      }
                     my $description =                       my $description = 
                    &Apache::lonnet::unescape($grp_info{$group}{'description'});                     &unescape($grp_info{$group}{'description'});
                     my $creator = $grp_info{$group}{'creator'};                      my $creator = $grp_info{$group}{'creator'};
                     my $creation = $grp_info{$group}{'creation'};                      my $creation = $grp_info{$group}{'creation'};
                     my $modified = $grp_info{$group}{'modified'};                       my $modified = $grp_info{$group}{'modified'}; 
Line 300  END Line 305  END
                 foreach my $group (@coursegroups) {                  foreach my $group (@coursegroups) {
                     my %group_info =  &Apache::longroup::get_group_settings(                      my %group_info =  &Apache::longroup::get_group_settings(
                                         $curr_groups{$group});                                          $curr_groups{$group});
                     my $description = &Apache::lonnet::unescape(                      my $description = &unescape(
                                         $group_info{description});                                          $group_info{description});
                     my ($uname,$udom) = split(/:/,$group_info{creator});                      my ($uname,$udom) = split(/:/,$group_info{creator});
                     $r->print('<font size="+1"><a href="/adm/'.$udom.'/'.$uname.'/'.$group.'/grppg">'.$group,'</a><font><br /><small>'.$description.'</small><br /><br />');                      $r->print('<font size="+1"><a href="/adm/'.$udom.'/'.$uname.'/'.$group.'/grppg">'.$group,'</a><font><br /><small>'.$description.'</small><br /><br />');
Line 397  sub group_administration { Line 402  sub group_administration {
         }          }
     }      }
   
     my %toolprivs = ();      my %toolprivs =
     %{$toolprivs{'email'}} = (   (
                                  sgm => 'Send group mail',   email      => {
                                  sgb => 'Broadcast mail',       sgm => 'Send group mail',
                              );       sgb => 'Broadcast mail',
     %{$toolprivs{'discussion'}} =  (   },
                                      cgb => 'Create boards',   discussion => {
                                      pgd => 'Post',       cgb => 'Create boards',
                                      pag => 'Anon. posts',       pgd => 'Post',
                                      rgi => 'Get identities',        pag => 'Anon. posts',
                                      vgb => 'View boards',       rgi => 'Get identities', 
                                    );       vgb => 'View boards',
     %{$toolprivs{'chat'}} =  (   },
                                 pgc => 'Chat',   chat       => {
                              );       pgc => 'Chat',
     %{$toolprivs{'files'}} =  (   },
                                  rgf => 'Retrieve',   files      => {
                                  ugf => 'Upload',       rgf => 'Retrieve',
                                  dgf => 'Delete',       ugf => 'Upload',
                               );               mgf => 'Modify',
     %{$toolprivs{'roster'}} = (       dgf => 'Delete',
                                  vgm => 'View',               agf => 'Control Access',
                               );   },
     %{$toolprivs{'homepage'}} = (   roster     => {
                                 vgh => 'View page',       vgm => 'View',
                                 mgh => 'Modify page',   },
                               );   homepage   => {
     my %fixedprivs = ();       vgh => 'View page',
     %{$fixedprivs{'email'}} = ('sgm' => 1);       mgh => 'Modify page',
     %{$fixedprivs{'discussion'}} = ('vgb' => 1);   },
     %{$fixedprivs{'chat'}} = ('pgc' => 1);   );
     %{$fixedprivs{'files'}} = ('rgf' => 1);  
     %{$fixedprivs{'roster'}} = ('vgm' => 1);      my %fixedprivs = 
     %{$fixedprivs{'homepage'}} = ('vgh' => 1);   (
    email      => {sgm => 1},
     my %elements = ();   discussion => {vgb => 1},
     %{$elements{'create'}} = ();   chat       => {pgc => 1},
     %{$elements{'modify'}} = ();   files      => {rgf => 1},
     %{$elements{'create'}{'pick_name'}} = (   roster     => {vgm => 1},
         startdate_month => 'selectbox',   homepage   => {vgh => 1},
         startdate_hour => 'selectbox',   );
         enddate_month => 'selectbox',  
         enddate_hour => 'selectbox',      my %elements = 
         startdate_day => 'text',   (
         startdate_year => 'text',   create => {
         startdate_minute => 'text',       pick_name => {
         startdate_second => 'text',   startdate_month  => 'selectbox',
         enddate_day => 'text',   startdate_hour   => 'selectbox',
         enddate_year => 'text',   enddate_month    => 'selectbox',
         enddate_minute => 'text',   enddate_hour     => 'selectbox',
         enddate_second => 'text',   startdate_day    => 'text',
         groupname => 'text',   startdate_year   => 'text',
         description => 'text',   startdate_minute => 'text',
         tool => 'checkbox',   startdate_second => 'text',
         granularity => 'radio',   enddate_day      => 'text',
         no_end_date => 'checkbox',   enddate_year     => 'text',
     );   enddate_minute   => 'text',
     %{$elements{'modify'}{'change_settings'}} = (   enddate_second   => 'text',
                                    %{$elements{'create'}{'pick_name'}},   groupname        => 'text',
                                                 specificity => 'radio',   description      => 'text',
                                                 defpriv => 'checkbox',   tool             => 'checkbox',
                                                 autorole => 'checkbox',   granularity      => 'radio',
                                                 autoadd => 'radio',   no_end_date      => 'checkbox',
                                                 autodrop => 'radio',       },
                                    );       pick_members => {
    member          => 'checkbox',
    defpriv         => 'checkbox',
        },
    },
    );
       
       $elements{'modify'} = {
    change_settings => {
       %{$elements{'create'}{'pick_name'}},
       specificity => 'radio',
       defpriv     => 'checkbox',
       autorole    => 'checkbox',
       autoadd     => 'radio',
       autodrop    => 'radio',
    },
    add_members => {
       types       => 'selectbox',
       roles       => 'selectbox',
    },
       };
   
     if (ref($stored{'autorole'}) eq 'ARRAY') {      if (ref($stored{'autorole'}) eq 'ARRAY') {
         foreach my $role (@{$stored{'autorole'}}) {          foreach my $role (@{$stored{'autorole'}}) {
             unless ($role eq 'cc') {              unless ($role eq 'cc') {
Line 470  sub group_administration { Line 496  sub group_administration {
             }              }
         }          }
     }      }
     %{$elements{'create'}{'pick_members'}} = (  
         member => 'checkbox',  
         defpriv => 'checkbox',  
     );  
   
     %{$elements{'modify'}{'add_members'}} = (  
         types => 'selectbox',  
         roles => 'selectbox',  
     );  
   
     if (($action eq 'create') && ($state eq 'pick_name')) {      if (($action eq 'create') && ($state eq 'pick_name')) {
         $elements{'create'}{'pick_name'}{'types'} = 'selectbox';          $elements{'create'}{'pick_name'}{'types'} = 'selectbox';
Line 857  sub retrieve_settings { Line 874  sub retrieve_settings {
     my %stored;      my %stored;
   
     $stored{'description'} =       $stored{'description'} = 
  &Apache::lonnet::unescape($groupinfo{'description'});   &unescape($groupinfo{'description'});
     $stored{'startdate'} = $groupinfo{'startdate'};      $stored{'startdate'} = $groupinfo{'startdate'};
     $stored{'enddate'} = $groupinfo{'enddate'};      $stored{'enddate'} = $groupinfo{'enddate'};
     if ($stored{'enddate'} == 0) {      if ($stored{'enddate'} == 0) {
Line 1071  sub group_members { Line 1088  sub group_members {
         $$group_info{'totalmembers'} = 'Unknown - an error occurred';          $$group_info{'totalmembers'} = 'Unknown - an error occurred';
         return $tmp;          return $tmp;
     }      }
     my $now = time;  
     my $totalmembers = 0;      my $totalmembers = 0;
     my $active = 0;      my $active = 0;
     my $previous = 0;      my $previous = 0;
Line 2114  sub current_membership { Line 2130  sub current_membership {
                 my($end,$start,@userprivs) = split(/:/,$membership{$key});                  my($end,$start,@userprivs) = split(/:/,$membership{$key});
                 unless ($start == -1) {                  unless ($start == -1) {
                     $allnames{$udom}{$uname} = 1;                      $allnames{$udom}{$uname} = 1;
                     %{$current{$user}} = ();                      $current{$user} = {
                     $current{$user}{uname} = $uname;   uname     => $uname,
                     $current{$user}{udom} = $udom;   udom      => $udom,
                     $current{$user}{start} =    start     => &Apache::lonlocal::locallocaltime($start),
                                      &Apache::lonlocal::locallocaltime($start);   currtools => [],
    newtools  => [],
       };
   
                     if ($end == 0) {                      if ($end == 0) {
                         $current{$user}{end} =  'No end date';                          $current{$user}{end} =  'No end date';
                     } else {                      } else {
Line 2136  sub current_membership { Line 2155  sub current_membership {
                         $current{$user}{changestate} = 'expire';                          $current{$user}{changestate} = 'expire';
                         $num_expire ++;                          $num_expire ++;
                     }                      }
                     @{$current{$user}{currtools}} = ();  
                     @{$current{$user}{newtools}} = ();  
                     if (@userprivs > 0) {                      if (@userprivs > 0) {
                         foreach my $tool (sort(keys(%{$fixedprivs}))) {                          foreach my $tool (sort(keys(%{$fixedprivs}))) {
                             foreach my $priv (keys(%{$$fixedprivs{$tool}})) {                              foreach my $priv (keys(%{$$fixedprivs{$tool}})) {
Line 2850  sub write_group_data { Line 2867  sub write_group_data {
         $creation = $$stored{'creation'};          $creation = $$stored{'creation'};
         $creator = $$stored{'creator'};          $creator = $$stored{'creator'};
     }      }
     my $esc_description = &Apache::lonnet::escape($description);      my $esc_description = &escape($description);
     my @single_attributes = ('description','functions','startdate','enddate',      my @single_attributes = ('description','functions','startdate','enddate',
                              'creation','modified','creator','granularity',                               'creation','modified','creator','granularity',
                              'specificity','autoadd','autodrop');                               'specificity','autoadd','autodrop');
Line 2963  sub process_membership { Line 2980  sub process_membership {
                 }                  }
             } else {              } else {
                 if (@{$defprivs} > 0) {                  if (@{$defprivs} > 0) {
                     foreach my $priv (@{$defprivs}) {                      if (grep/^\Q$priv\E$/,@{$defprivs}) {
                         foreach my $user (sort(keys(%{$usertools}))) {                          foreach my $user (sort(keys(%{$usertools}))) {
                             if ($$usertools{$user}{$tool}) {                              if ($$usertools{$user}{$tool}) {
                                 $group_privs{$user} .= $priv.':';                                  $group_privs{$user} .= $priv.':';
Line 3439  sub date_setting_table { Line 3456  sub date_setting_table {
 sub create_homepage {  sub create_homepage {
     my ($cdom,$cnum,$name,$groupinfo,$tools) = @_;      my ($cdom,$cnum,$name,$groupinfo,$tools) = @_;
     my $functionality = join(',',@{$tools});      my $functionality = join(',',@{$tools});
     my $content = &Apache::lonnet::unescape($$groupinfo{description});      my $content = &unescape($$groupinfo{description});
     $content=~s/\s+$//s;      $content=~s/\s+$//s;
     $content=~s/^\s+//s;      $content=~s/^\s+//s;
     $content=~s/\<br\s*\/*\>$//s;      $content=~s/\<br\s*\/*\>$//s;

Removed from v.1.21  
changed lines
  Added in v.1.27


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