Ejemplo n.º 1
0
def saveEditStudent(course_id, student_id):
    """process edit student form"""
    form = StudentForm(request.form)
    student = {}
    if request.method == 'POST' and form.validate():
        student["first_name"] = request.form['first_name']
        student["last_name"] = request.form['last_name']
        student["year"] = request.form['year']
        student["email"] = request.form['email']
        student["telephone"] = request.form['telephone']
        db_conn = db_pool.getconn()
        cursor = db_conn.cursor()
        cursor.execute(
            f"UPDATE student SET first_name = %s, "
            f"last_name = %s, year = %s, email = %s, "
            f"telephone = %s WHERE student_id = %s;",
            (student['first_name'],
             student['last_name'],
             student['year'],
             student['email'],
             student['telephone'],
             student_id))

        db_conn.commit()
        cursor.close()
        db_pool.putconn(db_conn)

    return redirect(
        url_for(
            'student',
            student_id=student_id,
            course_id=course_id))
Ejemplo n.º 2
0
def student(group_id):
    """Страничка для отображения студента из группы"""
    if group_id == 'new':
        new_student = Student()
    else:
        try:
            group_id = int(group_id)
        except ValueError:
            return 'Bad Request', 400
        new_student = DB.session.query(Student).filter(
            Student.id == group_id).one_or_none()
        if new_student is None:
            return 'Not Found', 404

    form = StudentForm(request.form, obj=new_student)

    if form.button_delete.data:
        form.validate()
        if DB.session.query(AttMark) \
                .filter(AttMark.student_id == new_student.id) \
                .count() > 0:
            form.button_delete.errors.append(
                'Невозможно удалить студента, у которого есть оценки за аттестации'
            )

        if len(form.button_delete.errors) == 0:
            DB.session.delete(new_student)
            DB.session.flush()
            return redirect(url_for('students'))

    if form.button_save.data and form.validate():
        form.populate_obj(new_student)
        if new_student.stud_group is not None:
            new_student.semester = new_student.stud_group.semester
            new_student.alumnus_year = None
            new_student.expelled_year = None
            form = StudentForm(obj=new_student)

        DB.session.add(new_student)
        if group_id == 'new':
            DB.session.flush()  # ???
        if new_student.id != group_id:
            return redirect(url_for('student', id=new_student.id))

    return render_template('public/student.html',
                           student=new_student,
                           form=form)
Ejemplo n.º 3
0
def add_student():
    form = StudentForm()
    if request.method == 'POST' and form.validate():
        student = Students(form.firstname.data.title(), form.lastname.data.title(),
                           form.gender.data, form.id_number.data, form.course.data)
        if student.exist() is False:
            student.add()
            flash("Student Added Successfully with ID number '{}'".format(
                form.id_number.data), category='success')
            return redirect(url_for('students'))
        else:
            flash("Student Already Exist!", category='danger')
            return redirect(url_for('add_student'))
    else:
        return render_template('add_student.html', form=form)
Ejemplo n.º 4
0
def edit_student(student_id):
    form = StudentForm()
    db = Students(idNum=student_id)
    student = db.search('idNum', student_id)
    if request.method == 'POST' and form.validate():
        newId = Students(idNum=form.id_number.data)
        if(newId.exist() and student_id != form.id_number.data):
            flash('ID number already taken please choose another ID NUMBER',
                  category='danger')
            return redirect(url_for('edit_student', student_id=db.idNum))
        else:
            db.update(form.firstname.data, form.lastname.data,
                      form.gender.data, form.id_number.data, form.course.data)
            flash('Successfully Edited Student', category='success')
            return redirect(url_for('students'))
    else:
        for attribute in student:
            form.firstname.data = attribute[0]
            form.lastname.data = attribute[1]
            form.gender.data = attribute[2]
            form.id_number.data = attribute[3]
            form.course.data = attribute[4]
        return render_template('edit_student.html', form=form)