console/SWSCloudAdministrator/Administrator/tasks.py
2025-01-05 08:07:49 +03:00

79 lines
2.4 KiB
Python

"""Stack Web Services LLC"""
import validators
from flask import Blueprint, redirect, render_template, request, url_for
from SWSCloudCore.controllers.tasks.manage import ControllerManageTasks
from SWSCloudAdministrator.Administrator.common import requires_login
from SWSCloudCore import models
view_administrator_tasks = Blueprint(
'administrator_tasks', __name__,
url_prefix='/administrator/tasks')
@view_administrator_tasks.route('/', methods=['GET'])
@requires_login
def index():
return render_template(
'administrator/tasks/index.html',
total=models.Tasks.count_items(),
tasks=ControllerManageTasks().get())
@view_administrator_tasks.route('/edit.html', methods=['GET'])
@requires_login
def edit():
task_id = request.form.get('task_id')
if not validators.uuid(task_id) or not models.Tasks.exists(task_id):
return redirect(url_for('administrator_tasks.index'))
task = ControllerManageTasks().get_task(task_id)
return render_template(
'administrator/tasks/edit.html',
task=task)
@view_administrator_tasks.route('/edit.html', methods=['POST'])
@requires_login
def edit_post():
task_id = request.form.get('task_id')
# todo: validate
status = request.form.get('status')
if not validators.uuid(task_id) or not models.Tasks.exists(task_id):
return redirect(url_for('administrator_tasks.index'))
task = models.Tasks.update(
status=status
).where(models.Tasks.id == task_id)
task.execute()
return redirect(url_for('administrator_tasks.edit', task_id=task_id))
@view_administrator_tasks.route('/delete.html', methods=['GET'])
@requires_login
def delete():
task_id = request.args.get('task_id')
if not validators.uuid(task_id) or not models.Tasks.exists(task_id):
return redirect(url_for('administrator_tasks.index'))
task = ControllerManageTasks().get_task(task_id)
return render_template(
'administrator/tasks/delete.html',
task=task
)
@view_administrator_tasks.route('/delete.html', methods=['POST'])
@requires_login
def delete_post():
task_id = request.form.get('task_id')
if not validators.uuid(task_id) or not models.Tasks.exists(task_id):
return redirect(url_for('administrator_tasks.index'))
task = models.Tasks.delete().where(models.Tasks.id == task_id)
task.execute()
return redirect(url_for('administrator_tasks.index'))