from flask import request, Blueprint, render_template, session from os import path from Database.sql_provider import SQLProvider from checker import check_auth, group_required from .requests_route import route from datetime import date import json with open(path.join(path.dirname(__file__), 'zapros_menu.json')) as f: requests_list = json.load(f) sql_provider = SQLProvider(path.join(path.dirname(__file__), 'sql')) requests_bp = Blueprint('requests_bp', __name__, template_folder='templates') @requests_bp.route('/', methods=['GET', 'POST']) @check_auth def requests(): if request.method == 'GET': return render_template('zapros_menu.html', options=requests_list) @requests_bp.route('/req1', methods=['GET', 'POST']) @check_auth @group_required def sklad_zapros(): if request.method == 'GET': zagotovki = route(session['db_config'], {}, sql_provider, 'zagotovki.sql') if zagotovki.status: return render_template('zagotovki.html', materials=zagotovki.result, header='Количество заготовок на складе') else: return render_template('error.html', error_message=zagotovki.error_message) else: material = dict(request.form) zagotovki = route(session['db_config'], material, sql_provider, 'zapros1.sql') if zagotovki.status: header = f'Заготовки на складе из материала \'{material["material"]}\'' return render_template('output.html', items=zagotovki.result, object=header) else: return render_template('error.html', error_message=zagotovki.error_message) @requests_bp.route('/req2', methods=['GET', 'POST']) @check_auth @group_required def sellers_ship(): if request.method == 'GET': zagotovki = route(session['db_config'], {}, sql_provider, 'sellers.sql') if zagotovki.status: min_year = '2000' max_year = str(date.today().year) return render_template('sellers_ship.html', sellers=zagotovki.result, year_from=min_year, year_to=max_year) else: return render_template('error.html', error_message=zagotovki.error_message) else: seller = dict(request.form) zagotovki = route(session['db_config'], seller, sql_provider, 'zapros2.sql') if zagotovki.status: header = f'Заготовки, поставленные поставщиком \'{seller['seller']}\'' return render_template('output.html', items=zagotovki.result, object=header) else: return render_template('error.html', error_message=zagotovki.error_message) @requests_bp.route('/req3', methods=['GET', 'POST']) @check_auth @group_required def zagotovki_ship(): if request.method == 'GET': zagotovki = route(session['db_config'], {}, sql_provider, 'zagotovki.sql') if zagotovki.status: return render_template('zagotovki.html', materials=zagotovki.result, header='Поставки заготовок') else: return render_template('error.html', error_message=zagotovki.error_message) else: material = dict(request.form) zagotovki = route(session['db_config'], material, sql_provider, 'zapros3.sql') if zagotovki.status: header = f'Поставки заготовок из материала \'{material['material']}\'' return render_template('output.html', items=zagotovki.result, object=header) else: return render_template('error.html', error_message=zagotovki.error_message)