Exemple #1
0
def add_group():
    if current_user.type == 3:
        abort(403)
    session = db_session.create_session()
    form = FormAddGroup()
    if form.validate_on_submit():
        if current_user.type == 2 and form.leader_id.data != current_user.id:
            return render_template('form_add_group.html', form=form, message=f"Как учитель, вы можете создать факультатив только под своим руководством, ваш id - { current_user.id }")
        user = session.query(User).get(form.leader_id.data)
        if not user:
            return render_template('form_add_group.html', form=form, message=f"Человека с id { form.leader_id.data } нет в системе")
        if user.type == 3:
            return render_template('form_add_group.html', form=form, message="Нельзя поставить в руководство ученика")
        group = Group(
            name=form.name.data,
            leader_id=form.leader_id.data,
            info=form.info.data,
            users_num=1
        )
        group.users.append(session.query(User).get(form.leader_id.data))
        session.add(group)
        session.commit()
        if form.photo.data:
            delete_file_if_exists(file=group.photo, session=session)
            group.photo = save_file(data=form.photo.data, path=f'static/downloads/group_{group.id}', group_id=group.id)
            session.commit()
        return redirect(f'/group/{ group.id }')
    else:
        form.leader_id.data = current_user.id
        form.name.data = f"{current_user.surname}: Факультатив №{ len(current_user.groups) + 1 }"
        return render_template('form_add_group.html', form=form)
Exemple #2
0
def registration():
    form = FormAddUser()
    if form.validate_on_submit():
        user = User(name=form.name.data,
                    surname=form.surname.data,
                    email=form.email.data,
                    age=form.age.data,
                    type=form.type.data)
        user.set_password(form.password.data)
        session = db_session.create_session()
        session.add(user)
        session.commit()
        if form.photo.data:
            delete_file_if_exists(file=user.photo, session=session)
            user.photo = save_file(data=form.photo.data,
                                   path=f'static/downloads/user_{user.id}',
                                   user_id=user.id)
            session.commit()
        login_user(user)
        return redirect(f'/user/{user.id}')
    else:
        return render_template('form_add_user.html', form=form)
Exemple #3
0
def edit_task(task_id):
    session = db_session.create_session()
    task = session.query(Task).get(task_id)
    if not task:
        abort(404)
    elif task.group.leader_id != current_user.id:
        abort(403)
    form = FormAddTask()
    if form.validate_on_submit():
        task.name = form.name.data
        task.content = form.content.data
        if form.file.data:
            delete_file_if_exists(file=task.file, session=session)
            task.file = save_file(
                data=form.file.data,
                path=f'static/downloads/group_{task.group.id}')
        session.commit()
        return redirect(f'/group/{task.group.id}')
    else:
        form.name.data = task.name
        form.content.data = task.content
        return render_template('form_edit_task.html', form=form, task=task)
Exemple #4
0
def edit_group(group_id):
    if current_user.type == 3:
        abort(403)
    session = db_session.create_session()
    group = session.query(Group).get(group_id)
    if not group:
        abort(404)
    elif group.leader_id != current_user.id:
        abort(403)
    form = FormEditGroup()
    if form.validate_on_submit():
        group.name = form.name.data
        group.info = form.info.data
        if form.photo.data:
            delete_file_if_exists(file=group.photo, session=session)
            group.photo = save_file(data=form.photo.data, path=f'static/downloads/group_{group.id}', group_id=group.id)
        session.commit()
        return redirect(f'/group/{group_id}')
    else:
        form.name.data = group.name
        form.info.data = group.info
        return render_template('form_edit_group.html', form=form)
Exemple #5
0
def edit_user(user_id):
    if user_id != current_user.id:
        abort(403)
    form = FormEditUser()
    session = db_session.create_session()
    user = session.query(User).get(user_id)
    if form.validate_on_submit():
        user.name = form.name.data
        user.surname = form.surname.data
        user.age = form.age.data
        user.email = form.email.data
        if form.photo.data:
            delete_file_if_exists(file=user.photo, session=session)
            user.photo = save_file(data=form.photo.data,
                                   path=f'static/downloads/user_{user_id}')
        session.commit()
        return redirect(f'/user/{user_id}')
    else:
        form.name.data = user.name
        form.surname.data = user.surname
        form.age.data = user.age
        form.email.data = user.email
        return render_template('form_edit_user.html', form=form)
Exemple #6
0
def add_task(group_id):
    session = db_session.create_session()
    group = session.query(Group).get(group_id)
    if not group:
        abort(404)
    elif group.leader_id != current_user.id:
        abort(403)
    form = FormAddTask()
    if form.validate_on_submit():
        task = Task(name=form.name.data, content=form.content.data)
        group.tasks.append(task)
        session.add(task)
        session.commit()
        if form.file.data:
            delete_file_if_exists(file=task.file, session=session)
            task.file = save_file(data=form.file.data,
                                  path=f'static/downloads/group_{group.id}',
                                  task_id=task.id)
            session.commit()
        return redirect(f'/group/{group_id}')
    else:
        form.name.data = f"Задание №{ len(group.tasks) + 1 }"
        return render_template('form_add_task.html', form=form, group=group)