[LON-CAPA-cvs] cvs: loncom /interface lonaboutme.pm

albertel lon-capa-cvs-allow@mail.lon-capa.org
Wed, 23 May 2007 21:44:11 -0000


albertel		Wed May 23 17:44:11 2007 EDT

  Modified files:              
    /loncom/interface	lonaboutme.pm 
  Log:
  - only display the srm section if its a member of the course
  
  
Index: loncom/interface/lonaboutme.pm
diff -u loncom/interface/lonaboutme.pm:1.62 loncom/interface/lonaboutme.pm:1.63
--- loncom/interface/lonaboutme.pm:1.62	Tue May  1 21:33:48 2007
+++ loncom/interface/lonaboutme.pm	Wed May 23 17:44:11 2007
@@ -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 @@
         &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('<a name="coursecomment" />');
-		$r->print('<hr /><h3>'.
-                          &mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'</h3>'.
-                          &mt('Shared by course faculty and staff').
-                          &Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message").
-'<br />');
-                &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom);
-                $r->print('<hr />');
-                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).('&nbsp;'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('<a name="coursecomment" />');
+	    $r->print('<hr /><h3>'.
+		      &mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'</h3>'.
+		      &mt('Shared by course faculty and staff').
+		      &Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message").
+		      '<br />');
+	    &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom);
+	    $r->print('<hr />');
+	    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).('&nbsp;'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 @@
     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);