Beispiel #1
0
 def activities_summary(self):
     activities = self.activities_list()
     if not activities:
         return None
     if activities[0].study:
         # We have studies, so get rid of the more boring activities
         activities = filter(lambda a: a.study, activities)
     return english_list(map(lambda a: a.name_en, activities))
Beispiel #2
0
 def activities_summary(self):
     activities = self.activities_list()
     if not activities:
         return None
     if activities[0].study:
         # We have studies, so get rid of the more boring activities
         activities = filter(lambda a: a.study, activities)
     return english_list(map(lambda a: a.name_en, activities))
Beispiel #3
0
 def activities_summary(self):
     activities = self.activities_list()
     if not activities:
         return None
     if activities[0].study:
         # We have studies, so get rid of the more boring activities
         activities = [a for a in activities if a.study]
     return english_list([a.name_en for a in activities])
 def get_subject_line(self, documents):
     if self.topic.politician_hansard_alert:
         topics = set((d['topic'] for d in documents))
         subj = u'%(politician)s spoke about %(topics)s in the House' % {
             'politician': documents[0]['politician'],
             'topics': english_list(list(topics))
         }
     else:
         subj = u'New from openparliament.ca for %s' % self.topic.query
     return subj[:200]
Beispiel #5
0
 def get_subject_line(self, documents):
     if self.topic.politician_hansard_alert:
         topics = set((d['topic'] for d in documents))
         subj = u'%(politician)s spoke about %(topics)s in the House' % {
             'politician': documents[0]['politician'],
             'topics': english_list(list(topics))
         }
     else:
         subj = u'New from openparliament.ca for %s' % self.topic.query
     return subj[:200]
 def get_subject_line(self, documents):
     if self.topic.politician_hansard_alert:
         topics = set((d["topic"] for d in documents))
         subj = u"%(politician)s spoke about %(topics)s in the House" % {
             "politician": documents[0]["politician"],
             "topics": english_list(list(topics)),
         }
     else:
         subj = u"New from openparliament.ca for %s" % self.topic.query
     return subj[:200]
Beispiel #7
0
def alerts_for_hansard(hansard):
    alerts = PoliticianAlert.public.all()
    alert_set = set([alert.politician_id for alert in alerts])
    
    statements = defaultdict(list)
    topics = defaultdict(list)
    for statement in hansard.statement_set.filter(speaker=False):
        pol_id = statement.politician_id
        if pol_id in alert_set:
            statements[pol_id].append(statement)
            if statement.topic not in topics[pol_id]:
                topics[pol_id].append(statement.topic)
            
    for alert in alerts:
        pol_id = alert.politician_id
        if statements[pol_id]:
            pol = alert.politician
            c = Context({
                'alert': alert,
                'statements': statements[pol_id],
                'topics': topics[pol_id]
            })
            t = loader.get_template("alerts/politician.txt")
            msg = t.render(c)
            subj = u'%(politician)s spoke about %(topics)s in the House' % {
                'politician': pol.name,
                'topics': english_list(topics[pol_id])
            }
            subj = subj[:200]
            try:
                send_mail(subject=subj,
                    message=msg,
                    from_email='*****@*****.**',
                    recipient_list=[alert.email])
            except Exception, e:
                # FIXME logging
                print "Error sending alert %s" % alert.id
                print e
Beispiel #8
0
def alerts_for_hansard(hansard):
    alerts = PoliticianAlert.public.all()
    alert_set = set([alert.politician_id for alert in alerts])
    
    statements = defaultdict(list)
    topics = defaultdict(list)
    for statement in hansard.statement_set.filter(speaker=False):
        pol_id = statement.politician_id
        if pol_id in alert_set:
            statements[pol_id].append(statement)
            if statement.topic not in topics[pol_id]:
                topics[pol_id].append(statement.topic)
            
    for alert in alerts:
        pol_id = alert.politician_id
        if statements[pol_id]:
            pol = alert.politician
            c = Context({
                'alert': alert,
                'statements': statements[pol_id],
                'topics': topics[pol_id]
            })
            t = loader.get_template("alerts/politician.txt")
            msg = t.render(c)
            subj = u'%(politician)s spoke about %(topics)s in the House' % {
                'politician': pol.name,
                'topics': english_list(topics[pol_id])
            }
            subj = subj[:200]
            try:
                send_mail(subject=subj,
                    message=msg,
                    from_email='*****@*****.**',
                    recipient_list=[alert.email])
            except Exception, e:
                # FIXME logging
                print "Error sending alert %s" % alert.id
                print e