--- loncom/interface/lonuserutils.pm 2008/01/01 20:27:29 1.39
+++ loncom/interface/lonuserutils.pm 2008/01/06 04:27:25 1.45
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Utility functions for managing LON-CAPA user accounts
#
-# $Id: lonuserutils.pm,v 1.39 2008/01/01 20:27:29 raeburn Exp $
+# $Id: lonuserutils.pm,v 1.45 2008/01/06 04:27:25 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1307,33 +1307,24 @@ sub print_userlist {
}
$r->rflush();
if ($context eq 'course') {
- my $classlist = &Apache::loncoursedata::get_classlist();
- my $secidx = &Apache::loncoursedata::CL_SECTION();
- my $viewablesec = &viewable_section($permission);
- foreach my $student (keys(%{$classlist})) {
- my $section = $classlist->{$student}[$secidx];
- if ($viewablesec ne '') {
- if ($section ne $viewablesec) {
- next;
- } else {
- $userlist{$student} = $classlist->{$student};
- }
+ if ($env{'form.showrole'} eq 'st' || ($env{'form.showrole'} eq 'Any') {
+ my $classlist = &Apache::loncoursedata::get_classlist();
+ %userlist = %{$classlist};
+ }
+ if ($env{'form.showrole'} ne 'st') {
+ my $showroles;
+ if ($env{'form.showrole'} ne 'Any') {
+ $showroles = [$env{'form.showrole'}];
} else {
- $userlist{$student} = $classlist->{$student};
+ $showroles = undef;
}
+ my $withsec = 1;
+ my $hidepriv = 1;
+ my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef,
+ \@statuses,$showroles,undef,$withsec,$hidepriv);
+ &gather_userinfo($context,$format,\%userlist,$indexhash,\%userinfo,
+ \%advrolehash,$permission);
}
- my $showroles;
- if ($env{'form.showrole'} ne 'Any') {
- $showroles = [$env{'form.showrole'}];
- } else {
- $showroles = undef;
- }
- my $withsec = 1;
- my $hidepriv = 1;
- my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef,
- \@statuses,$showroles,undef,$withsec,$hidepriv);
- &gather_userinfo($context,$format,\%userlist,$indexhash,\%userinfo,
- \%advrolehash,$permission);
} else {
my (%cstr_roles,%dom_roles);
if ($context eq 'author') {
@@ -1799,6 +1790,7 @@ sub make_keylist_array {
$index->{'email'} = &Apache::loncoursedata::CL_PERMANENTEMAIL();
$index->{'role'} = &Apache::loncoursedata::CL_ROLE();
$index->{'extent'} = &Apache::loncoursedata::CL_EXTENT();
+ $index->{'photo'} = &Apache::loncoursedata::CL_PHOTO();
foreach my $key (keys(%{$index})) {
$keylist->[$index->{$key}] = $key;
}
@@ -1907,7 +1899,19 @@ END
my $alert = &mt("You must select at least one user by checking a user's 'Select' checkbox");
my $singconfirm = &mt(' for a single user?');
my $multconfirm = &mt(' for multiple users?');
- my $date_sec_selector = &date_section_javascript($context,$setting,$statusmode);
+ my $date_sec_selector = &date_section_javascript($context,$setting,$statusmode);
+ my %lt = &Apache::lonlocal::texthash(
+ acwi => 'Access will be set to start immediately',
+ asyo => 'as you did not select an end date in the pop-up window',
+ accw => 'Access will be set to continue indefinitely',
+ asyd => 'as you did not select an end date in the pop-up window',
+ sewi => "Sections will be switched to 'No section'",
+ ayes => "as you either selected the 'No section' option",
+ oryo => 'or you did not select a section in the pop-up window',
+ arol => 'A role with no section will be added',
+ swbs => 'Sections will be switched to:',
+ rwba => 'Roles will be added for section(s):',
+ );
$r->print(<
';
}
if ($actionselect) {
- $output .= <<"END";
-$lt{'ac'}: $actionselect
-
+
END
my @allroles;
if ($env{'form.showrole'} eq 'Any') {
@@ -2224,6 +2264,10 @@ END
# Get groups, role, permanent e-mail so we can sort on them if
# necessary.
foreach my $user (keys(%{$userlist})) {
+ if ($user eq '' ) {
+ delete($userlist->{$user});
+ next;
+ }
if ($context eq 'domain' && $user eq $env{'request.role.domain'}.'-domainconfig:'.$env{'request.role.domain'}) {
delete($userlist->{$user});
next;
@@ -2269,6 +2313,13 @@ END
}
if ($mode ne 'autoenroll') {
my $section = $userlist->{$user}->[$index{'section'}];
+ if (($env{'request.course.sec'} ne '') &&
+ ($section ne $env{'request.course.sec'})) {
+ if ($role eq 'st') {
+ delete($userlist->{$user});
+ next;
+ }
+ }
if ($secfilter eq 'none') {
if ($section ne '') {
delete($userlist->{$user});
@@ -2291,6 +2342,13 @@ END
next;
}
}
+ if ($env{'course.'.$env{'request.course.id'}.'.internal.showphoto'}) {
+ if (($displayphotos eq 'on') && ($role eq 'st')) {
+ $userlist->{$user}->[$index{'photo'}] =
+ &Apache::lonnet::retrievestudentphoto($udom,$uname,
+ 'gif','thumbnail');
+ }
+ }
}
}
my %emails = &Apache::loncommon::getemails($uname,$udom);
@@ -2422,11 +2480,8 @@ END
$r->print('