--- loncom/interface/loncoursegroups.pm 2006/07/28 18:44:27 1.58 +++ loncom/interface/loncoursegroups.pm 2006/07/29 00:31:58 1.59 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.58 2006/07/28 18:44:27 raeburn Exp $ +# $Id: loncoursegroups.pm,v 1.59 2006/07/29 00:31:58 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1027,7 +1027,7 @@ sub display_control { $userdata,$granularity,$quota,$specificity, $idx,$states,$navbuttons,$gpterm,$ucgpterm); } elsif ($state eq 'add_members') { - &add_members_form($r,$action,$state,$page,$startdate, + &add_members_form($r,$cdom,$cnum,$action,$state,$page,$startdate, $enddate,$groupname,$description,$granularity, $quota,$sectioncount,$tools,$functions,$stored, $states,$navbuttons,$gpterm,$ucgpterm); @@ -1194,8 +1194,8 @@ sub general_settings_form { $gpterm,$ucgpterm,$crstype); &access_date_settings($r,$action,$formname,$stored,2,$gpterm,$ucgpterm); if ($action eq 'create') { - &membership_options($r,$action,$formname,$sectioncount,3,$gpterm, - $ucgpterm); + &membership_options($r,$cdom,$cnum,$action,$formname,$sectioncount,3, + $gpterm,$ucgpterm); $nexttext = $$navbuttons{'gtns'}; } else { my @available = (); @@ -1343,7 +1343,7 @@ sub get_quota_constraints { } sub membership_options { - my ($r,$action,$state,$sectioncount,$image,$gpterm,$ucgpterm) = @_; + my ($r,$cdom,$cnum,$action,$state,$sectioncount,$image,$gpterm,$ucgpterm)=@_; my $crstype = &Apache::loncommon::course_type(); my %lt = &Apache::lonlocal::texthash( 'pipa' => 'Build a list of users for selection of group members', @@ -1365,8 +1365,7 @@ sub membership_options { future => &mt('Will have future access'), ); - #FIXME need to plumb around for the various cr roles defined by the user - my @roles = ('st','cc','in','ta','ep'); + my @roles = ('st','cc','in','ta','ep','cr'); my @sections = keys(%{$sectioncount}); @@ -1389,7 +1388,7 @@ sub membership_options { '); $r->print(&Apache::lonhtmlcommon::status_select_row(\%status_types)); $r->print(''); - $r->print(&Apache::lonhtmlcommon::role_select_row(\@roles)); + $r->print(&Apache::lonhtmlcommon::role_select_row(\@roles,undef,undef,1,$cdom,$cnum)); if (@sections > 0) { @sections = sort {$a cmp $b} @sections; unshift(@sections,'none'); # Put 'no sections' next @@ -2364,7 +2363,7 @@ sub change_privs_form { } sub add_members_form { - my ($r,$action,$formname,$page,$startdate,$enddate,$groupname, + my ($r,$cdom,$cnum,$action,$formname,$page,$startdate,$enddate,$groupname, $description,$granularity,$quota,$sectioncount,$tools,$functions, $stored,$states,$navbuttons,$gpterm,$ucgpterm)=@_; $r->print('
'); @@ -2374,7 +2373,8 @@ sub add_members_form { &print_current_settings($r,$action,$functions,$startdate,$enddate, $groupname,$description,$granularity,$quota, \@available,\@unavailable,$gpterm,$ucgpterm); - &membership_options($r,$action,$formname,$sectioncount,1,$gpterm,$ucgpterm); + &membership_options($r,$cdom,$cnum,$action,$formname,$sectioncount,1,$gpterm, + $ucgpterm); my $nexttext = $$navbuttons{'gtns'}; my $prevtext = $$navbuttons{'gtpp'}; &display_navbuttons($r,$formname,$$states{$action}[$page-1],$prevtext, @@ -3140,7 +3140,7 @@ sub mapping_settings { } &topic_bar($r,$image,$$lt{'pirs'}); my @roles = &standard_roles(); - my %customroles = &course_custom_roles($cdom,$cnum); + my %customroles = &Apache::lonhtmlcommon::course_custom_roles($cdom,$cnum); $r->print(&Apache::loncommon::start_data_table(). &Apache::loncommon::start_data_table_header_row()); $r->print(' @@ -3157,7 +3157,6 @@ sub mapping_settings { my @customs; foreach my $role (sort(keys(%customroles))) { my ($roletitle) = ($role =~ m|^cr/[^/]+/[^/]+/(.+)$|); - $role =~ s/\//_/g; push (@customs,$role); $r->print(&print_autorole_item($role,$roletitle,\@sections)); } @@ -3206,23 +3205,6 @@ sub standard_roles { return @roles; } -sub course_custom_roles { - my ($cdom,$cnum) = @_; - my %returnhash=(); - my %coursepersonnel=&Apache::lonnet::dump('nohist_userroles',$cdom,$cnum); - foreach my $person (sort(keys(%coursepersonnel))) { - my ($role) = ($person =~ /^([^:]+):/); - my ($end,$start) = split(/:/,$coursepersonnel{$person}); - if ($end == -1 && $start == -1) { - next; - } - if ($role =~ m|^cr/[^/]+/[^/]+/[^/]|) { - $returnhash{$role} ++; - } - } - return %returnhash; -} - sub modify_menu { my ($r,$groupname,$page,$gpterm) = @_; my @menu =