Esempio n. 1
0
def create_event():
    """ Event create view """
    form = CreateEventForm(request.form)
    if request.method == 'POST' and form.validate():
        try:
            format_string = '%Y-%m-%dT%H:%M'
            name = str(request.form['name'])
            year = int(request.form['year'])
            semester = Semester(int(request.form['semester']))
            specialslot = int(request.form['special_slots'])
            specialslotname = str(request.form['special_slots_name'])
            specialslotdescription = str(
                request.form['special_slots_description'])
            timestamp = datetime.now()
            opensignuptimestamp = datetime.strptime(
                str(request.form['open_signup_timestamp']), format_string)
            closesignuptimestamp = datetime.strptime(
                str(request.form['close_signup_timestamp']), format_string)
            place = str(request.form['place'])
            participationfee = str(request.form['participation_fee'])
            signup_open = False
            active = False

        except Exception as e:
            print(e)
            return render_template('error.html',
                                   message=str(
                                       request.form['opensignuptimestamp']))

        try:
            event = Events(name=name,
                           year=year,
                           special_slots=specialslot,
                           special_slots_name=specialslotname,
                           special_slots_description=specialslotdescription,
                           place=place,
                           semester=semester,
                           creation_timestamp=timestamp,
                           signup_open=signup_open,
                           active=active,
                           participation_fee=participationfee,
                           open_signup_timestamp=opensignuptimestamp,
                           close_signup_timestamp=closesignuptimestamp)
            db.session.add(event)
            db.session.commit()
        except Exception as e:
            print(e)
            return render_template('error.html')
        return redirect(url_for('admin'))
    return render_template('create_event.html', form=form)
Esempio n. 2
0
def updatetable():

    semester_obj = Semester.query.filter_by(semester_no=request.form['semester']).first() 
    if semester_obj:
        subject = Subject(subjectname=request.form['subject'], teachername=request.form['teacher'], day=request.form['day'],
                room=request.form['room'], timing=request.form['timing'], semester_name=semester_obj)
        db.session.add(subject)
        db.session.commit()
    else:
        semester_obj = Semester(semester_no=request.form['semester']) 
        subject = Subject(subjectname=request.form['subject'], teachername=request.form['teacher'], day=request.form['day'],
                room=request.form['room'], timing=request.form['timing'], semester_name=semester_obj)
        db.session.add(subject)
        db.session.commit()
    return ""
Esempio n. 3
0
def semester_create():
    form = SemesterFormCreate()
    if form.validate_on_submit():
        semester = Semester(
            name=form.name.data, 
            display_name=form.display_name.data, 
            semester=form.semester.data,
            # is_closed=form.is_closed.data,
            annual_id=form.annual_id.data
            # latest_update
        )
        db.session.add(semester)
        db.session.commit()
        flash('Created and Saved Successfully.', 'alert-success')
        return redirect(url_for('semester_view', id=semester.id))
    return render_template('basic-forms/semester/create.html', title='Semester Create', form=form)
Esempio n. 4
0
def add_semester(user_id):
    body = request.get_json()

    # find user
    real_user = db.session.query(User).get(user_id)

    # see if user exists
    if real_user: # user found, create new semester
        newSemester = Semester(
            userID = user_id,
            semesterName = body['semester_name']
        )
        db.session.add(newSemester)
        db.session.commit()
        return jsonify()

    # user not found
    return jsonify(msg = "user not found"), HTTPStatus.BAD_REQUEST
Esempio n. 5
0
def edit_event(event_id):
    """ Admin edit event, allows to do changes
        on an already created event """
    event = Events.query.get_or_404(event_id)
    form = CreateEventForm(request.form, obj=event)
    form.special_slots.data = str(int(event.special_slots))
    form.semester.data = str(event.semester.value)
    if request.method == 'POST' and form.validate():
        try:
            form.populate_obj(event)
            semester = Semester(int(request.form['semester']))
            event.special_slots = int(request.form['special_slots'])
            event.semester = semester
            db.session.commit()
        except Exception as e:
            print('Exception of type {} occurred: {}'.format(type(e), str(e)))
            return render_template('error.html')
        return redirect(request.referrer)
    return render_template('edit_event.html', form=form, event=event)
Esempio n. 6
0
def duplicate_semester(semester):
    # new_name = semester.name + ' - ' + datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'), 
    new_name = semester.name
    # remove (***) from name

    new_semester = Semester(
        name = new_name, 
        display_name = semester.display_name,
        semester = semester.semester,
        latest_update = datetime.utcnow(),
        annual_id = semester.annual_id
    )
    db.session.add(new_semester)
    db.session.commit()

    # add children
    msg_units = ''
    for unit in semester.units:
        msg_units = msg_units +  duplicate_unit(unit, new_semester) + ' - '

    msg = ' S: ' + str(new_semester.id) + ' (' + msg_units + ' ) '
    return [new_semester, msg]
Esempio n. 7
0
def save_semester_by_kurs(kurs_name):
    jwt_claims = get_jwt_claims()
    if jwt_claims['role'] != 'admin':
        return jsonify({"msg": "Permission denied"}), 403

    kurs = Kurs.query.filter_by(name=kurs_name).first()
    if kurs is None:
        return jsonify({"msg":
                        'The kurs ' + kurs_name + ' does not exist'}), 404

    if len(kurs.semester) > 6:
        return jsonify({
            "msg":
            'The kurs ' + kurs_name +
            ' has reached the maximum amount of semester (6)'
        }), 404

    for obj in request.json.get("semesters", []):
        semesterID = obj.get("semesterID", None)
        start = obj.get("start")
        start = date.fromtimestamp(start)
        ende = obj.get("ende")
        ende = date.fromtimestamp(ende)
        id = obj.get("id", None)
        existingSemester = Semester.query.filter(
            and_(Semester.semesterID == semesterID,
                 Semester.kurs_name == kurs.name)).first()
        if existingSemester is not None and existingSemester.id != id:
            return jsonify({
                "msg":
                'A Semester with the given semesterID already exists for the given kurs'
            }), 400

        # If id is given update already existing row in database otherwise its a new semester
        if id is not None:
            semester = Semester.query.filter(Semester.id == id)
            if semester is None:
                return jsonify(
                    {"msg":
                     'Semester with id ' + id + ' does not exist yet'}), 400
            semester.update({
                "semesterID": semesterID,
                "kurs_name": kurs_name,
                "start": start,
                "ende": ende
            })
        else:
            semester = Semester(semesterID=semesterID,
                                kurs_name=kurs_name,
                                start=start,
                                ende=ende)
            db.session.add(semester)

    db.session.commit()

    semesters_out = []
    semesters = Semester.query.filter(Semester.kurs_name == kurs.name).all()
    for semester in semesters:
        semesters_out.append(semester.to_public())

    return jsonify({"msg": "Semesters saved", "semesters": semesters_out}), 201