Esempio n. 1
0
def studentform():
    gr = Group.gr_select()
    arg_id = request.args.get('id')
    if arg_id is not None:
        stud = Student.get_by_id(arg_id)
        form = StudentForm(request.form or None, obj=stud)
        form.group.choices = gr
        form.group.data = stud.group.id
    else:
        form = StudentForm(request.form or None)
        form.group.choices = gr

    if request.method == 'POST' and form.validate():
        studinfo = get_stud_info(form)
        if arg_id is not None:
            req = update_stud(stud, studinfo)
        else:
            req = add_student(studinfo)
        flash(req)
        return redirect(url_for('students.get_students'))
    else:
        elsereq = render_template('studentform.html',
                                  form=form,
                                  title='Изменить студента')
        return elsereq
Esempio n. 2
0
def update_group(gr, name, stud_id):
    if name == gr.groupname and (
        (gr.starosta is None and stud_id == 0) or
        (gr.starosta is not None and stud_id == gr.starosta.id)):
        req = 'нечего изменять'
    else:
        if stud_id != 0:
            stud = Student.get_by_id(stud_id)
        else:
            stud = None

        str_star = ''
        if stud is not None:
            if stud.group != gr:
                str_star = (f' студент {str(stud)} не задан старостой \
                т.к. находится в другой группе')
                stud = None
                if name == '':
                    return (f'нечего изменять, {str_star}')
        else:
            str_star = f' староста по id {stud_id} не найден'
        oldname = str(gr)
        if name != '':
            gr.groupname = name
        if stud != None:
            gr.starosta = stud
        gr.save()
        req = ((f'Группа {oldname} успешно обновлена') +
               (f'{str_star}' if str_star != '' else ''))

    return req