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)
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 ""
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)
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
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)
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]
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