--- loncom/interface/lonfeedback.pm 2012/01/04 00:08:29 1.316
+++ loncom/interface/lonfeedback.pm 2012/01/04 19:27:04 1.319
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.316 2012/01/04 00:08:29 www Exp $
+# $Id: lonfeedback.pm,v 1.319 2012/01/04 19:27:04 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -296,8 +296,6 @@ sub list_discussion {
my $copyresult;
my $function = &Apache::loncommon::get_users_function();
- my $color = &Apache::loncommon::designparm($function.'.tabbg',
- $env{'user.domain'});
my %lt = &Apache::lonlocal::texthash(
'cuse' => 'My settings for this discussion',
'allposts' => 'All posts',
@@ -504,7 +502,7 @@ imscp_v1p1.xsd http://www.imsglobal.org/
my $thisdepth=$depth[$alldiscussion{$post}];
if ($outputtarget ne 'tex' && $outputtarget ne 'export') {
for (1..$thisdepth) {
- $discussion.='
| ';
+ $discussion.=' | ';
}
}
my $colspan=$maxdepth-$thisdepth+1;
@@ -2789,8 +2787,11 @@ sub send_msg {
}
}
-
- my %record=&Apache::lonnet::restore('_feedback');
+# Records of number of postings, etc, are kept under the "symb" called "_feedback"
+# There are two entries within the framework of a course:
+# - the URLs for which feedback was provided
+# - the total number of contributions
+ my %record=&getdiscrecords();
my ($temp)=keys(%record);
unless ($temp=~/^error\:/) {
my %newrecord=();
@@ -2804,6 +2805,66 @@ sub send_msg {
return ($status,$sendsomething);
}
+# Routine to get the complete discussion records
+
+sub getdiscrecords {
+ my ($uname,$udom,$course)=@_;
+ unless ($uname) { $uname=$env{'user.name'}; }
+ unless ($udom) { $udom=$env{'user.domain'}; }
+ unless ($course) { $course=$env{'request.course.id'}; }
+ my %record=&Apache::lonnet::restore('_feedback',$course,$udom,$uname);
+ return %record;
+}
+
+# Routine to get discussion statistics
+
+sub getdiscstats {
+ my %record=&getdiscrecords(@_);
+ my $subnumber=$record{'subnumber'};
+ my $points=0;
+ my $likes=0;
+ foreach my $key (keys(%record)) {
+ if ($key=~/^\d+\:points$/) {
+ $points+=$record{$key};
+ }
+ if ($key=~/^\d+\:likes$/) {
+ $likes+=$record{$key};
+ }
+ }
+ return ($subnumber,$points,$likes);
+}
+
+# Store discussion credit
+
+sub storediscpoints {
+ my ($points,$uname,$udom,$course)=@_;
+ unless ($points) { $points=0; }
+ unless ($uname) { $uname=$env{'user.name'}; }
+ unless ($udom) { $udom=$env{'user.domain'}; }
+ unless ($course) { $course=$env{'request.course.id'}; }
+ my %record=('grader_user' => $env{'user.name'},
+ 'grader_domain' => $env{'user.domain'},
+ 'points' => $points);
+ return &Apache::lonnet::cstore(\%record,'_feedback');
+}
+
+# Store discussion "likes"
+
+sub storedisclikes {
+ my ($likes,$uname,$udom,$course)=@_;
+ unless ($likes) { $likes=0; }
+ if ($likes>0) { $likes=1; }
+ if ($likes<0) { $likes=-1; }
+ unless ($uname) { $uname=$env{'user.name'}; }
+ unless ($udom) { $udom=$env{'user.domain'}; }
+ unless ($course) { $course=$env{'request.course.id'}; }
+ my %record=('likes_user' => $env{'user.name'},
+ 'likes_domain' => $env{'user.domain'},
+ 'likes' => $likes);
+ return &Apache::lonnet::cstore(\%record,'_feedback');
+}
+
+
sub adddiscuss {
my ($symb,$email,$anon,$attachmenturl,$subject,$group)=@_;
my $status='';