Изменён путь до модуля с запросами
This commit is contained in:
38
App/Requests/requests.py
Normal file
38
App/Requests/requests.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from flask import request, Blueprint, render_template, session
|
||||
from os import path
|
||||
from Database.sql_provider import SQLProvider
|
||||
from checker import check_auth
|
||||
from .requests_route import route
|
||||
import json
|
||||
|
||||
with open(path.join(path.dirname(__file__), 'zapros_menu.json')) as f:
|
||||
options = 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=options)
|
||||
else:
|
||||
return 'error'
|
||||
|
||||
@requests_bp.route('/req1', methods=['GET', 'POST'])
|
||||
@check_auth
|
||||
def sklad_zapros():
|
||||
if request.method == 'GET':
|
||||
zagotovki = route(session['db_config'], {}, sql_provider, 'zagotovki.sql')
|
||||
if zagotovki.status:
|
||||
return render_template('sklad_zapros.html', materials=zagotovki.result)
|
||||
else:
|
||||
return zagotovki.error_message
|
||||
else:
|
||||
material = dict(request.form)
|
||||
zagotovki = route(session['db_config'], material, sql_provider, 'zapros1.sql')
|
||||
if zagotovki.status:
|
||||
categories = ['Материал', 'Вес', 'Цена', 'Количество']
|
||||
return render_template('output.html', items=zagotovki.result, categories = categories)
|
||||
else:
|
||||
return zagotovki.error_message
|
||||
15
App/Requests/requests_route.py
Normal file
15
App/Requests/requests_route.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from dataclasses import dataclass
|
||||
from Database.select import select_list
|
||||
@dataclass
|
||||
class InfoRespronse:
|
||||
result: tuple
|
||||
error_message: str
|
||||
status: bool
|
||||
|
||||
def route(db_config, input_data, sql_provider, name) -> InfoRespronse:
|
||||
_sql = sql_provider.get(name, input_data)
|
||||
print("sql = ", _sql)
|
||||
result = select_list(db_config, _sql)
|
||||
if result is None:
|
||||
return InfoRespronse(result, error_message = 'Ошибка в подключении к базе данных', status=False)
|
||||
return InfoRespronse(result, error_message='', status=True)
|
||||
1
App/Requests/sql/zagotovki.sql
Normal file
1
App/Requests/sql/zagotovki.sql
Normal file
@@ -0,0 +1 @@
|
||||
SELECT DISTINCT material FROM workpiece
|
||||
3
App/Requests/sql/zapros1.sql
Normal file
3
App/Requests/sql/zapros1.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
SELECT material, weight, price, count
|
||||
FROM workpiece
|
||||
WHERE material = '${material}'
|
||||
33
App/Requests/templates/output.html
Normal file
33
App/Requests/templates/output.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Заготовки на складе</title>
|
||||
<link href="/static/css/main.css" type="text/css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div class="logout">
|
||||
<a href="{{ url_for('logout') }}"><button>Выход</button></a>
|
||||
</div>
|
||||
<h1>Заготовки на складе</h1>
|
||||
<!-- Output -->
|
||||
<table>
|
||||
<tr>
|
||||
{% for category in categories %}
|
||||
<th>{{ category }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% for item in items %}
|
||||
<tr>
|
||||
<td>{{ item['material'] }}</td>
|
||||
<td>{{ item['weight'] }}</td>
|
||||
<td>{{ item['price'] }}</td>
|
||||
<td>{{ item['count'] }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<div class="return">
|
||||
<a href="{{ url_for('requests_bp.requests') }}"><button>Обратно в меню запросов</button></a>
|
||||
|
||||
</div></body>
|
||||
</html>
|
||||
27
App/Requests/templates/sklad_zapros.html
Normal file
27
App/Requests/templates/sklad_zapros.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Заготовки на складе</title>
|
||||
<link href="/static/css/main.css" type="text/css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div class="logout">
|
||||
<a href="{{ url_for('logout') }}"><button>Выход</button></a>
|
||||
</div>
|
||||
<!-- Input -->
|
||||
<h1>Выберите материал</h1>
|
||||
<form action="" method="post">
|
||||
<select name="material">
|
||||
{% for item in materials %}
|
||||
<option value="{{ item['material'] }}">{{ item['material'] }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input type="submit" value="Отправить">
|
||||
</form>
|
||||
<div class="return">
|
||||
<a href="{{ url_for('requests_bp.requests') }}"><button>Обратно в меню запросов</button></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
22
App/Requests/templates/zapros_menu.html
Normal file
22
App/Requests/templates/zapros_menu.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Запросы</title>
|
||||
<link href="/static/css/main.css" type="text/css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div class="logout">
|
||||
<a href="{{ url_for('logout') }}"><button>Выход</button></a>
|
||||
</div>
|
||||
<h1>Выберите вариант запроса</h1>
|
||||
<nav class="menu">
|
||||
{% for point in options %}
|
||||
<a href="{{ url_for(point['url']) }}"><button>{{ point['name'] }}</button></a>
|
||||
{% endfor %}
|
||||
</nav>
|
||||
<div class="return">
|
||||
<a href="{{ url_for('index') }}"><button>Главное меню</button></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
3
App/Requests/zapros_menu.json
Normal file
3
App/Requests/zapros_menu.json
Normal file
@@ -0,0 +1,3 @@
|
||||
[
|
||||
{"name": "Материалы заготовок", "url": "requests_bp.sklad_zapros"}
|
||||
]
|
||||
Reference in New Issue
Block a user