feat(web): Store Product UI created and hooked up for viewing, editing, and saving.

This commit is contained in:
2024-10-05 21:16:42 +01:00
parent 9c2cfac948
commit 651a404ba3
72 changed files with 873 additions and 992 deletions

View File

@@ -22,7 +22,7 @@ from flask_wtf.recaptcha import RecaptchaField
class Filters_Product(FlaskForm):
id_category = SelectField('Category', validators=[Optional()], choices=[])
id_category = SelectField('Category', validators=[Optional()], choices=[('', 'All')])
is_not_empty = BooleanField('Not empty only?')
active = BooleanField("Active only?")
@classmethod
@@ -33,4 +33,11 @@ class Filters_Product(FlaskForm):
form.active.data = filters_product.active
return form
def __repr__(self):
return f'Filters_Product(id_category={self.id_category}, is_not_empty={self.is_not_empty.data}, active={self.active.data})'
return f'Filters_Product(id_category={self.id_category}, is_not_empty={self.is_not_empty.data}, active={self.active.data})'
@classmethod
def from_json(cls, json):
filters = cls()
filters.id_category.data = json['id_category']
filters.is_not_empty.data = json['is_not_empty']
filters.active.data = json['active']
return filters

View File

@@ -26,8 +26,8 @@ from abc import ABCMeta, abstractmethod
class Filters_Product_Permutation(Form_Base):
id_category = SelectField('Category', validators=[Optional()], choices=[])
id_product = SelectField('Product', validators=[Optional()], choices=[])
id_category = SelectField('Category', validators=[Optional()], choices=[('', 'All')])
id_product = SelectField('Product', validators=[Optional()], choices=[('', 'All')])
is_out_of_stock = BooleanField('Out of stock only?')
quantity_min = FloatField('Min stock')
quantity_max = FloatField('Max stock')

View File

@@ -64,4 +64,5 @@ class Filters_Stock_Item(Form_Base):
@classmethod
def get_default(cls):
filters = cls()
filters.id_category.choices = [('', 'Select category')]
filters.id_category.choices = cls.get_choices_blank()
filters.id_product.choices = cls.get_choices_blank()