Diff for /loncom/interface/lonfeedback.pm between versions 1.323 and 1.325

version 1.323, 2012/01/06 01:59:53 version 1.325, 2012/01/06 19:18:11
Line 941  sub build_posting_display { Line 941  sub build_posting_display {
                           $env{'course.'.$env{'request.course.id'}.'.num'},                            $env{'course.'.$env{'request.course.id'}.'.num'},
                           '^'.$symb.':');                            '^'.$symb.':');
     my $thisuser=$env{'user.name'}.':'.$env{'user.domain'};      my $thisuser=$env{'user.name'}.':'.$env{'user.domain'};
   # Array with likes to figure out averages, etc.
       my @theselikes=();
 # Is the user allowed to see the real name behind anonymous postings?  # Is the user allowed to see the real name behind anonymous postings?
     my $see_anonymous =       my $see_anonymous = 
  &Apache::lonnet::allowed('rin',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));   &Apache::lonnet::allowed('rin',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''));
Line 962  sub build_posting_display { Line 964  sub build_posting_display {
        $hidden =~ s/\.$//;         $hidden =~ s/\.$//;
        %hiddens = map { $_ => 1 } (split(/\.\./,$hidden));         %hiddens = map { $_ => 1 } (split(/\.\./,$hidden));
     }      }
 # Versions ...  # Versions if store/restore are used to actually store the messages. 
     if ($contrib{'version'}) {      if ($contrib{'version'}) {
         my $oldest = $contrib{'1:timestamp'};          my $oldest = $contrib{'1:timestamp'};
         if ($prevread eq '0') {          if ($prevread eq '0') {
Line 973  sub build_posting_display { Line 975  sub build_posting_display {
             ($skiptest,$roleregexp,$secregexp,$statusregexp) =               ($skiptest,$roleregexp,$secregexp,$statusregexp) = 
                      &filter_regexp($rolefilter,$sectionpick,$statusfilter);                       &filter_regexp($rolefilter,$sectionpick,$statusfilter);
             $rolematch = $roleregexp.':'.$secregexp.':'.$statusregexp;              $rolematch = $roleregexp.':'.$secregexp.':'.$statusregexp;
         }           }
   # We need to go through this twice, first to get the likes/dislikes, then to actually build the display
           for (my $id=1;$id<=$contrib{'version'};$id++) {
               my $idx=$id;
               next if ($contrib{$idx.':deleted'});
               next if ($contrib{$idx.':hidden'});
               unless ((($hiddens{$idx}) && (!$seeid)) || ($deletions{$idx}) || (!$contrib{$idx.':message'})) {
                   push(@theselikes,$likes{$symb.':'.$idx.':likes'});
               }
           }
   # Figure out average likes and standard deviation if there are enough discussions to warrant that
           my $ave=0;
           my $stddev=10000;
           if ($#theselikes>1) {
               my $sum=0;
               my $num=$#theselikes+1;
               foreach my $thislike (@theselikes) {
                   $sum+=$thislike;
               }
               $ave=$sum/$num;
               my $sumsq=0;
               foreach my $thislike (@theselikes) {
                   $sumsq+=($thislike-$ave)*($thislike-$ave);
               }
               $stddev=sqrt($sumsq/$num);
           }
   # Now we know the average likes $ave and the standard deviation $stddev
   #            &Apache::lonnet::logthis(join(',',@theselikes)." Ave $ave StdDev $stddev");
   #
   # This is now the real loop. Go through all entries, pick up what we need
   # 
  for (my $id=1;$id<=$contrib{'version'};$id++) {   for (my $id=1;$id<=$contrib{'version'};$id++) {
     my $idx=$id;      my $idx=$id;
             next if ($contrib{$idx.':deleted'});              next if ($contrib{$idx.':deleted'});
             next if ($contrib{$idx.':hidden'});              next if ($contrib{$idx.':hidden'});
   # If we get here, we are actually going to display the message - we don't know where and we don't know if we display
   # previous edits, but it counts as one entry
             my $posttime = $contrib{$idx.':timestamp'};              my $posttime = $contrib{$idx.':timestamp'};
             if ($prevread <= $posttime) {              if ($prevread <= $posttime) {
                 $$newpostsflag = 1;                  $$newpostsflag = 1;
Line 1319  sub build_posting_display { Line 1353  sub build_posting_display {
                                     $$discussionitems[$idx] .= '<b>'.$version.'.</b> - '.&Apache::lonlocal::locallocaltime($postversions[$i]).'  ';                                      $$discussionitems[$idx] .= '<b>'.$version.'.</b> - '.&Apache::lonlocal::locallocaltime($postversions[$i]).'  ';
                                 }                                  }
                             }                              }
   # end of unless ($$notshown ...)
                         }                          }
   # end of if ($message) ...
                     }                      }
   # end of the else-branch of target being export
                 }                  }
   # end of unless hidden or deleted
             }              }
   # end of the loop over all discussion entries
  }   }
   # end of "if there actually are any discussions
     }      }
   # end of subroutine "build_posting_display" 
 }  }
   
 sub filter_regexp {  sub filter_regexp {

Removed from v.1.323  
changed lines
  Added in v.1.325


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>