[LON-CAPA-cvs] cvs: loncom /interface lonwhatsnew.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Sat, 04 Mar 2006 05:59:04 -0000
albertel Sat Mar 4 00:59:04 2006 EDT
Modified files:
/loncom/interface lonwhatsnew.pm
Log:
- removing code migrated into navmaps
- using new navmpas accessors
Index: loncom/interface/lonwhatsnew.pm
diff -u loncom/interface/lonwhatsnew.pm:1.50 loncom/interface/lonwhatsnew.pm:1.51
--- loncom/interface/lonwhatsnew.pm:1.50 Thu Jan 12 20:18:44 2006
+++ loncom/interface/lonwhatsnew.pm Sat Mar 4 00:59:01 2006
@@ -1,5 +1,5 @@
#
-# $Id: lonwhatsnew.pm,v 1.50 2006/01/13 01:18:44 raeburn Exp $
+# $Id: lonwhatsnew.pm,v 1.51 2006/03/04 05:59:01 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -712,7 +712,6 @@
# force retrieve Resource to seed the part id cache we'll need it later
my @allres=$navmap->retrieveResources(undef,
sub {if ($_[0]->is_problem) { $_[0]->parts();} return 1;});
- my %lastreadtime;
my %resourcetracker;
my $discussiontime;
@@ -721,17 +720,6 @@
&checkversions($cdom,$crs,$navmap,$changed,$starttime);
}
- if ($$show{'coursediscussion'}) {
- my %lastread = &Apache::lonnet::dump('nohist_'.
- $env{'request.course.id'}.'_discuss',
- $env{'user.domain'},$env{'user.name'},'lastread');
- foreach my $key (keys(%lastread)) {
- my $newkey = $key;
- $newkey =~ s/_lastread$//;
- $lastreadtime{$newkey} = $lastread{$key};
- }
- }
-
if ($$show{'abovethreshold'}) {
%resourcetracker = &Apache::lonnet::dump('nohist_resourcetracker',
$cdom,$crs);
@@ -752,8 +740,8 @@
# Check if there are unread discussion postings
if ($$show{'coursediscussion'}) {
- &check_discussions($cdom,$crs,$resource,$symb,$ressymb,$title,
- $newdiscussions,$unread);
+ &check_discussions($resource,$symb,$ressymb,$title,
+ $newdiscussions,$unread,$countunread);
}
# Check for ungraded problems
@@ -776,73 +764,26 @@
}
}
- my $hasdiscussion = @{$newdiscussions};
- if ($$show{'coursediscussion'} && $hasdiscussion) { # Get time of last post;
- $discussiontime = $navmap->{DISCUSSION_TIME};
- foreach my $ressymb (@{$newdiscussions}) {
- $$unread{$ressymb}{'lastpost'} = $$discussiontime{$ressymb};
- }
- if ($countunread eq 'on') { #Get count of unread postings for each resource
- my $discussiondata = $navmap->get_discussion_data();
- foreach my $ressymb (@{$newdiscussions}) {
- &get_discussions($cdom,$crs,$discussiondata,$ressymb,
- $unread,\%lastreadtime);
- }
- }
- }
}
sub check_discussions {
- my ($cdom,$crs,$resource,$symb,$ressymb,$title,$newdiscussions,
- $unread) = @_;
- if ($resource->hasDiscussion()) {
- %{$$unread{$ressymb}} = ();
- $$unread{$ressymb}{'title'} = $title;
- $$unread{$ressymb}{'symb'} = $symb;
- push(@{$newdiscussions}, $ressymb);
- }
-}
+ my ($resource,$symb,$ressymb,$title,$newdiscussions,$unread,
+ $countunread) = @_;
-sub get_discussions {
- my ($cdom,$crs,$discussiondata,$ressymb,$unread,$lastreadtime) = @_;
- my $prevread = 0;
- my $unreadcount = 0;
- if (defined($$lastreadtime{$ressymb})) {
- $prevread = $$lastreadtime{$ressymb};
- }
- my $version = $$discussiondata{'version:'.$ressymb};
- if ($version) {
- my $hiddenflag = 0;
- my $deletedflag = 0;
- my ($hidden,$deleted);
- for (my $id=$version; $id>0; $id--) {
- my $vkeys=$$discussiondata{$id.':keys:'.$ressymb};
- my @keys=split(/:/,$vkeys);
- if (grep/^hidden$/,@keys) {
- unless ($hiddenflag) {
- $hidden = $$discussiondata{$id.':'.$ressymb.':hidden'};
- $hiddenflag = 1;
- }
- } elsif (grep/^deleted$/,@keys) {
- unless ($deletedflag) {
- $deleted = $$discussiondata{$id.':'.$ressymb.':deleted'};
- $deletedflag = 1;
- }
- } else {
- unless (($hidden =~/\.$id\./) || ($deleted =~/\.$id\./)) {
- if ($prevread <$$discussiondata{$id.':'.$ressymb.':timestamp'}) {
- $unreadcount ++;
- $$unread{$ressymb}{$unreadcount} = $id.': '.
- $$discussiondata{$id.':'.$ressymb.':subject'};
- }
- }
- }
- }
- $$unread{$ressymb}{'unreadcount'} = $unreadcount;
+ if (!$resource->hasDiscussion()) { return; }
+
+ %{$$unread{$ressymb}} = ();
+ $$unread{$ressymb}{'title'} = $title;
+ $$unread{$ressymb}{'symb'} = $symb;
+ push(@{$newdiscussions}, $ressymb);
+
+ $$unread{$ressymb}{'lastpost'} = $resource->last_post_time();
+
+ if ($countunread eq 'on') {
+ $$unread{$ressymb}{'unreadcount'} = $resource->unread_discussion();
}
}
-
sub check_handgraded {
my ($resource,$symb,$title,$cdom,$cnum,$ungraded,$tograde) = @_;
if ($resource->is_problem()) {