79 lines
2.4 KiB
Python
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'))
|