--- loncom/interface/lonwhatsnew.pm 2016/10/23 21:50:55 1.120
+++ loncom/interface/lonwhatsnew.pm 2016/11/05 13:37:49 1.121
@@ -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 @@ sub handler {
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 @@ sub handler {
("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 handler {
#------------------------------
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 @@ sub display_main_box {
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 @@ sub display_actions_box {
'
',$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 @@ sub display_actions_box {
$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('