def get_meeting_number(manager): all_rooms = Room.get_by_company(manager.company) if all_rooms is None: return meetings = [] for room in all_rooms: occupancy = int(room.get_occupancy(datetime.now(), room._id)) meetings.append(occupancy) return functools.reduce(lambda a, b: a + b, meetings)
def get_all_rooms_occupancy(manager): all_rooms = Room.get_by_company(manager.company) if all_rooms is None: return occupancies = [] for room in all_rooms: occupancy = room.get_occupancy(datetime.now(), room._id) occupancies.append( (room._id, (int(occupancy) * 100) / int(room.capacity))) return occupancies
def test_rooms(): Database.initialize() Database.remove('rooms', {}) status, room_id = Room.add_room(2, 30, 1, 3, 'YAHOO', 'matam', True) assert status is True status, room_id = Room.add_room(2, 30, 3, 4, 'YAHOO', 'matam', False) assert status is True assert Room.remove_room(room_id) is True status, room_id = Room.add_room(2, 30, 3, 4, 'YAHOO', 'matam', True) assert status is True assert Room.get_by_id(room_id).company == 'YAHOO' assert len(Room.get_by_company('YAHOO')) > 0 assert len(Room.get_by_facility('YAHOO', 'matam')) > 0 assert len(Room.get_by_capacity(5, 'YAHOO', 'matam', 2)) > 0 assert len(Room.get_by_capacity(50, 'YAHOO', 'matam', 2)) == 0 assert len(Room.get_by_capacity(20, 'YAHOO', 'matam', 3)) > 0 assert len(Room.get_by_capacity(20, 'YAHOO', 'matam', 1)) == 0
def route_analytics(): manager = Manager.get_by_email(session['email']) if session['email'] is not None and manager is not None: employees_no = len(manager.get_employees()) facility_no = len(manager.get_facilities()) facility_visits_meetings = [] facilities = manager.get_facilities() for facility in facilities: visits = Analytics.get_all_participants_in_facility( manager, facility) meetings = Analytics.get_meetings_number_in_facility( manager, facility) facility_visits_meetings.append((facility, visits, meetings)) rooms_no = len(Room.get_by_company(manager.company)) occupancies = Analytics.get_all_rooms_occupancy(manager) meetings_no = Analytics.get_meeting_number(manager) return render_template( 'Analytics.html', employees_no=employees_no, rooms_no=rooms_no, facility_no=facility_no, meetings_no=meetings_no, facility_visits_meetings=facility_visits_meetings, occupancies=occupancies)
def get_rooms(self): return Room.get_by_company(self.company)