65 lines
2.5 KiB
Python
65 lines
2.5 KiB
Python
from flask import request, Blueprint, render_template, url_for
|
|
from checker import check_auth
|
|
from os import path
|
|
from datetime import date
|
|
from .report_model import view_report_model, create_report_model
|
|
import json
|
|
|
|
with open(path.join(path.dirname(__file__), 'reports.json'), encoding='utf-8') as f:
|
|
report_list = json.load(f)
|
|
|
|
report_bp = Blueprint('report_bp', __name__, template_folder='templates')
|
|
|
|
@report_bp.route('/menu')
|
|
@check_auth
|
|
def menu():
|
|
if request.method == 'GET':
|
|
return render_template('report_menu.html')
|
|
|
|
# Рекомендации от ИС
|
|
# @report_bp.route('/test', methods=['GET'])
|
|
# def get_test():
|
|
# return render_template('report_basic.html',
|
|
# is_write=True,
|
|
# title='Создание отчетов',
|
|
# items=report_list,
|
|
# date_today=date.today())
|
|
|
|
# @report_bp.route('/test', methods=['POST'])
|
|
# def post_test():
|
|
# report_response = model(request, report_list)
|
|
# return view(report_response)
|
|
|
|
@report_bp.route('/create', methods=['GET', 'POST'])
|
|
@check_auth
|
|
def create():
|
|
if request.method == 'GET':
|
|
return render_template('report_basic.html',
|
|
is_write=True,
|
|
title='Создание отчетов',
|
|
items=report_list,
|
|
date_today=date.today())
|
|
else:
|
|
result = create_report_model(request, report_list)
|
|
if result.status:
|
|
return render_template("OK.html")
|
|
else:
|
|
return render_template("error.html", error_message=result.error_message)
|
|
|
|
@report_bp.route('/view', methods=['GET', 'POST'])
|
|
@check_auth
|
|
def view():
|
|
if request.method == 'GET':
|
|
return render_template('report_basic.html',
|
|
is_write=False,
|
|
title='Просмотр отчетов',
|
|
items=report_list,
|
|
date_today=date.today())
|
|
else:
|
|
result = view_report_model(request, report_list)
|
|
if result.status:
|
|
return render_template("output.html", items=result.result,
|
|
header='Результаты отчёта',
|
|
link = url_for('report_bp.menu'))
|
|
else:
|
|
return render_template("error.html", error_message=result.error_message) |