Updated functionalities
This commit is contained in:
+37
-13
@@ -1,4 +1,4 @@
|
||||
from flask import Blueprint, render_template, redirect, url_for, flash, request, jsonify
|
||||
from flask import Blueprint, render_template, redirect, url_for, flash, request, jsonify, abort
|
||||
from flask_login import login_required, current_user
|
||||
from app import db
|
||||
from app.models.inspection import InspectionTemplate, ChecklistItem
|
||||
@@ -48,7 +48,9 @@ def create_template():
|
||||
@bp.route('/<int:template_id>')
|
||||
@login_required
|
||||
def view_template(template_id):
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
form_fields = template.get_form_schema()
|
||||
return render_template(
|
||||
'templates/view.html',
|
||||
@@ -61,7 +63,9 @@ def view_template(template_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def edit_template(template_id):
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
form = InspectionTemplateForm(obj=template)
|
||||
|
||||
if form.validate_on_submit():
|
||||
@@ -87,7 +91,9 @@ def edit_template(template_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def rename_template(template_id):
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
|
||||
new_name = request.form.get('name', '').strip()
|
||||
if not new_name:
|
||||
@@ -118,7 +124,9 @@ def rename_template(template_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def delete_template(template_id):
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
|
||||
if template.inspections.count() > 0:
|
||||
flash('Cannot delete template with existing inspections.', 'danger')
|
||||
@@ -138,7 +146,9 @@ def delete_template(template_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def duplicate_template(template_id):
|
||||
src = InspectionTemplate.query.get_or_404(template_id)
|
||||
src = db.session.get(InspectionTemplate, template_id)
|
||||
if src is None:
|
||||
abort(404)
|
||||
|
||||
# Duplicate the template header
|
||||
new_tpl = InspectionTemplate(
|
||||
@@ -183,7 +193,9 @@ def duplicate_template(template_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def form_editor(template_id):
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
form_schema = template.get_form_schema()
|
||||
return render_template(
|
||||
'templates/form_editor.html',
|
||||
@@ -197,7 +209,9 @@ def form_editor(template_id):
|
||||
@supervisor_required
|
||||
def save_form_schema(template_id):
|
||||
"""AJAX endpoint — receives the full form schema as JSON and persists it."""
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
|
||||
data = request.get_json(silent=True)
|
||||
if data is None:
|
||||
@@ -270,7 +284,9 @@ def save_form_schema(template_id):
|
||||
@login_required
|
||||
def form_preview(template_id):
|
||||
"""Renders a read-only preview of the dynamic form."""
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
form_fields = template.get_form_schema()
|
||||
return render_template(
|
||||
'templates/form_preview.html',
|
||||
@@ -287,7 +303,9 @@ def form_preview(template_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def create_checklist_item(template_id):
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
form = ChecklistItemForm()
|
||||
|
||||
if form.validate_on_submit():
|
||||
@@ -324,7 +342,9 @@ def create_checklist_item(template_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def edit_checklist_item(item_id):
|
||||
item = ChecklistItem.query.get_or_404(item_id)
|
||||
item = db.session.get(ChecklistItem, item_id)
|
||||
if item is None:
|
||||
abort(404)
|
||||
form = ChecklistItemForm(obj=item)
|
||||
|
||||
if form.validate_on_submit():
|
||||
@@ -353,7 +373,9 @@ def edit_checklist_item(item_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def delete_checklist_item(item_id):
|
||||
item = ChecklistItem.query.get_or_404(item_id)
|
||||
item = db.session.get(ChecklistItem, item_id)
|
||||
if item is None:
|
||||
abort(404)
|
||||
template_id = item.template_id
|
||||
item_desc = item.item_description[:80]
|
||||
item_id_snap = item.id
|
||||
@@ -369,7 +391,9 @@ def delete_checklist_item(item_id):
|
||||
@login_required
|
||||
@supervisor_required
|
||||
def reorder_items(template_id):
|
||||
template = InspectionTemplate.query.get_or_404(template_id)
|
||||
template = db.session.get(InspectionTemplate, template_id)
|
||||
if template is None:
|
||||
abort(404)
|
||||
item_order = request.json.get('item_order', [])
|
||||
|
||||
for index, item_id in enumerate(item_order):
|
||||
|
||||
Reference in New Issue
Block a user