Пример #1
0
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
    })
Пример #2
0
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
                           })
Пример #3
0
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
    })
Пример #4
0
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()
Пример #5
0
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()
Пример #6
0
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})
Пример #7
0
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
                           })
Пример #8
0
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()
Пример #9
0
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
                           })