--- loncom/interface/lonwhatsnew.pm 2011/05/12 16:53:02 1.101.2.1
+++ loncom/interface/lonwhatsnew.pm 2012/02/08 17:07:02 1.101.2.1.2.1
@@ -1,5 +1,5 @@
#
-# $Id: lonwhatsnew.pm,v 1.101.2.1 2011/05/12 16:53:02 raeburn Exp $
+# $Id: lonwhatsnew.pm,v 1.101.2.1.2.1 2012/02/08 17:07:02 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -72,6 +72,7 @@ sub handler {
['mdc','versionchanges',0],
['vcl','newroles',1],
['vcl','oldroles',1],
+ ['whn','crslogin',1],
) {
my ($perm,$key,$check_section) = @{ $perm_check };
my $scope = $env{'request.course.id'};
@@ -143,6 +144,13 @@ sub handler {
$r->print(&Apache::lonhtmlcommon::breadcrumbs
("What's New?",#'Course_Action_Items_Intervals'
));
+ } elsif ($command eq 'chgcrslogininterval' && $checkallowed{'crslogin'}) {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>'/adm/whatsnew?command=chgcrslogininterval&refpage='.$refpage,
+ text=>"Change interval"});
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs
+ ("What's New?",#'Course_Action_Items_Intervals'
+ ));
} else {
$r->print(&Apache::lonhtmlcommon::breadcrumbs
("What's New?",#'Course_Action_Items_Display'
@@ -188,10 +196,17 @@ sub display_main_box {
604800 => 'roles which expired since last week',
86400 => 'roles which expired since yesterday',
);
+ my %crslogins = (
+ -1 => 'last logins for anyone who has ever logged in',
+ 2592000 => 'last logins for users in last 30 days',
+ 604800 => 'last logins for users in last 7 days',
+ 86400 => 'last logins for users in last 24 hours',
+ );
my %interval_titles = (
versions => \%versions,
newroles => \%newroles,
oldroles => \%oldroles,
+ crslogin => \%crslogins,
);
my %initpage = &Apache::lonlocal::texthash (
firstres => "first resource in the $lctype",
@@ -220,6 +235,9 @@ sub display_main_box {
} elsif (($command eq 'chgoldroleinterval')
&& $checkallowed->{'oldroles'}) {
&display_interval_config($r,$refpage,\%interval_titles,'oldroles');
+ } elsif (($command eq 'chgcrslogininterval')
+ && $checkallowed->{'crslogin'}) {
+ &display_interval_config($r,$refpage,\%interval_titles,'crslogin');
} else {
&display_actions_box($r,$command,$refpage,\%threshold_titles,
\%interval_titles,\%initpage,$cdom,$crs,$checkallowed);
@@ -245,9 +263,11 @@ sub display_header {
my $scripttag;
unless ($command eq 'chgthreshold' || $command eq 'chginterval' ||
- $command eq 'chgoldroleinterval' || $command eq 'chgnewroleinterval') {
+ $command eq 'chgoldroleinterval' ||
+ $command eq 'chgnewroleinterval' || $command eq 'chgcrslogininterval') {
$scripttag = <<"END";
';
}
@@ -315,6 +381,8 @@ sub display_actions_box {
my %expired;
my $activecount;
my %activated;
+ my %loggedin;
+ my $logincount;
my %res_title = ();
my %show = ();
my $needitems = 0;
@@ -445,6 +513,20 @@ sub display_actions_box {
$headings{'newroles'} = &mt('Roles for which access to '.$lctype.' has become available since yesterday');
}
+ $timediff{'crslogin'} = $display_settings{$cid.':crslogininterval'};
+ unless (defined($timediff{'crslogin'})) { $timediff{'crslogin'} = 604800; }
+ $interval{'crslogin'} = $interval_titles->{'crslogin'}->{$timediff{'crslogin'}};
+
+ if ($timediff{'crslogin'} == -1) {
+ $headings{'crslogin'} = &mt('Last login for anyone who has ever logged in');
+ } elsif ($timediff{'crslogin'} == 2592000) {
+ $headings{'crslogin'} = &mt('Last login for users in last 30 days');
+ } elsif ($timediff{'crslogin'} == 604800) {
+ $headings{'crslogin'} = &mt('Last login for users in last 7 days');
+ } elsif ($timediff{'crslogin'} == 86400) {
+ $headings{'crslogin'} = &mt('Last login for users in last 24 hours');
+ }
+
my $now = time;
if ($timediff{'versions'} == -1) {
$timediff{'versions'} = time;
@@ -461,6 +543,12 @@ sub display_actions_box {
}
my $expiredstart = $now - $timediff{'oldroles'};
+ if ($timediff{'crslogin'} == -1) {
+ $timediff{'crslogin'} = time;
+ }
+
+ my $crsloginstart = $now - $timediff{'crslogin'};
+
my $countunread = $display_settings{$cid.':countunread'};
unless (defined($countunread)) {
$countunread = 'on';
@@ -474,7 +562,7 @@ sub display_actions_box {
$threshold{'av_attempts'},$threshold{'degdiff'},
'
',$threshold{'numstudents'});
- my @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail','newroles','oldroles');
+ my @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail','newroles','oldroles','crslogin');
foreach my $key (keys(%{$checkallowed})) {
if ($key =~ /_section$/) { next; }
@@ -512,6 +600,9 @@ sub display_actions_box {
if ($show{'newroles'}) {
$activecount = &getactivated(\%activated,$activatedstart,'active');
}
+ if ($show{'crslogin'}) {
+ $logincount = &getloggedin($cdom,$crs,\%loggedin,$crsloginstart);
+ }
$r->print(qq|$lt{'hial'}
$lt{'shal'}