def get_most_used_room_week(self, query, week_start, week_end): # noqa: E501 """ Get analytics for most used room per week :params - calendar_id - week_start, week_end(Time range) """ week_start = CommonAnalytics.convert_date(self, week_start) week_end = CommonAnalytics.convert_date(self, week_end) rooms_available = CommonAnalytics.get_calendar_id_name(self, query) res = [] number_of_most_events = 0 for room in rooms_available: calendar_events = CommonAnalytics.get_all_events_in_a_room( self, room['calendar_id'], week_start, week_end) output = [] if not calendar_events: output.append({'RoomName': room['name'], 'has_events': False}) number_of_most_events = 0 else: for event in calendar_events: event_details = CommonAnalytics.get_event_details( self, event, room['calendar_id']) output.append(event_details) if len(output) > number_of_most_events: number_of_most_events = len(output) res.append(output) analytics = CommonAnalytics.get_room_statistics( self, number_of_most_events, res) return analytics
def get_most_used_rooms_analytics(self, query, start_date, end_date): # noqa: E501 """ Get analytics for most used room :params - query - start_date, end_date(Time range) """ events_in_rooms, number_of_meetings = RoomAnalytics.get_events_number_meetings_room_analytics( # noqa: E501 self, query, start_date, end_date) analytics = CommonAnalytics.get_room_statistics( self, max(number_of_meetings), events_in_rooms) return analytics
def get_most_used_room_per_month(self, query, month, year): """ Get analytics for the MOST used room(s) per morth in a location :params - month, year """ get_monthly_events = RoomAnalytics.get_monthly_rooms_events( self, query, month, year) rooms_with_max_events = max(get_monthly_events['room_events_count']) res = get_monthly_events['events_in_all_rooms'] analytics = CommonAnalytics.get_room_statistics( self, rooms_with_max_events, res) return analytics
def get_least_used_rooms(self, rooms_available, time_start, time_end): res = [] number_of_least_events = float('inf') for room in rooms_available: calendar_events = CommonAnalytics.get_all_events_in_a_room( self, room['calendar_id'], time_start, time_end) output = [] if not calendar_events: output.append({'RoomName': room['name'], 'has_events': False}) number_of_least_events = 0 for event in calendar_events: if event.get('attendees'): event_details = CommonAnalytics.get_event_details( self, event, room['calendar_id']) # noqa: E501 output.append(event_details) if len(output) < number_of_least_events: number_of_least_events = len(output) res.append(output) analytics = CommonAnalytics.get_room_statistics( self, number_of_least_events, res) return analytics