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", }
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(), }
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 = [] oursummary = self.get_summary() # fetch the whole vote (don't restrict by my_reps in the hope of # making use of the db query cache) all_votes = { vv.person: vv.option for vv in self.voters.select_related('person', 'option') } 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 [] } }
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 = [] try: oursummary = self.oursummary except VoteSummary.DoesNotExist: oursummary = None 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|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|safe}}{% endif %} """, "context": { "summary": self.summary(), "oursummary": oursummary, "voters": [ { "url": p.get_absolute_url(), "name": p.name_lastonly(), "vote": self.voters.get(person=p).option.value } for p in my_reps if self.voters.filter(person=p).exists() ] if feeds != None else [] } }
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 = [] try: oursummary = self.oursummary except VoteSummary.DoesNotExist: oursummary = None 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|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|safe}}{% endif %} """, "context": { "summary": self.summary(), "oursummary": oursummary, "voters": [{ "url": p.get_absolute_url(), "name": p.name_lastonly(), "vote": self.voters.get(person=p).option.value } for p in my_reps if self.voters.filter( person=p).exists()] if feeds != None else [] } }