pre-commit changes
This commit is contained in:
@@ -1,27 +1,33 @@
|
||||
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
|
||||
from datetime import date
|
||||
from os import path
|
||||
|
||||
with open(path.join(path.dirname(__file__), 'reports.json'), encoding='utf-8') as f:
|
||||
from checker import check_auth
|
||||
from flask import Blueprint, render_template, request, url_for
|
||||
|
||||
from .report_model import create_report_model, view_report_model
|
||||
|
||||
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', static_folder='static')
|
||||
report_bp = Blueprint(
|
||||
"report_bp", __name__, template_folder="templates", static_folder="static"
|
||||
)
|
||||
|
||||
@report_bp.route('/menu')
|
||||
|
||||
@report_bp.route("/menu")
|
||||
@check_auth
|
||||
def menu():
|
||||
if request.method == 'GET':
|
||||
return render_template('report_menu.html')
|
||||
|
||||
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='Создание отчетов',
|
||||
# return render_template('report_basic.html',
|
||||
# is_write=True,
|
||||
# title='Создание отчетов',
|
||||
# items=report_list,
|
||||
# date_today=date.today())
|
||||
|
||||
@@ -29,16 +35,19 @@ def menu():
|
||||
# def post_test():
|
||||
# report_response = model(request, report_list)
|
||||
# return view(report_response)
|
||||
|
||||
@report_bp.route('/create', methods=['GET', 'POST'])
|
||||
|
||||
|
||||
@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())
|
||||
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:
|
||||
@@ -46,20 +55,26 @@ def create():
|
||||
else:
|
||||
return render_template("error.html", error_message=result.error_message)
|
||||
|
||||
@report_bp.route('/view', methods=['GET', 'POST'])
|
||||
|
||||
@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())
|
||||
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'))
|
||||
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)
|
||||
return render_template("error.html", error_message=result.error_message)
|
||||
|
||||
@@ -1,81 +1,87 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
from Database.work import select_list, procedure
|
||||
from Database.sql_provider import SQLProvider
|
||||
|
||||
from flask import current_app, session
|
||||
from os import path
|
||||
|
||||
sql_provider = SQLProvider(path.join(path.dirname(__file__), 'sql'))
|
||||
from Database.sql_provider import SQLProvider
|
||||
from Database.work import procedure, select_list
|
||||
from flask import current_app, session
|
||||
|
||||
sql_provider = SQLProvider(path.join(path.dirname(__file__), "sql"))
|
||||
|
||||
|
||||
@dataclass
|
||||
class InfoRespronse:
|
||||
result: tuple
|
||||
error_message: str
|
||||
status: bool
|
||||
|
||||
def check_report(input_data: dict) -> bool:
|
||||
db_config = current_app.config['db_config']
|
||||
|
||||
result = procedure(db_config, 'check_report', tuple(input_data.values()))
|
||||
if result is None or result['exist'] == 0:
|
||||
def check_report(input_data: dict) -> bool:
|
||||
db_config = current_app.config["db_config"]
|
||||
|
||||
result = procedure(db_config, "check_report", tuple(input_data.values()))
|
||||
if result is None or result["exist"] == 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def view_report_model(request, report_list: dict) -> InfoRespronse:
|
||||
id = request.form.get('category')
|
||||
month = request.form.get('month')
|
||||
year = request.form.get('year')
|
||||
|
||||
id = request.form.get("category")
|
||||
month = request.form.get("month")
|
||||
year = request.form.get("year")
|
||||
|
||||
data = dict(id=id, month=month, year=year)
|
||||
|
||||
if session['role'] in report_list[id]['data']['read']:
|
||||
if session["role"] in report_list[id]["data"]["read"]:
|
||||
status = check_report(data)
|
||||
if not status:
|
||||
return InfoRespronse((),
|
||||
error_message = 'Отчет не найден',
|
||||
status=False)
|
||||
|
||||
db_config = current_app.config['db_config']
|
||||
view_script = report_list[id]['data']['view']
|
||||
_sql = sql_provider.get(f'{view_script}.sql', data)
|
||||
return InfoRespronse((), error_message="Отчет не найден", status=False)
|
||||
|
||||
db_config = current_app.config["db_config"]
|
||||
view_script = report_list[id]["data"]["view"]
|
||||
_sql = sql_provider.get(f"{view_script}.sql", data)
|
||||
result = select_list(db_config, _sql)
|
||||
if result is None:
|
||||
return InfoRespronse((),
|
||||
error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором',
|
||||
status=False)
|
||||
return InfoRespronse(result, error_message='', status=True)
|
||||
return InfoRespronse(
|
||||
(),
|
||||
error_message="Ошибка в подключении к базе данных. Свяжитесь с администратором",
|
||||
status=False,
|
||||
)
|
||||
return InfoRespronse(result, error_message="", status=True)
|
||||
else:
|
||||
return InfoRespronse((),
|
||||
error_message='Недостаточно прав для чтения данного отчета!',
|
||||
status=False)
|
||||
|
||||
return InfoRespronse(
|
||||
(),
|
||||
error_message="Недостаточно прав для чтения данного отчета!",
|
||||
status=False,
|
||||
)
|
||||
|
||||
|
||||
def create_report_model(request, report_list: dict) -> InfoRespronse:
|
||||
id = request.form.get('category')
|
||||
month = request.form.get('month')
|
||||
year = request.form.get('year')
|
||||
id = request.form.get("category")
|
||||
month = request.form.get("month")
|
||||
year = request.form.get("year")
|
||||
|
||||
data = dict(id=id, month=month, year=year)
|
||||
|
||||
if session['role'] in report_list[id]['data']['write']:
|
||||
|
||||
if session["role"] in report_list[id]["data"]["write"]:
|
||||
status = check_report(data)
|
||||
if status:
|
||||
return InfoRespronse((),
|
||||
error_message = 'Отчет уже существует',
|
||||
status=False)
|
||||
|
||||
db_config = current_app.config['db_config']
|
||||
proc_name = report_list[id]['data']['procedure']
|
||||
return InfoRespronse((), error_message="Отчет уже существует", status=False)
|
||||
|
||||
db_config = current_app.config["db_config"]
|
||||
proc_name = report_list[id]["data"]["procedure"]
|
||||
args = tuple(data.values())
|
||||
result = procedure(db_config, proc_name, args)
|
||||
|
||||
if result is None:
|
||||
return InfoRespronse((),
|
||||
error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором',
|
||||
status=False)
|
||||
return InfoRespronse((), error_message='', status=True)
|
||||
return InfoRespronse(
|
||||
(),
|
||||
error_message="Ошибка в подключении к базе данных. Свяжитесь с администратором",
|
||||
status=False,
|
||||
)
|
||||
return InfoRespronse((), error_message="", status=True)
|
||||
else:
|
||||
return InfoRespronse((),
|
||||
error_message='Недостаточно прав для создания данного отчета!',
|
||||
status=False)
|
||||
return InfoRespronse(
|
||||
(),
|
||||
error_message="Недостаточно прав для создания данного отчета!",
|
||||
status=False,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user