def get_past_meeting_of_user( session, username, tzone='UTC', from_date=date.today()): """ Return all past meeting which specified username is among the managers. :arg session: the database session to use :arg username: the FAS user name that you would like to have the past meetings for. :kwarg tzone: the time-zone to which to convert the meetings. Defaults to 'UTC'. :kwarg from_date: the date from which the futur meetings should be retrieved. Defaults to today """ meetings_tmp = Meeting.expand_regular_meetings( Meeting.get_past_meeting_of_user(session, username, from_date), end_date=from_date) meetings = [] for meeting in meetings_tmp: meetings.append(convert_meeting_timezone(meeting, 'UTC', tzone)) meetings.sort(key=operator.attrgetter('meeting_date')) return meetings
def get_meetings(self): """ Retrieves the list of this week's meeting from the database. """ self.meetings = Meeting.get_by_date( self.session, self.calendar, self.start_date, self.stop_date) for meeting in Meeting.get_active_regular_meeting( self.session, self.calendar, self.start_date, self.stop_date): for delta in range(0, 7): day = self.start_date + timedelta(days=delta) if ((meeting.meeting_date - day).days % meeting.recursion_frequency) == 0: if meeting not in self.meetings: self.meetings.append(meeting) # Expand the regular meetings so that they appear as meeting self.meetings = Meeting.expand_regular_meetings( self.meetings, end_date=self.stop_date, start_date=self.start_date) # Sort the meetings by date, time_start and name self.meetings.sort(key=operator.attrgetter( 'meeting_date', 'meeting_time_start', 'meeting_name'))