72 lines
3.4 KiB
Python
72 lines
3.4 KiB
Python
"""
|
|
Project: PARTS Website
|
|
Author: Edward Middleton-Smith
|
|
Precision And Research Technology Systems Limited
|
|
|
|
Technology: App Routing
|
|
Feature: Store Supplier Routes
|
|
|
|
Description:
|
|
Initializes the Flask application, sets the configuration based on the environment, and defines two routes (/ and /about) that render templates with the specified titles.
|
|
"""
|
|
|
|
|
|
# internal
|
|
from business_objects.store.product import Product, Parameters_Product, Product_Permutation
|
|
from business_objects.store.stock_item import Stock_Item
|
|
from forms.forms import Form_Supplier
|
|
from models.model_view_base import Model_View_Base
|
|
from models.model_view_store import Model_View_Store
|
|
from models.model_view_store_supplier import Model_View_Store_Supplier
|
|
from models.model_view_store_product_category import Model_View_Store_Product_Category
|
|
from models.model_view_store_product_permutation import Model_View_Store_Product_Permutation
|
|
from models.model_view_store_stock_item import Model_View_Store_Stock_Item
|
|
from helpers.helper_app import Helper_App
|
|
import lib.argument_validation as av
|
|
# external
|
|
from flask import Flask, render_template, jsonify, request, render_template_string, send_from_directory, redirect, url_for, session, Blueprint, current_app
|
|
from extensions import db, oauth
|
|
from urllib.parse import quote_plus, urlencode
|
|
from authlib.integrations.flask_client import OAuth
|
|
from authlib.integrations.base_client import OAuthError
|
|
from urllib.parse import quote, urlparse, parse_qs
|
|
|
|
|
|
routes_store_supplier= Blueprint('routes_store_supplier', __name__)
|
|
|
|
|
|
@routes_store_supplier.route('/supplier', methods=['GET'])
|
|
def supplier():
|
|
try:
|
|
data = request.json
|
|
except:
|
|
data = {}
|
|
print(f'data={data}')
|
|
form_data = data[Model_View_Store_Supplier.key_form]
|
|
print(f'form_data: {form_data}')
|
|
form = Form_Supplier(**form_data)
|
|
print('form acquired')
|
|
print(form.__repr__)
|
|
if form.validate_on_submit():
|
|
print('valid form')
|
|
# model = input_JSON_basket(model, data)
|
|
# if not logged in:
|
|
try:
|
|
model = Model_View_Store_Supplier(form)
|
|
if not model.is_user_logged_in:
|
|
# return redirect(url_for('routes_user.login', data = jsonify({ Model_View_Store_Supplier.FLAG_CALLBACK: Model_View_Store_Supplier.HASH_PAGE_STORE_SUPPLIERS })))
|
|
return redirect(url_for('routes_core.home'))
|
|
# print('importing basket')
|
|
# model.import_JSON_basket(data)
|
|
model.get_basket(data)
|
|
permutation_id, quantity = model.import_JSON_basket_item(data, form)
|
|
model.basket_item_edit(permutation_id, quantity, False) # new_basket =
|
|
except Exception as e:
|
|
return jsonify({Model_View_Base.FLAG_STATUS: Model_View_Base.FLAG_FAILURE, Model_View_Base.FLAG_MESSAGE: f'Bad data received by controller.\n{e}'})
|
|
# return jsonify(Success = True, data = { html_block: render_template(), Model_View_Store.key_basket: new_basket })
|
|
# html_block = render_template('_block_store_basket.html', model = model)
|
|
# print(f'html_block:\n{html_block}')
|
|
# return jsonify(Success = True, data = { 'html_block': html_block, 'basket': {'items': model.basket.to_json_list()}})
|
|
return render_template('pages/store/_supplier.html', model = model)
|
|
return jsonify({Model_View_Base.FLAG_STATUS: Model_View_Base.FLAG_FAILURE, Model_View_Base.FLAG_MESSAGE: f'Invalid supplier details.\n{form.errors}'})
|