--- loncom/interface/lonpickstudent.pm 2007/08/02 01:39:26 1.22
+++ loncom/interface/lonpickstudent.pm 2009/03/01 01:17:20 1.26
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Pick a student from the classlist
#
-# $Id: lonpickstudent.pm,v 1.22 2007/08/02 01:39:26 albertel Exp $
+# $Id: lonpickstudent.pm,v 1.26 2009/03/01 01:17:20 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -122,13 +122,11 @@ ENDSCRIPT
&Apache::lonnet::get_course_adv_roles();
$r->print(&Apache::loncommon::start_data_table());
foreach my $role (sort(keys(%coursepersonnel))) {
- foreach (split(/\,/,$coursepersonnel{$role})) {
- my ($puname,$pudom)=split(/\:/,$_);
- $role = &Apache::lonnet::plaintext($role,
- &Apache::loncommon::course_type());
+ foreach my $user (split(/\,/,$coursepersonnel{$role})) {
+ my ($puname,$pudom)=split(/\:/,$user);
$r->print(&Apache::loncommon::start_data_table_row().
'
'.
- ' | '.$role.' | '.
&Apache::loncommon::aboutmewrapper(&Apache::loncommon::plainname($puname,$pudom),$puname,$pudom).' | '.
&Apache::loncommon::end_data_table_row());
@@ -201,28 +199,35 @@ ENDSCRIPT
$r->print($filtermsg);
$r->print(''.&Apache::loncommon::start_data_table());
- my %users=&Apache::lonnet::get_my_roles();
- foreach my $user (sort(keys(%users))) {
- if ($user =~
- /^($LONCAPA::username_re)\:($LONCAPA::domain_re)\:(\w+)$/) {
- my ($uname,$udom,$urole)=($1,$2,$3);
- my $fullname=&Apache::loncommon::plainname($uname,$udom);
- if (($uname=~/^$filter/) ||
- ($fullname=~/^$filter/i)) {
- $r->print(&Apache::loncommon::start_data_table_row().
- '
'.
- ' | '.
- ''.$uname.' | '.$udom.
- ' | '.
- &Apache::loncommon::aboutmewrapper(
- $fullname,
- $uname,$udom).' | | '.
- &Apache::lonnet::plaintext($urole).
- ' | '.
- &Apache::loncommon::end_data_table_row());
- }
+ my %user_role=&Apache::lonnet::get_my_roles();
+ my %users;
+ foreach my $user_role (keys(%user_role)) {
+ next if ($user_role !~
+ /^($LONCAPA::username_re):($LONCAPA::domain_re):(\w+)$/);
+ my ($uname,$udom,$urole)=($1,$2,$3);
+ my $fullname=&Apache::loncommon::plainname($uname,$udom);
+ next if (($uname!~/^$filter/i) && ($fullname !~/^$filter/i));
+
+ if (!exists($users{"$uname:$udom"})) {
+ $users{"$uname:$udom"} = {'fullname' => $fullname };
}
+ push(@{$users{"$uname:$udom"}{'roles'}},$urole);
+ }
+ foreach my $user (sort {lc($a) cmp lc($b)} (keys(%users))) {
+ my ($uname,$udom) = split(':',$user);
+ $r->print(&Apache::loncommon::start_data_table_row().
+ ''.
+ ' | '.
+ ''.$uname.' | '.
+ ''.$udom.' | '.
+ &Apache::loncommon::aboutmewrapper($users{$user}{'fullname'},
+ $uname,$udom).' | '.
+ ''.
+ join(', ',sort(map {&Apache::lonnet::plaintext($_)}
+ (@{$users{$user}{'roles'}}))).
+ ' | '.
+ &Apache::loncommon::end_data_table_row());
}
$r->print(&Apache::loncommon::end_data_table().'');
}