--- loncom/interface/lonaboutme.pm 2007/05/02 01:33:48 1.62 +++ loncom/interface/lonaboutme.pm 2007/05/23 21:44:11 1.63 @@ -1,7 +1,7 @@ # The LearningOnline Network # "About Me" Personal Information # -# $Id: lonaboutme.pm,v 1.62 2007/05/02 01:33:48 albertel Exp $ +# $Id: lonaboutme.pm,v 1.63 2007/05/23 21:44:11 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -252,32 +252,32 @@ sub handler { &print_portfiles_link($r,$is_course); } - if ($env{'request.course.id'}) { - if (&Apache::lonnet::allowed('srm',$env{'request.course.id'})) { - if ($target ne 'tex') { - $r->print(''); - $r->print('

'. - &mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'

'. - &mt('Shared by course faculty and staff'). - &Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message"). -'
'); - &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); - $r->print('
'); - if (&Apache::lonnet::allowed('vsa', - $env{'request.course.id'}) || - &Apache::lonnet::allowed('vsa', - $env{'request.course.id'}.'/'. - $env{'request.course.sec'})) { - $r->print(&Apache::loncommon::track_student_link - ('View recent activity by this student', - $cnum,$cdom).(' 'x2)); - } - $r->print(&Apache::loncommon::noteswrapper('Add Records',$cnum,$cdom)); - } else { - $r->print('\\\\\textbf{'.&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'}\\\\'.&mt('Shared by course faculty and staff').'\\\\\\\\'); - &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); + if ($env{'request.course.id'} + && &Apache::lonnet::allowed('srm',$env{'request.course.id'}) + && &in_course($cdom,$cnum)) { + if ($target ne 'tex') { + $r->print('
'); + $r->print('

'. + &mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'

'. + &mt('Shared by course faculty and staff'). + &Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message"). + '
'); + &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); + $r->print('
'); + if (&Apache::lonnet::allowed('vsa', + $env{'request.course.id'}) || + &Apache::lonnet::allowed('vsa', + $env{'request.course.id'}.'/'. + $env{'request.course.sec'})) { + $r->print(&Apache::loncommon::track_student_link + ('View recent activity by this student', + $cnum,$cdom).(' 'x2)); } - } + $r->print(&Apache::loncommon::noteswrapper('Add Records',$cnum,$cdom)); + } else { + $r->print('\\\\\textbf{'.&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'}\\\\'.&mt('Shared by course faculty and staff').'\\\\\\\\'); + &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); + } } if ($target ne 'tex') { $r->print(&Apache::loncommon::end_page()); @@ -287,6 +287,33 @@ sub handler { return OK; } +sub in_course { + my ($udom,$uname,$cdom,$cnum,$type) = @_; + $type ||= 'any'; + if (!defined($cdom) || !defined($cnum)) { + my $cid = $env{'request.course.id'}; + $cdom = $env{'course.'.$cid.'.domain'}; + $cnum = $env{'course.'.$cid.'.num'}; + } + my %roles = &Apache::lonnet::dump('roles',$udom,$uname); + my @course_roles = grep(m{^/\Q$cdom\E/\Q$cnum\E[/_]}, keys(%roles)); + return 0 if (!@course_roles); + return 1 if ($type eq 'any'); + my $now = time(); + foreach my $role (@course_roles) { + my (undef,$role_end,$role_start)=split(/\_/,$roles{$role}); + my $status = 'active'; + if ($role_start > 0 && $now < $role_start) { + $status = 'future'; + } + if ($role_end > 0 && $now > $role_end) { + $status = 'previous'; + } + return 1 if ($status eq $type); + } + return 0; +} + sub aboutme_info { my ($r,$is_course) = @_; my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri);