def Create(): """ Creates a new Campus """ # Authenticate user if not Authorization.canAccess(session.get('user'), ('building_admin')): return JsonResponse.unauthorized({ 'message': 'no_access', 'nice_message': 'You do not have access to this function. Contact system administrator.' }) name = request.form.get('campus_name') if not name: return JsonResponse.badRequest({ 'message': 'name_missing', 'nice_message': 'Missing Campus Name' }) campus = CampusModel() campus.setName(name) \ .save() return JsonResponse.ok()
def View(campus_id, building_id, room_id): """ Retrieve information for a given campus building room. """ # Verify user access if not Authorization.canAccess(session.get('user'), ('building_admin', 'fire_officer', 'scheduling_admin')): return render_template('error/no_access.html') # Get the campus object campus = CampusModel.findById(campus_id) if not campus: return render_template('error/resource_not_found.html') # Get the building object building = CampusBuildingModel.findById(building_id) if not building: return render_template('error/resource_not_found.html') # Get the room object room = CampusBuildingRoomModel.findById(room_id) if not room: return render_template('error/resource_not_found.html') return render_template('room_view.html', data = { 'campus': campus, 'building': building, 'room': room })
def List(campus_id, building_id): """ Lists all rooms for a given campus building. """ # Verify user access if not Authorization.canAccess(session.get('user'), ('building_admin', 'fire_officer', 'scheduling_admin')): return render_template('error/no_access.html') # Get the campus object campus = CampusModel.findById(campus_id) if not campus: return render_template('error/resource_not_found.html') # Get the building object building = CampusBuildingModel.findById(building_id) if not building: return render_template('error/resource_not_found.html') # Get all rooms rooms = CampusBuildingRoomModel.findBy('building', building_id) return render_template('room_list.html', data = { 'campus': campus, 'building': building, 'rooms': rooms })
def View(campus_id, building_id): """ Get building information """ # Verify user access if not Authorization.canAccess( session.get('user'), ('building_admin', 'fire_officer', 'scheduling_admin')): return render_template('error/no_access.html') # Get campus object campus = CampusModel.findById(campus_id) if not campus: return render_template('error/resource_not_found.html') # Get building object building = CampusBuildingModel.findById(building_id) if not building: return render_template('error/resource_not_found.html') return render_template('building_view.html', data={ 'campus': campus, 'building': building })
def Create(campus_id): """ Creates new campus building """ # Verify user access if not Authorization.canAccess(session.get('user'), ('building_admin', )): return JsonResponse.unauthorized() # Ensure campus exists campus = CampusModel.findById(campus_id) if not campus: return JsonResponse.notFound() # Parse and validate request body name = request.form.get('building_name') floorCount = request.form.get('floor_count') if not name or not floorCount: return JsonResponse.badRequest() # Save new data to database building = CampusBuildingModel() building.setName(name) \ .setFloorCount(floorCount) \ .setCampus(campus_id) \ .save() return JsonResponse.ok()
def Update(id): """ Updates information for a Campus """ if not Authorization.canAccess(session.get('user'), ('building_admin')): return JsonResponse.unauthorized({ 'message': 'no_access', 'nice_message': 'You do not have access to this function. Contact system administrator.' }) name = request.form.get('campus_name') if not name: return JsonResponse.badRequest({ 'message': 'name_missing', 'nice_message': 'Missing campus name.' }) campus = CampusModel.findById(id) if not campus: return JsonResponse.notFound({ 'message': 'not_found', 'nice_message': 'Campus could not be found.' }) campus.setName(name) \ .save() return JsonResponse.ok()
def List(): """ Lists all campuses using campus_list.html """ # Authenticate user if not Authorization.canAccess( session.get('user'), ('building_admin', 'fire_officer', 'scheduling_admin')): return render_template('error/no_access.html') # Get list of campuses campuses = CampusModel.all() return render_template('campus_list.html', data={'campuses': campuses})
def View(id): """ Gets campus information and displays it using campus_view.html """ # Authenticate user if not Authorization.canAccess( session.get('user'), ('building_admin', 'fire_officer', 'scheduling_admin')): return render_template('error/no_access.html') campus = CampusModel.findById(id) if not campus: return render_template('error/resource_not_found.html') return render_template('campus_view.html', data={'campus': campus})
def List(campus_id): """ List all buildings given the campus """ # Verify user access if not Authorization.canAccess( session.get('user'), ('building_admin', 'fire_officer', 'scheduling_admin')): return render_template('error/no_access.html') # Get campus object campus = CampusModel.findById(campus_id) if not campus: return render_template('error/resource_not_found.html') # Get list of campus buildings buildings = CampusBuildingModel.findBy('campus', campus_id) return render_template('building_list.html', data={ 'campus': campus, 'buildings': buildings })
def Delete(id): """ Deletes a Campus """ if not Authorization.canAccess(session.get('user'), ('building_admin')): return JsonResponse.unauthorized({ 'message': 'no_access', 'nice_message': 'You do not have access to this function. Contact system administrator.' }) campus = CampusModel.findById(id) if not campus: return JsonResponse.notFound({ 'message': 'not_found', 'nice_message': 'Campus could not be found.' }) campus.delete() return JsonResponse.ok()
def View(module_id, session_id): """ Returns module session information. """ # Verify user access if not Authorization.canAccess(session.get('user'), ('scheduling_admin')): return render_template('error/no_access.html') # Get module object module = ModuleModel.findById(module_id) if not module: return render_template('error/resource_not_found.html') # Get session object theSession = ModuleSessionModel.findById(session_id) if not theSession: return render_template('error/resource_not_found.html') # Get the campus objects campus_list = CampusModel.all() campuses = [] for campus in campus_list: buildings = CampusBuildingModel.findBy('campus', campus.getId()) if (len(buildings) > 0): campuses.append({'campus': campus, 'buildings': buildings}) theSession = { 'session': theSession, 'staff': TeacherModel.findById(theSession.getStaff()), 'type': ModuleSessionTypeModel.findById(theSession.getType()), 'campuses': CampusModel.all() } # Get list of teachers teachers = TeacherModel.all() # Get list of session types session_types = ModuleSessionTypeModel.all() # Get terms terms = TermModel.all() term_list = [] for term in terms: term_list.append({ 'term': term, 'startDate': datetime.utcfromtimestamp(term.getStartDate()).strftime("%B %Y"), 'endDate': datetime.utcfromtimestamp(term.getEndDate()).strftime("%B %Y") }) # Get list of room bookings room_bookings = RoomBookingModel.findBy('module_session', session_id) room_bookings2 = [] for booking in room_bookings: room = CampusBuildingRoomModel.findById(booking.getRoom()) building = CampusBuildingModel.findById(room.getBuilding()) campus = CampusModel.findById(building.getCampus()) timeFrom = datetime.utcfromtimestamp( booking.getTimeFrom()).strftime("%Y-%m-%d %H:%M") timeTo = datetime.utcfromtimestamp( booking.getTimeTo()).strftime("%Y-%m-%d %H:%M") room_bookings2.append({ 'booking': booking, 'room': room, 'building': building, 'campus': campus, 'timeFrom': timeFrom, 'timeTo': timeTo }) return render_template('session_view.html', data={ 'module': module, 'session': theSession, 'teachers': teachers, 'sessionTypes': session_types, 'roomBookings': room_bookings2, 'campuses': campuses, 'terms': term_list })