def get_recent_activity(self, limit=None, limit_each=None): recent_transcripts_query = ( self.mandate.transcripts .order_by(Transcript.serial.desc()) .options(joinedload('chapter')) ) if limit_each is not None: recent_transcripts_query = ( recent_transcripts_query .limit(limit_each) ) recent_transcripts = [ { 'date': t.chapter.date, 'text': filters.do_truncate(t.text, 200), 'type': 'speech', 'chapter_serial': t.chapter.serial, 'serial_id': t.serial_id, } for t in recent_transcripts_query ] recent_questions = _get_recent_questions(self.mandate, limit_each) recent_proposals = _get_recent_proposals(self.mandate, limit_each) rv = recent_transcripts + recent_questions + recent_proposals rv.sort(key=lambda r: r['date'], reverse=True) if limit is not None: rv = rv[:limit] return rv
def get_recent_proposals(self, limit): return _get_recent_proposals(None, limit)