|
@@ -64,6 +64,8 @@ def base():
|
|
|
|
|
|
|
|
@app.route('/admin', methods=['GET', 'POST'])
|
|
@app.route('/admin', methods=['GET', 'POST'])
|
|
|
def admin():
|
|
def admin():
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
if current_user.is_authenticated:
|
|
if current_user.is_authenticated:
|
|
|
if current_user.role == 1:
|
|
if current_user.role == 1:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
@@ -94,7 +96,9 @@ def admin():
|
|
|
|
|
|
|
|
@app.route('/template/<int:id_template>/create')
|
|
@app.route('/template/<int:id_template>/create')
|
|
|
def create_by_template(id_template):
|
|
def create_by_template(id_template):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
current_template = data_session.query(Projects).filter(Projects.id == id_template).first()
|
|
current_template = data_session.query(Projects).filter(Projects.id == id_template).first()
|
|
|
if current_template:
|
|
if current_template:
|
|
@@ -120,7 +124,9 @@ def create_by_template(id_template):
|
|
|
|
|
|
|
|
@app.route('/template/<int:id_template>')
|
|
@app.route('/template/<int:id_template>')
|
|
|
def template_project(id_template):
|
|
def template_project(id_template):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_template).first()
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_template).first()
|
|
|
if current_project:
|
|
if current_project:
|
|
@@ -136,7 +142,9 @@ def template_project(id_template):
|
|
|
|
|
|
|
|
@app.route('/showcase/link/<int:id_link>/delete')
|
|
@app.route('/showcase/link/<int:id_link>/delete')
|
|
|
def delete_link(id_link):
|
|
def delete_link(id_link):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
if current_user.role in [1, 4]:
|
|
if current_user.role in [1, 4]:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
link = data_session.query(ShowCaseLink).filter(ShowCaseLink.id == id_link).first()
|
|
link = data_session.query(ShowCaseLink).filter(ShowCaseLink.id == id_link).first()
|
|
@@ -153,7 +161,9 @@ def delete_link(id_link):
|
|
|
|
|
|
|
|
@app.route('/showcase', methods=['GET', 'POST'])
|
|
@app.route('/showcase', methods=['GET', 'POST'])
|
|
|
def showcase():
|
|
def showcase():
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
form = AddLink() if current_user.role in [1, 4] else None
|
|
form = AddLink() if current_user.role in [1, 4] else None
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
if request.method == 'POST' and current_user.role in [1, 4]:
|
|
if request.method == 'POST' and current_user.role in [1, 4]:
|
|
@@ -171,14 +181,16 @@ def showcase():
|
|
|
data_session.query(Projects).filter(Projects.is_template == 1).all()))
|
|
data_session.query(Projects).filter(Projects.is_template == 1).all()))
|
|
|
list_links = data_session.query(ShowCaseLink).all()
|
|
list_links = data_session.query(ShowCaseLink).all()
|
|
|
return render_template('showcase.html', title='Витрина', list_template=list_template, list_links=list_links,
|
|
return render_template('showcase.html', title='Витрина', list_template=list_template, list_links=list_links,
|
|
|
- form=form, type=type)
|
|
|
|
|
|
|
+ form=form)
|
|
|
else:
|
|
else:
|
|
|
return redirect('/login')
|
|
return redirect('/login')
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/project/<int:id_project>/quest/<int:id_task>/edit', methods=['GET', 'POST'])
|
|
@app.route('/project/<int:id_project>/quest/<int:id_task>/edit', methods=['GET', 'POST'])
|
|
|
def edit_quest(id_project, id_task):
|
|
def edit_quest(id_project, id_task):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
|
current_task = data_session.query(Quests).filter(Quests.id == id_task).first()
|
|
current_task = data_session.query(Quests).filter(Quests.id == id_task).first()
|
|
@@ -215,7 +227,9 @@ def edit_quest(id_project, id_task):
|
|
|
|
|
|
|
|
@app.route('/project/<int:id_project>/file/<int:id_file>/delete')
|
|
@app.route('/project/<int:id_project>/file/<int:id_file>/delete')
|
|
|
def delete_file(id_project, id_file):
|
|
def delete_file(id_project, id_file):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
from_path = request.args.get('from') if request.args.get('from') else ''
|
|
from_path = request.args.get('from') if request.args.get('from') else ''
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
@@ -246,7 +260,9 @@ def delete_file(id_project, id_file):
|
|
|
|
|
|
|
|
@app.route('/project/<int:id_project>/quest/<int:id_task>', methods=['GET', 'POST'])
|
|
@app.route('/project/<int:id_project>/quest/<int:id_task>', methods=['GET', 'POST'])
|
|
|
def task_project(id_project, id_task):
|
|
def task_project(id_project, id_task):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
|
current_task = data_session.query(Quests).filter(Quests.id == id_task).first()
|
|
current_task = data_session.query(Quests).filter(Quests.id == id_task).first()
|
|
@@ -314,7 +330,9 @@ def task_project(id_project, id_task):
|
|
|
|
|
|
|
|
@app.route('/project/<int:id_project>/quest/new', methods=['GET', 'POST'])
|
|
@app.route('/project/<int:id_project>/quest/new', methods=['GET', 'POST'])
|
|
|
def new_task_project(id_project):
|
|
def new_task_project(id_project):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
|
if current_project:
|
|
if current_project:
|
|
@@ -345,7 +363,9 @@ def new_task_project(id_project):
|
|
|
|
|
|
|
|
@app.route('/project/<int:id_project>/edit', methods=['GET', 'POST'])
|
|
@app.route('/project/<int:id_project>/edit', methods=['GET', 'POST'])
|
|
|
def edit_project(id_project):
|
|
def edit_project(id_project):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
|
if current_project:
|
|
if current_project:
|
|
@@ -382,6 +402,7 @@ def edit_project(id_project):
|
|
|
data_session.commit()
|
|
data_session.commit()
|
|
|
current_project.name = form.name.data
|
|
current_project.name = form.name.data
|
|
|
current_project.description = form.description.data
|
|
current_project.description = form.description.data
|
|
|
|
|
+ current_project.is_template = form.is_template.data
|
|
|
data_session.commit()
|
|
data_session.commit()
|
|
|
return redirect(f'/project/{current_project.id}')
|
|
return redirect(f'/project/{current_project.id}')
|
|
|
if form.del_photo.data:
|
|
if form.del_photo.data:
|
|
@@ -391,6 +412,7 @@ def edit_project(id_project):
|
|
|
return redirect(f'/project/{current_project.id}/edit')
|
|
return redirect(f'/project/{current_project.id}/edit')
|
|
|
form.name.data = current_project.name
|
|
form.name.data = current_project.name
|
|
|
form.description.data = current_project.description
|
|
form.description.data = current_project.description
|
|
|
|
|
+ form.is_template.data = current_project.is_template
|
|
|
return render_template('edit_project.html', title='Изменение проекта', form=form, list_users=list_users,
|
|
return render_template('edit_project.html', title='Изменение проекта', form=form, list_users=list_users,
|
|
|
staff=staff, project=current_project)
|
|
staff=staff, project=current_project)
|
|
|
else:
|
|
else:
|
|
@@ -403,7 +425,9 @@ def edit_project(id_project):
|
|
|
|
|
|
|
|
@app.route('/project/<int:id_project>', methods=['POST', 'GET'])
|
|
@app.route('/project/<int:id_project>', methods=['POST', 'GET'])
|
|
|
def project(id_project):
|
|
def project(id_project):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
current_project = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
|
if current_project:
|
|
if current_project:
|
|
@@ -486,7 +510,9 @@ def recovery():
|
|
|
|
|
|
|
|
@app.route('/project/<int:id_project>/delete', methods=['GET', 'POST'])
|
|
@app.route('/project/<int:id_project>/delete', methods=['GET', 'POST'])
|
|
|
def delete_project(id_project):
|
|
def delete_project(id_project):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
project_del = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
project_del = data_session.query(Projects).filter(Projects.id == id_project).first()
|
|
|
if project_del:
|
|
if project_del:
|
|
@@ -511,7 +537,9 @@ def delete_project(id_project):
|
|
|
|
|
|
|
|
@app.route('/user/<string:_login>', methods=['GET', 'POST'])
|
|
@app.route('/user/<string:_login>', methods=['GET', 'POST'])
|
|
|
def user_view(_login):
|
|
def user_view(_login):
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
user = data_session.query(User).filter(User.login == _login).first()
|
|
user = data_session.query(User).filter(User.login == _login).first()
|
|
|
if user:
|
|
if user:
|
|
@@ -532,7 +560,9 @@ def user_view(_login):
|
|
|
|
|
|
|
|
@app.route('/projects/new', methods=['GET', 'POST'])
|
|
@app.route('/projects/new', methods=['GET', 'POST'])
|
|
|
def new_project():
|
|
def new_project():
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
form = ProjectForm()
|
|
form = ProjectForm()
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
list_users = list(
|
|
list_users = list(
|
|
@@ -569,7 +599,9 @@ def new_project():
|
|
|
|
|
|
|
|
@app.route('/projects', methods=['GET', 'POST'])
|
|
@app.route('/projects', methods=['GET', 'POST'])
|
|
|
def projects():
|
|
def projects():
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
find = False
|
|
find = False
|
|
|
form = FindProjectForm()
|
|
form = FindProjectForm()
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
@@ -597,7 +629,9 @@ def projects():
|
|
|
|
|
|
|
|
@app.route('/profile', methods=['GET', 'POST'])
|
|
@app.route('/profile', methods=['GET', 'POST'])
|
|
|
def profile():
|
|
def profile():
|
|
|
- if current_user.is_authenticated and not current_user.banned:
|
|
|
|
|
|
|
+ if current_user.banned:
|
|
|
|
|
+ return redirect('/logout')
|
|
|
|
|
+ if current_user.is_authenticated:
|
|
|
data_session = db_session.create_session()
|
|
data_session = db_session.create_session()
|
|
|
form = EditProfileForm(
|
|
form = EditProfileForm(
|
|
|
CombinedMultiDict((request.files, request.form)),
|
|
CombinedMultiDict((request.files, request.form)),
|