Пример #1
0
    def get_full_day_meetings(self):
        """ Retrieve all the full day meetings for this week. """
        if self.calendar:
            self.full_day_meetings = Meeting.get_by_date(
                self.session, self.calendar, self.start_date,
                self.stop_date, full_day=True)

            meetings = Meeting.get_active_regular_meeting(
                self.session, self.calendar,
                self.start_date, self.stop_date, full_day=True)
        else:
            self.full_day_meetings = Meeting.get_by_date_at_location(
                self.session, self.location, self.start_date,
                self.stop_date, full_day=True)

            meetings = Meeting.get_active_regular_meeting_at_location(
                self.session, self.location,
                self.start_date, self.stop_date, full_day=True)

        for meeting in meetings:
            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.full_day_meetings:
                        self.full_day_meetings.append(meeting)
        # Expand the regular meetings so that they appear as meeting
        self.full_day_meetings = Meeting.expand_regular_meetings(
            self.full_day_meetings, end_date=self.stop_date,
            start_date=self.start_date)
        # Sort the meetings by date, time_start and name
        self.full_day_meetings.sort(key=operator.attrgetter(
            'meeting_date', 'meeting_time_start', 'meeting_name'))
Пример #2
0
    def get_full_day_meetings(self):
        """ Retrieve all the full day meetings for this week. """
        if self.calendar:
            self.full_day_meetings = Meeting.get_by_date(self.session,
                                                         self.calendar,
                                                         self.start_date,
                                                         self.stop_date,
                                                         full_day=True)

            meetings = Meeting.get_active_regular_meeting(self.session,
                                                          self.calendar,
                                                          self.start_date,
                                                          self.stop_date,
                                                          full_day=True)
        else:
            self.full_day_meetings = Meeting.get_by_date_at_location(
                self.session,
                self.location,
                self.start_date,
                self.stop_date,
                full_day=True)

            meetings = Meeting.get_active_regular_meeting_at_location(
                self.session,
                self.location,
                self.start_date,
                self.stop_date,
                full_day=True)

        for meeting in meetings:
            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.full_day_meetings:
                        self.full_day_meetings.append(meeting)
        # Expand the regular meetings so that they appear as meeting
        self.full_day_meetings = Meeting.expand_regular_meetings(
            self.full_day_meetings,
            end_date=self.stop_date,
            start_date=self.start_date)
        # Sort the meetings by date, time_start and name
        self.full_day_meetings.sort(key=operator.attrgetter(
            'meeting_date', 'meeting_time_start', 'meeting_name'))
Пример #3
0
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, meeting.meeting_timezone, tzone))
    meetings.sort(key=operator.attrgetter('meeting_date'))
    return meetings