Единый и неделимый json-файл

This commit is contained in:
2024-11-22 20:04:20 +03:00
parent 8663c2a451
commit 535c4d2926
6 changed files with 35 additions and 41 deletions

View File

@@ -26,15 +26,13 @@ def create():
items=report_list, items=report_list,
date_today=date.today()) date_today=date.today())
else: else:
data = dict(id=request.form.get('category'), id = request.form.get('category')
month=request.form.get('month'), month = request.form.get('month')
year=request.form.get('year')) year = request.form.get('year')
data = dict(id=id, month=month, year=year)
with open(path.join(path.dirname(__file__), f'access/{data['id']}.json')) as f: if session['role'] in report_list[id]['data']['write']:
report_access = json.load(f) proc_name = report_list[id]['data']['procedure']
if session['role'] in report_access['write']:
proc_name = report_access['procedure']
ready_report = make_report(data, proc_name) ready_report = make_report(data, proc_name)
if ready_report.status: if ready_report.status:
return render_template("OK.html") return render_template("OK.html")
@@ -53,17 +51,15 @@ def view():
items=report_list, items=report_list,
date_today=date.today()) date_today=date.today())
else: else:
data = dict(id=request.form.get('category'), id = request.form.get('category')
month=request.form.get('month'), month = request.form.get('month')
year=request.form.get('year')) year = request.form.get('year')
data = dict(id=id, month=month, year=year)
with open(path.join(path.dirname(__file__), f'access/{data['id']}.json')) as f:
report_access = json.load(f)
if session['role'] in report_access['read']: if session['role'] in report_list[id]['data']['read']:
ready_report = view_report(data, report_access['view']) ready_report = view_report(data, report_list[id]['data']['view'])
if ready_report.status: if ready_report.status:
title= f'{report_access["title"]} за {data["month"]}-{data["year"]}' title= f'{report_list[id]['data']['title']} за {data["month"]}-{data["year"]}'
return render_template("output.html", items=ready_report.result, return render_template("output.html", items=ready_report.result,
header=title, header=title,
link = url_for('report_bp.menu')) link = url_for('report_bp.menu'))

View File

@@ -1,7 +0,0 @@
{
"title" : "Отчет о поставках заготовок",
"write" : ["Менеджер"],
"read" : ["Управляющий"],
"view" : "workpiece_report",
"procedure" : "report_workpiece"
}

View File

@@ -1,7 +0,0 @@
{
"title" : "Отчет о поставках поставщиками",
"write" : ["Бухгалтер"],
"read" : ["Управляющий"],
"view" : "sellers_report",
"procedure" : "report_sellers_2"
}

View File

@@ -46,8 +46,8 @@ def make_report(input_data: dict, proc_name: str) -> InfoRespronse:
return InfoRespronse((), return InfoRespronse((),
error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором', error_message = 'Ошибка в подключении к базе данных. Свяжитесь с администратором',
status=False) status=False)
elif result['message'] != 'OK': # elif result['message'] != 'OK':
return InfoRespronse((), # return InfoRespronse((),
error_message = 'Невозможно создать отчет (нет продаж за выбранный период)', # error_message = 'Невозможно создать отчет (нет продаж за выбранный период)',
status=False) # status=False)
return InfoRespronse((), error_message='', status=True) return InfoRespronse((), error_message='', status=True)

View File

@@ -1,4 +1,16 @@
[ {
{"id": 1, "name": "Заготовки"}, "1": {"name" : "Заготовки", "data": {
{"id": 2, "name": "Поставщики"} "title" : "Отчет о поставках заготовок",
] "write" : ["Менеджер"],
"read" : ["Менеджер", "Управляющий"],
"view" : "workpiece_report",
"procedure" : "report_workpiece_2"
}},
"2": {"name": "Поставщики", "data": {
"title" : "Отчет о поставках поставщиками",
"write" : ["Бухгалтер"],
"read" : ["Бухгалтер", "Управляющий"],
"view" : "sellers_report",
"procedure" : "report_sellers_2"
}}
}

View File

@@ -16,8 +16,8 @@
<form action="" method="post" onsubmit="return check_month({{ date_today.month }})"> <form action="" method="post" onsubmit="return check_month({{ date_today.month }})">
<label for="category">Выберите предмет формирования отчета</label> <label for="category">Выберите предмет формирования отчета</label>
<select name="category" id="category" required> <select name="category" id="category" required>
{% for item in items %} {% for item in items.keys() %}
<option value="{{ item['id'] }}">{{ item['name'] }}</option> <option value="{{ item }}">{{ items[item]['name'] }}</option>
{% endfor %} {% endfor %}
</select> </select>