Fix: Updated removed redundant filtering, and getting for single-page architecture, which this is not on all pages

This commit is contained in:
2024-11-14 12:58:57 +00:00
parent 70de7026d3
commit 8fc3d8a803
21 changed files with 136 additions and 659 deletions

View File

@@ -10,11 +10,6 @@ Description:
Data model for store product view
"""
# IMPORTS
# VARIABLE INSTANTIATION
# METHODS
# IMPORTS
# internal
from business_objects.store.product import Product, Parameters_Product
from business_objects.store.product_category import Product_Category_Container
@@ -28,53 +23,14 @@ import lib.argument_validation as av
# external
from typing import ClassVar
"""
class Model_View_Store_Product(Model_View_Store):
# categories: list # (str)
# category_products: dict { category_enum_id: List[Product] }
# Attributes
@property
def title(self):
return 'Store Product'
def __init__(self, id_permutation, id_currency, id_region_delivery, is_included_VAT, hash_page_current=Model_View_Store.HASH_PAGE_STORE_PRODUCTS):
# Constructor
_m = 'Model_View_Store_Product.__init__'
Helper_App.console_log(f'{_m}\nstarting...')
super().__init__(hash_page_current=hash_page_current, id_currency=id_currency, id_region_delivery=id_region_delivery, is_included_VAT=is_included_VAT)
Helper_App.console_log('supered')
category_list = DataStore_Store_Base().get_many_product(Parameters_Product(
self.info_user['sub'],
True, '', False,
True, '', False, False,
False, str(id_permutation), False,
True, '', False, False,
False, str(id_region_delivery), False,
False, str(id_currency), False,
True, '', False
)) # product_ids=str(id_product), permutation_ids=str(id_permutation))
Helper_App.console_log('connection to db successful')
# self.categories = categories
# self.category_index = category_index
""
if (category_list.get_category_count() > 0):
self.product = category_list.get_permutation_first()
else:
self.product = None
Helper_App.console_log('selected permutation selected')
""
"""
class Model_View_Store_Product(Model_View_Store):
access_levels: list = None
category_list: Product_Category_Container = None
category_list_filters: Product_Category_Container = None
currencies: list = None
currency_options: list = None
filters_product: Parameters_Product = None
form_filters: Filters_Product
form_filters: Filters_Product = None
form_filters_old: Filters_Product
list_options_product: list = None
# product_blank: Product = None
units_measurement: list = None
@@ -86,10 +42,11 @@ class Model_View_Store_Product(Model_View_Store):
def title(self):
return 'Products'
def __init__(self, form_filters, hash_page_current=Model_View_Store.HASH_PAGE_STORE_PRODUCTS):
def __init__(self, form_filters_old, hash_page_current=Model_View_Store.HASH_PAGE_STORE_PRODUCTS):
_m = 'Model_View_Store_Product.__init__'
Helper_App.console_log(f'{_m}\nstarting...')
super().__init__(hash_page_current=hash_page_current, form_filters=form_filters)
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
self.form_filters = form_filters_old
self.access_levels = self.get_many_access_level(Filters_Access_Level())
parameters_product = Parameters_Product.from_form_filters_product(self.form_filters)
datastore_store = DataStore_Store_Product()

View File

@@ -30,18 +30,21 @@ from typing import ClassVar
class Model_View_Store_Product_Category(Model_View_Store):
# KEY_CATEGORIES: ClassVar[str] = 'categories'
access_levels: list = None
category_list: Product_Category_Container = None # (str)
# filters_category: Filters_Product_Category
form_filters: Filters_Product_Category = None
form_filters_old: Filters_Product_Category
@property
def title(self):
return 'Product Category'
def __init__(self, form_filters, hash_page_current=Model_View_Store.HASH_PAGE_STORE_PRODUCT_CATEGORIES):
def __init__(self, form_filters_old, hash_page_current=Model_View_Store.HASH_PAGE_STORE_PRODUCT_CATEGORIES):
_m = 'Model_View_Store_Product_Category.__init__'
Helper_App.console_log(f'{_m}\nstarting...')
super().__init__(hash_page_current=hash_page_current, form_filters=form_filters) # filters_category=filters_category)
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old) # filters_category=filters_category)
self.form_filters = form_filters_old
# BaseModel.__init__(self, app=app, filters_product=filters_product, **kwargs)
self.access_levels = self.get_many_access_level(Filters_Access_Level())
datastore_store = DataStore_Store_Product_Category()

View File

@@ -29,8 +29,9 @@ class Model_View_Store_Product_Permutation(Model_View_Store):
category_list_filters: Product_Category_Container = None
currencies: list = None
currency_options: list = None
filters_product: Parameters_Product = None
form_filters: Filters_Product_Permutation
# filters_product: Parameters_Product = None
form_filters: Filters_Product_Permutation = None
form_filters_old: Filters_Product_Permutation
list_options_product: list = None
units_measurement: list = None
units_measurement_time: list = None
@@ -41,10 +42,11 @@ class Model_View_Store_Product_Permutation(Model_View_Store):
def title(self):
return 'Product Permutations'
def __init__(self, form_filters, hash_page_current=Model_View_Store.HASH_PAGE_STORE_PRODUCT_PERMUTATIONS):
def __init__(self, form_filters_old, hash_page_current=Model_View_Store.HASH_PAGE_STORE_PRODUCT_PERMUTATIONS):
_m = 'Model_View_Store_Permutation.__init__'
Helper_App.console_log(f'{_m}\nstarting...')
super().__init__(hash_page_current=hash_page_current, form_filters=form_filters)
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
self.form_filters = form_filters_old
# self.form_filters = Filters_Product_Permutation()
filters_product = Parameters_Product.from_form_filters_product_permutation(self.form_filters)
datastore_store = DataStore_Store_Product_Permutation()

View File

@@ -30,8 +30,8 @@ class Model_View_Store_Stock_Item(Model_View_Store):
category_list_filters: Product_Category_Container = None
currencies: list = None
currency_options: list = None
filters_stock_item: Filters_Stock_Item
form_filters: Filters_Stock_Item = None
form_filters_old: Filters_Stock_Item
list_options_product: list = None
plants: list = None
storage_locations: list = None
@@ -44,15 +44,15 @@ class Model_View_Store_Stock_Item(Model_View_Store):
def title(self):
return 'Store Stock Items'
def __init__(self, filters_stock_item, hash_page_current=Model_View_Store.HASH_PAGE_STORE_STOCK_ITEMS):
def __init__(self, form_filters_old, hash_page_current=Model_View_Store.HASH_PAGE_STORE_STOCK_ITEMS):
_m = 'Model_View_Store_Stock_Item.__init__'
Helper_App.console_log(f'{_m}\nstarting...')
super().__init__(hash_page_current=hash_page_current, filters_stock_item=filters_stock_item)
# BaseModel.__init__(self, app=app, filters_stock_item=filters_stock_item, **kwargs)
self.form_filters = Filters_Stock_Item.from_json(filters_stock_item.to_json()) # .from_form_stock_item(filters_stock_item)
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
# BaseModel.__init__(self, app=app, form_filters_old=form_filters_old, **kwargs)
self.form_filters = form_filters_old # Filters_Stock_Item.from_json(form_filters_old.to_json()) # .from_form_stock_item(form_filters_old)
datastore_store = DataStore_Store_Stock_Item()
tmp_category_list_stock_item, errors = datastore_store.get_many_product(Parameters_Product.from_filters_stock_item(filters_stock_item))
self.category_list, errors = datastore_store.get_many_stock_item(Parameters_Stock_Item.from_form_stock_item(filters_stock_item), tmp_category_list_stock_item)
tmp_category_list_stock_item, errors = datastore_store.get_many_product(Parameters_Product.from_filters_stock_item(self.form_filters))
self.category_list, errors = datastore_store.get_many_stock_item(Parameters_Stock_Item.from_form_stock_item(self.form_filters), tmp_category_list_stock_item)
self.category_list_filters, errors_filters = datastore_store.get_many_product(Parameters_Product.get_default())
"""
Parameters_Stock_Item(
@@ -83,7 +83,7 @@ class Model_View_Store_Stock_Item(Model_View_Store):
filtered_product_list.append(product)
Helper_App.console_log(f'product_list: {product_list}\nfiltered_product_list: {filtered_product_list}')
self.form_filters.id_product.choices += [(str(product['value']), product['text']) for product in filtered_product_list] # [Filters_Stock_Item.get_choice_all()] +
# self.form_filters.import_values(filters_stock_item)
# self.form_filters.import_values(form_filters_old)
self.variation_types, self.variations, errors = self.get_many_product_variation()
self.units_measurement = self.get_many_unit_measurement()
self.units_measurement_time = [unit_measurement for unit_measurement in self.units_measurement if unit_measurement.is_unit_of_time]