Count using all users who have answered the poll, instead of only users 
who have answered a particular question.

        Patch by fu. 

diffs (43 lines):

diff -r 2080401734d2 -r 6f4a246e970a cgi-bin/LJ/Poll/Question.pm
--- a/cgi-bin/LJ/Poll/Question.pm       Wed Apr 20 11:09:37 2011 +0800
+++ b/cgi-bin/LJ/Poll/Question.pm       Wed Apr 20 11:12:08 2011 +0800
@@ -248,6 +248,22 @@ sub answers_as_html {
 
     my $LIMIT = $pagesize * ($page - 1) . "," . $pagesize;
 
+    my $uid_map = {};
+    if ( $isanon eq "yes" ) {
+        if ( $self->{_uids} ) {
+            $uid_map = $self->{_uids};
+        } else {
+            # get user list
+            my $uids = $self->poll->journal->selectcol_arrayref(
+                "SELECT userid from pollsubmission2 WHERE pollid=? AND 
journalid=?",
+                undef, $self->pollid, $jid
+            );
+            my $i = 0;
+            $uid_map = { map { $_ => ++$i } @{$uids || [] } };
+            $self->{_uids} = $uid_map;
+        }
+    }
+
     # Get data
     my $sth = $self->poll->journal->prepare(
             "SELECT pr.value, ps.datesubmit, pr.userid " .
@@ -266,7 +282,6 @@ sub answers_as_html {
     push @res, $_ while $_ = $sth->fetchrow_hashref;
     @res = sort { $a->{datesubmit} cmp $b->{datesubmit} } @res;
     
-    my $user_i = 0;    #incrementer for user anonymous ids
     foreach my $res (@res) {
         my ($userid, $value) = ($res->{userid}, $res->{value}, 
$res->{pollqid});
         my @items = $self->items;
@@ -284,7 +299,7 @@ sub answers_as_html {
         }
 
         LJ::Poll->clean_poll(\$value);
-        my $user_display = $isanon eq "yes" ? "User <b>#" . ++$user_i . "</b>" 
: $u->ljuser_display;
+        my $user_display = $isanon eq "yes" ? "User <b>#" . 
$uid_map->{$userid} . "</b>" : $u->ljuser_display;
 
         $ret .= "<div>" . $user_display . " -- $value</div>\n";
     }
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to