Complete system for getting + saving Product Categories with new database, server, and client architecture.
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -11,15 +11,9 @@ Initializes the Flask application, sets the configuration based on the environme
|
||||
"""
|
||||
|
||||
# internal
|
||||
from business_objects.store.product import Product, Product_Filters, Product_Permutation
|
||||
from business_objects.store.stock_item import Stock_Item, Stock_Item_Filters
|
||||
from forms import Form_Supplier, Form_Filters_Permutation, Form_Filters_Stock_Item
|
||||
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 business_objects.store.product_category import Product_Category, Filters_Product_Category
|
||||
from forms.store.product_category import Form_Filters_Product_Category
|
||||
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_items import Model_View_Store_Stock_Items
|
||||
from helpers.helper_app import Helper_App
|
||||
import lib.argument_validation as av
|
||||
# external
|
||||
@@ -34,62 +28,58 @@ from urllib.parse import quote, urlparse, parse_qs
|
||||
routes_store_product_category = Blueprint('routes_store_product_category', __name__)
|
||||
|
||||
|
||||
@routes_store_product_category.route('/store/categories', methods=['GET'])
|
||||
def category():
|
||||
# filters = Product_Filters.get_default()
|
||||
model = Model_View_Store_Product_Category()
|
||||
@routes_store_product_category.route(Model_View_Store_Product_Category.HASH_PAGE_STORE_PRODUCT_CATEGORIES, methods=['GET'])
|
||||
def categories():
|
||||
filters = Filters_Product_Category.get_default()
|
||||
model = Model_View_Store_Product_Category(filters)
|
||||
return render_template('_page_store_product_categories.html', model = model)
|
||||
|
||||
@routes_store_product_category.route('/store/category_filter', methods=['POST'])
|
||||
def category_filter():
|
||||
@routes_store_product_category.route(Model_View_Store_Product_Category.HASH_GET_STORE_PRODUCT_CATEGORY, methods=['POST'])
|
||||
def filter_category():
|
||||
data = Helper_App.get_request_data(request)
|
||||
# form_filters = None
|
||||
try:
|
||||
"""
|
||||
form_filters = get_Form_Filters_Permutation(data)
|
||||
form_filters = get_Form_Filters_Product_Category(data)
|
||||
if not form_filters.validate_on_submit():
|
||||
return jsonify({'status': 'failure', 'Message': f'Form invalid.\n{form_filters.errors}'})
|
||||
# ToDo: manually validate category, product
|
||||
filters_form = Product_Filters.from_form(form_filters)
|
||||
"""
|
||||
model = Model_View_Store_Product_Category()
|
||||
return jsonify({'status': 'success', 'Success': True, 'data': model.category_list.to_list()})
|
||||
filters_form = Filters_Product_Category.from_form(form_filters)
|
||||
model = Model_View_Store_Product_Category(filters_category = filters_form)
|
||||
return jsonify({'status': 'success', 'Success': True, 'data': model.category_list.to_json_str()})
|
||||
except Exception as e:
|
||||
return jsonify({'status': 'failure', 'Message': f'Bad data received by controller.\n{e}'})
|
||||
|
||||
"""
|
||||
def get_Form_Filters_Product_Category(data_request):
|
||||
data_form = data_request[Model_View_Store_Product_Permutation.KEY_FORM]
|
||||
form_filters = Form_Filters_Permutation(**data_form)
|
||||
form_filters.is_out_of_stock.data = av.input_bool(data_form['is_out_of_stock'], 'is_out_of_stock', 'permutations_post')
|
||||
data_form = data_request[Model_View_Store_Product_Category.KEY_FORM]
|
||||
form_filters = Form_Filters_Product_Category(**data_form)
|
||||
form_filters.is_not_empty.data = av.input_bool(data_form['is_not_empty'], 'is_not_empty', 'filter_category')
|
||||
form_filters.active.data = av.input_bool(data_form['active'], 'active', 'filter_category')
|
||||
return form_filters
|
||||
"""
|
||||
|
||||
@routes_store_product_category.route('/store/category_save', methods=['POST'])
|
||||
def category_save():
|
||||
@routes_store_product_category.route(Model_View_Store_Product_Category.HASH_SAVE_STORE_PRODUCT_CATEGORY, methods=['POST'])
|
||||
def save_category():
|
||||
data = Helper_App.get_request_data(request)
|
||||
# form_filters = None
|
||||
print(f'data={data}')
|
||||
try:
|
||||
"""
|
||||
form_filters = get_Form_Filters_Permutation(data)
|
||||
form_filters = get_Form_Filters_Product_Category(data)
|
||||
if not form_filters.validate_on_submit():
|
||||
return jsonify({'status': 'failure', 'Message': f'Filters form invalid.\n{form_filters.errors}'})
|
||||
|
||||
# ToDo: manually validate category, product
|
||||
filters_form = Product_Filters.from_form(form_filters)
|
||||
"""
|
||||
filters_form = Filters_Product_Category.from_form(form_filters)
|
||||
|
||||
categories = data[Model_View_Store_Product_Permutation.FLAG_PRODUCT_CATEGORY]
|
||||
categories = data[Model_View_Store_Product_Category.FLAG_PRODUCT_CATEGORY]
|
||||
if len(categories) == 0:
|
||||
return jsonify({'status': 'failure', 'Message': f'No categories.'})
|
||||
objsCategory = []
|
||||
for category in categories:
|
||||
objsCategory.append(Product_Permutation.from_json(category))
|
||||
model_save = Model_View_Store_Product_Category() # filters_product=filters_form)
|
||||
model_save.save_categories(data.comment, objsCategory)
|
||||
objsCategory.append(Product_Category.from_json(category))
|
||||
# model_save = Model_View_Store_Product_Category() # filters_product=filters_form)
|
||||
print(f'objsCategory={objsCategory}')
|
||||
Model_View_Store_Product_Category.save_categories(data.get('comment', 'No comment'), objsCategory)
|
||||
|
||||
model_return = Model_View_Store_Product_Permutation() # filters_product=filters_form)
|
||||
return jsonify({'status': 'success', 'Success': True, 'data': model_return.category_list.to_list_rows_permutation()})
|
||||
model_return = Model_View_Store_Product_Category(filters_category=filters_form)
|
||||
print('nips')
|
||||
return jsonify({'status': 'success', 'Success': True, 'data': model_return.category_list.to_json_str()})
|
||||
except Exception as e:
|
||||
return jsonify({'status': 'failure', 'Message': f'Bad data received by controller.\n{e}'})
|
||||
|
||||
@@ -12,9 +12,9 @@ Initializes the Flask application, sets the configuration based on the environme
|
||||
|
||||
|
||||
# internal
|
||||
from business_objects.store.product import Product, Product_Filters, Product_Permutation
|
||||
from business_objects.store.product import Product, Filters_Product, Product_Permutation
|
||||
from business_objects.store.stock_item import Stock_Item, Stock_Item_Filters
|
||||
from forms import Form_Supplier, Form_Filters_Permutation, Form_Filters_Stock_Item
|
||||
from forms.forms import Form_Supplier, Form_Filters_Permutation, Form_Filters_Stock_Item
|
||||
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
|
||||
@@ -37,7 +37,7 @@ routes_store_product_permutation = Blueprint('routes_store_product_permutation',
|
||||
|
||||
@routes_store_product_permutation.route('/store/permutations', methods=['GET'])
|
||||
def permutation():
|
||||
filters = Product_Filters.get_default()
|
||||
filters = Filters_Product.get_default()
|
||||
model = Model_View_Store_Product_Permutation(filters_product=filters)
|
||||
return render_template('_page_store_product_permutations.html', model = model)
|
||||
|
||||
@@ -50,7 +50,7 @@ def permutation_filter():
|
||||
if not form_filters.validate_on_submit():
|
||||
return jsonify({'status': 'failure', 'Message': f'Form invalid.\n{form_filters.errors}'})
|
||||
# ToDo: manually validate category, product
|
||||
filters_form = Product_Filters.from_form(form_filters)
|
||||
filters_form = Filters_Product.from_form(form_filters)
|
||||
model = Model_View_Store_Product_Permutation(filters_product=filters_form)
|
||||
return jsonify({'status': 'success', 'Success': True, 'data': model.category_list.to_list_rows_permutation()})
|
||||
except Exception as e:
|
||||
@@ -79,7 +79,7 @@ def permutation_save():
|
||||
objsPermutation.append(Product_Permutation.from_json(permutation))
|
||||
|
||||
# ToDo: manually validate category, product
|
||||
filters_form = Product_Filters.from_form(form_filters)
|
||||
filters_form = Filters_Product.from_form(form_filters)
|
||||
model_save = Model_View_Store_Product_Permutation(filters_product=filters_form)
|
||||
model_save.save_permutations(data.comment, objsPermutation)
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@ Initializes the Flask application, sets the configuration based on the environme
|
||||
"""
|
||||
|
||||
# internal
|
||||
from business_objects.store.product import Product, Product_Filters, Product_Permutation
|
||||
from business_objects.store.product import Product, Filters_Product, Product_Permutation
|
||||
from business_objects.store.stock_item import Stock_Item, Stock_Item_Filters
|
||||
from forms import Form_Supplier, Form_Filters_Permutation, Form_Filters_Stock_Item
|
||||
from forms.forms import Form_Supplier, Form_Filters_Permutation, Form_Filters_Stock_Item
|
||||
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
|
||||
|
||||
@@ -12,9 +12,9 @@ Initializes the Flask application, sets the configuration based on the environme
|
||||
|
||||
|
||||
# internal
|
||||
from business_objects.store.product import Product, Product_Filters, Product_Permutation
|
||||
from business_objects.store.product import Product, Filters_Product, Product_Permutation
|
||||
from business_objects.store.stock_item import Stock_Item, Stock_Item_Filters
|
||||
from forms import Form_Supplier, Form_Filters_Permutation, Form_Filters_Stock_Item
|
||||
from forms.forms import Form_Supplier, Form_Filters_Permutation, Form_Filters_Stock_Item
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user