2016-02-01 13:48:43 +00:00
|
|
|
|
from flask import request, render_template, redirect, url_for, flash, abort
|
2016-01-11 16:03:41 +00:00
|
|
|
|
from flask_login import login_required
|
2015-12-20 00:00:01 +00:00
|
|
|
|
|
|
|
|
|
|
from app.main import main
|
2016-01-11 13:15:10 +00:00
|
|
|
|
from app.main.forms import TemplateForm
|
2016-02-04 11:31:33 +00:00
|
|
|
|
from app import job_api_client
|
2016-01-19 15:54:12 +00:00
|
|
|
|
from app.main.dao.services_dao import get_service_by_id
|
2016-01-22 11:14:56 +00:00
|
|
|
|
from app.main.dao import templates_dao as tdao
|
|
|
|
|
|
from app.main.dao import services_dao as sdao
|
2016-01-19 15:54:12 +00:00
|
|
|
|
from client.errors import HTTPError
|
2016-01-13 16:21:29 +00:00
|
|
|
|
|
2015-12-20 00:00:01 +00:00
|
|
|
|
|
2016-02-02 14:24:08 +00:00
|
|
|
|
@main.route("/services/<service_id>/templates")
|
2016-01-11 16:03:41 +00:00
|
|
|
|
@login_required
|
2016-01-19 15:54:12 +00:00
|
|
|
|
def manage_service_templates(service_id):
|
|
|
|
|
|
try:
|
2016-02-04 11:31:33 +00:00
|
|
|
|
jobs = job_api_client.get_job(service_id)['data']
|
2016-01-22 11:14:56 +00:00
|
|
|
|
templates = tdao.get_service_templates(service_id)['data']
|
2016-01-19 15:54:12 +00:00
|
|
|
|
except HTTPError as e:
|
|
|
|
|
|
if e.status_code == 404:
|
|
|
|
|
|
abort(404)
|
|
|
|
|
|
else:
|
|
|
|
|
|
raise e
|
2016-01-13 12:10:29 +00:00
|
|
|
|
return render_template(
|
|
|
|
|
|
'views/manage-templates.html',
|
2016-01-13 16:21:29 +00:00
|
|
|
|
service_id=service_id,
|
2016-02-04 11:31:33 +00:00
|
|
|
|
has_jobs=bool(jobs),
|
2016-01-22 11:14:56 +00:00
|
|
|
|
templates=[tdao.TemplatesBrowsableItem(x) for x in templates])
|
2015-12-20 00:00:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
2016-02-02 14:24:08 +00:00
|
|
|
|
@main.route("/services/<service_id>/templates/add", methods=['GET', 'POST'])
|
2016-01-11 16:03:41 +00:00
|
|
|
|
@login_required
|
2016-01-19 15:54:12 +00:00
|
|
|
|
def add_service_template(service_id):
|
|
|
|
|
|
try:
|
2016-01-22 11:14:56 +00:00
|
|
|
|
service = sdao.get_service_by_id(service_id)['data']
|
2016-01-19 15:54:12 +00:00
|
|
|
|
except HTTPError as e:
|
|
|
|
|
|
if e.status_code == 404:
|
|
|
|
|
|
abort(404)
|
|
|
|
|
|
else:
|
|
|
|
|
|
raise e
|
2016-01-11 13:15:10 +00:00
|
|
|
|
|
|
|
|
|
|
form = TemplateForm()
|
|
|
|
|
|
|
2016-01-19 15:54:12 +00:00
|
|
|
|
if form.validate_on_submit():
|
2016-01-22 11:14:56 +00:00
|
|
|
|
tdao.insert_service_template(
|
2016-01-22 12:15:47 +00:00
|
|
|
|
form.name.data, form.template_type.data, form.template_content.data, service_id)
|
2016-01-19 15:54:12 +00:00
|
|
|
|
return redirect(url_for(
|
|
|
|
|
|
'.manage_service_templates', service_id=service_id))
|
|
|
|
|
|
return render_template(
|
|
|
|
|
|
'views/edit-template.html',
|
|
|
|
|
|
h1='Add template',
|
|
|
|
|
|
form=form,
|
|
|
|
|
|
service_id=service_id)
|
2015-12-20 00:00:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
2016-02-02 14:24:08 +00:00
|
|
|
|
@main.route("/services/<service_id>/templates/<int:template_id>", methods=['GET', 'POST'])
|
2016-01-11 16:03:41 +00:00
|
|
|
|
@login_required
|
2016-01-19 15:54:12 +00:00
|
|
|
|
def edit_service_template(service_id, template_id):
|
|
|
|
|
|
try:
|
2016-01-22 11:14:56 +00:00
|
|
|
|
template = tdao.get_service_template(service_id, template_id)['data']
|
2016-01-19 15:54:12 +00:00
|
|
|
|
except HTTPError as e:
|
|
|
|
|
|
if e.status_code == 404:
|
|
|
|
|
|
abort(404)
|
|
|
|
|
|
else:
|
|
|
|
|
|
raise e
|
2016-01-22 12:15:47 +00:00
|
|
|
|
|
|
|
|
|
|
template['template_content'] = template['content']
|
2016-01-22 11:24:33 +00:00
|
|
|
|
form = TemplateForm(**template)
|
2016-01-11 13:15:10 +00:00
|
|
|
|
|
2016-01-19 15:54:12 +00:00
|
|
|
|
if form.validate_on_submit():
|
2016-01-22 11:14:56 +00:00
|
|
|
|
tdao.update_service_template(
|
2016-01-19 15:54:12 +00:00
|
|
|
|
template_id, form.name.data, form.template_type.data,
|
2016-01-22 12:15:47 +00:00
|
|
|
|
form.template_content.data, service_id)
|
2016-01-19 15:54:12 +00:00
|
|
|
|
return redirect(url_for('.manage_service_templates', service_id=service_id))
|
2016-01-13 13:24:06 +00:00
|
|
|
|
|
2016-01-19 15:54:12 +00:00
|
|
|
|
return render_template(
|
|
|
|
|
|
'views/edit-template.html',
|
|
|
|
|
|
h1='Edit template',
|
|
|
|
|
|
form=form,
|
|
|
|
|
|
service_id=service_id,
|
|
|
|
|
|
template_id=template_id)
|
2016-01-14 09:44:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
2016-02-02 14:24:08 +00:00
|
|
|
|
@main.route("/services/<service_id>/templates/<int:template_id>/delete", methods=['GET', 'POST'])
|
2016-01-14 09:44:06 +00:00
|
|
|
|
@login_required
|
2016-01-19 15:54:12 +00:00
|
|
|
|
def delete_service_template(service_id, template_id):
|
|
|
|
|
|
try:
|
2016-01-22 11:14:56 +00:00
|
|
|
|
template = tdao.get_service_template(service_id, template_id)['data']
|
2016-01-19 15:54:12 +00:00
|
|
|
|
except HTTPError as e:
|
|
|
|
|
|
if e.status_code == 404:
|
|
|
|
|
|
abort(404)
|
|
|
|
|
|
else:
|
|
|
|
|
|
raise e
|
2016-01-14 09:44:06 +00:00
|
|
|
|
|
2016-02-08 12:30:01 +00:00
|
|
|
|
template['template_content'] = template['content']
|
2016-01-22 11:24:33 +00:00
|
|
|
|
form = TemplateForm(**template)
|
2016-01-14 09:44:06 +00:00
|
|
|
|
|
2016-01-22 11:36:49 +00:00
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
|
tdao.delete_service_template(service_id, template_id)
|
2016-01-19 15:54:12 +00:00
|
|
|
|
return redirect(url_for('.manage_service_templates', service_id=service_id))
|
2016-01-14 09:44:06 +00:00
|
|
|
|
|
2016-01-19 15:54:12 +00:00
|
|
|
|
flash('Are you sure you want to delete ‘{}’?'.format(form.name.data), 'delete')
|
|
|
|
|
|
return render_template(
|
|
|
|
|
|
'views/edit-template.html',
|
|
|
|
|
|
h1='Edit template',
|
|
|
|
|
|
form=form,
|
|
|
|
|
|
service_id=service_id,
|
|
|
|
|
|
template_id=template_id)
|