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

raeburn raeburn at source.lon-capa.org
Sat Nov 5 09:37:49 EDT 2016


raeburn		Sat Nov  5 13:37:49 2016 EDT

  Modified files:              
    /loncom/interface	lonwhatsnew.pm 
  Log:
  - Don't include boxes for course messages (normal and critical) for ad hoc roles
    because those users are not actually in the course (so will always be empty).
  - Boxes (where displayed) always shown in the same column.
    - handgradeable, errors, difficult items, version changes -- left column
    - discussion, course mail, new roles, expired roles, login history -- right column
  - Change privileges for: 
    - display of errors (need vgr instead of opa)
    - version changes (need whn instead of mdc)
  
  
Index: loncom/interface/lonwhatsnew.pm
diff -u loncom/interface/lonwhatsnew.pm:1.120 loncom/interface/lonwhatsnew.pm:1.121
--- loncom/interface/lonwhatsnew.pm:1.120	Sun Oct 23 21:50:55 2016
+++ loncom/interface/lonwhatsnew.pm	Sat Nov  5 13:37:49 2016
@@ -1,5 +1,5 @@
 #
-# $Id: lonwhatsnew.pm,v 1.120 2016/10/23 21:50:55 raeburn Exp $
+# $Id: lonwhatsnew.pm,v 1.121 2016/11/05 13:37:49 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -62,14 +62,32 @@
     my $command = $env{'form.command'};
     my $refpage = $env{'form.refpage'};
 
-    my %checkallowed = ( coursenormalmail => 1,
-			 coursecritmail => 1, );
+    my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+    my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
+
+    my ($isadhoc,%checkallowed);
+
+    if ($env{'request.role'} =~ m{^(cc|co)/}) {
+        my $rolecode = $1;
+        if ($env{"environment.internal.$cdom.$crs.$env{'request.role'}.adhoc"}) {
+            $isadhoc = 1;
+        }
+    } elsif ($env{'request.role'} =~ m{^cr/$cdom/$cdom\-domainconfig/(\w+)\./}) {
+        my $rolename = $1;
+        if ($env{"environment.internal.$cdom.$crs.cr/$cdom/$cdom-domainconfig/$rolename.adhoc"}) {
+            $isadhoc = 1;
+        }
+    }
+    unless ($isadhoc) {
+        %checkallowed = ( coursenormalmail => 1,
+			  coursecritmail => 1,);
+    }
     foreach my $perm_check (['whn','whatsnew',1],
 			    ['pch','coursediscussion',1],
 			    ['mgr','handgrading',1],
 			    ['vgr','abovethreshold',1],
-			    ['opa','haserrors',1],
-			    ['mdc','versionchanges',0],
+			    ['vgr','haserrors',1],
+			    ['whn','versionchanges',0],
                             ['vcl','newroles',1],
                             ['vcl','oldroles',1],
                             ['whn','crslogin',1],
@@ -157,7 +175,7 @@
             ("What's New?",#'Course_Action_Items_Display'
 	     ));
     }
-    &display_main_box($r,$command,$refpage,\%checkallowed);
+    &display_main_box($r,$command,$refpage,\%checkallowed,$cdom,$crs);
     return OK;
 }
 
@@ -168,7 +186,7 @@
 #------------------------------
                                                                                 
 sub display_main_box {
-    my ($r,$command,$refpage,$checkallowed) = @_;
+    my ($r,$command,$refpage,$checkallowed,$cdom,$crs) = @_;
     my $domain=&Apache::loncommon::determinedomain();
     my $function = &Apache::loncommon::get_users_function();
     my $lctype = lc(&Apache::loncommon::course_type());
@@ -215,13 +233,10 @@
                      userpref => 'your general user preferences',
                      coursespecific => "specific setting for this $lctype",
                    );
-    my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
-    my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
 
     if (($command eq 'chgthreshold') 
 	&& $checkallowed->{'abovethreshold'}) {
-        &display_threshold_config($r,$refpage,\%threshold_titles,
-                                                                   $cdom,$crs);
+        &display_threshold_config($r,$refpage,\%threshold_titles,$cdom,$crs);
     } elsif (($command eq 'chginterval') 
 	     && $checkallowed->{'versionchanges'}) {
         &display_interval_config($r,$refpage,\%interval_titles,'versions');
@@ -574,6 +589,18 @@
 	    '<br />',$threshold{'numstudents'});
 
     my @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail','newroles','oldroles','crslogin');
+    my %actioncolumn = (
+                         handgrading      => 'left',
+                         haserrors        => 'left',
+                         abovethreshold   => 'left',
+                         versionchanges   => 'left',
+                         coursediscussion => 'right',
+                         coursenormalmail => 'right',
+                         coursecritmail   => 'right',
+                         newroles         => 'right',
+                         oldroles         => 'right',
+                         crslogin         => 'right',
+                       );
 
     foreach my $key (keys(%{$checkallowed})) {
 	if ($key =~ /_section$/) { next; }
@@ -639,12 +666,13 @@
             $totalboxes ++;
         }
     }
-    my $halfway = 4;
+    my $currcolumn = 'left';
 #    my $halfway = int($totalboxes/2) + $totalboxes%2;
     foreach my $actionitem (@actionorder) {
-        if ($$checkallowed{$actionitem}) {
-            if ($displayed == $halfway) {
+        if ($checkallowed->{$actionitem}) {
+            if (($actioncolumn{$actionitem} eq 'right') && ($currcolumn eq 'left')) {
                 $r->print('</td><td> </td><td class="LC_right_col" >');
+                $currcolumn = 'right'; 
             }
             &display_launcher($r,$actionitem,$refpage,$checkallowed,\%show,\%headings,\%res_title,\@tograde,\%ungraded,\@bombs,\%bombed,\%changed,\@warnings,\%triggered,\@newdiscussions,\%unread,$msgcount,\@newmsgs,$critmsgcount,\@critmsgs,\%interval,$countunread,\%expired,$expirecount,\%activated,$activecount,$crstype,$itemserror,\%loggedin,$logincount,$classlist);
             $displayed ++; 




More information about the LON-CAPA-cvs mailing list