38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
"""
|
|
Project: PARTS Website
|
|
Author: Edward Middleton-Smith
|
|
Precision And Research Technology Systems Limited
|
|
|
|
Technology: Backend
|
|
Feature: Forms - Product Variation Filters data input
|
|
|
|
Description:
|
|
Defines Flask-WTF forms for handling product variation filter input.
|
|
"""
|
|
|
|
# internal
|
|
from business_objects.store.store_base import Store_Base
|
|
from forms.base import Form_Base
|
|
from helpers.helper_app import Helper_App
|
|
import lib.argument_validation as av
|
|
# external
|
|
from flask_wtf import FlaskForm
|
|
from wtforms import StringField, TextAreaField, SubmitField, BooleanField, IntegerField, SelectField, FloatField, DateField
|
|
from wtforms.validators import InputRequired, NumberRange, Regexp, DataRequired, Optional
|
|
from flask_wtf.recaptcha import RecaptchaField
|
|
from abc import ABCMeta, abstractmethod
|
|
|
|
|
|
class Filters_Product_Variation(Form_Base):
|
|
is_not_empty = BooleanField('Not empty only?')
|
|
active = BooleanField("Active only?", default = True)
|
|
def __repr__(self):
|
|
return f'Filters_Product_Variation(is_not_empty={self.is_not_empty.data}, active={self.active.data})'
|
|
@classmethod
|
|
def from_json(cls, json):
|
|
_m = f'{cls.__name__}.from_json'
|
|
Helper_App.console_log(f'{_m}\njson={json}')
|
|
form = cls()
|
|
form.is_not_empty.data = av.input_bool(json[Store_Base.FLAG_IS_NOT_EMPTY], Store_Base.FLAG_IS_NOT_EMPTY, _m)
|
|
form.active.data = av.input_bool(json[Store_Base.FLAG_ACTIVE], Store_Base.FLAG_ACTIVE, _m)
|
|
return form |