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
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