Skip to content

Vote results updates not filtered by trackers in list #266

@GPHemsley

Description

@GPHemsley

I have multiple tracker lists with different people tracked in each. However, when an e-mail update comes out, each vote record shows the votes for every person across all trackers. This leads to duplicated information and, in many cases (like the recent vote-a-rama), very long e-mails.

I think the code responsible is here:

def render_event(self, eventid, feeds):
if feeds:
from person.models import Person
my_reps = set()
for f in feeds:
try:
my_reps.add(Person.from_feed(f))
except ValueError:
pass # not a person-related feed
my_reps = sorted(my_reps, key = lambda p : p.sortname)
else:
my_reps = []
# fetch the whole vote and our summary, and keep it cached with this object
# because in email updates this object is held in memory for the duration of
# sending out all email updates
if not hasattr(self, "_cached_event_data"):
oursummary = self.get_summary()
all_votes = {
vv.person: vv.option
for vv in
self.voters.select_related('person', 'option')
}
self._cached_event_data = [oursummary, all_votes]
else:
oursummary, all_votes = self._cached_event_data
return {
"type": "Vote",
"date": self.created,
"title": self.question,
"url": self.get_absolute_url(),
"body_text_template":
"""{{summary|safe}}
{% for voter in voters %}{{voter.name|safe}}: {{voter.vote|safe}}
{% endfor %}
{% if oursummary %}{{oursummary.plain_text|truncatewords:120|safe}}{% endif %}""",
"body_html_template":
"""<p>{{summary}}</p>
{% for voter in voters %}
<p><a href="{{SITE_ROOT}}{{voter.url}}">{{voter.name}}</a>: {{voter.vote}}</p>
{% endfor %}
{% if oursummary %}{{oursummary.as_html|truncatewords_html:120|safe}}{% endif %}
""",
"context": {
"summary": self.summary(),
"oursummary": oursummary,
"voters":
[
{ "url": p.get_absolute_url(), "name": p.name_lastonly(), "vote": all_votes[p].value }
for p in my_reps if p in all_votes
]
if feeds != None else []
},
"thumbnail_url": self.get_thumbnail_url(),
"large_thumbnail_url": self.get_absolute_url() + "/card",
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions