""" Project: PARTS Website Author: Edward Middleton-Smith Precision And Research Technology Systems Limited Technology: Backend Feature: Company Form Description: Defines Flask-WTF form for handling user input on Company page. """ # IMPORTS # internal from business_objects.base import Base # from business_objects.dog.company import Company # Circular from helpers.helper_app import Helper_App # from models.model_view_store import Model_View_Store # circular # from models.model_view_base import Model_View_Base from forms.base import Form_Base import lib.argument_validation as av # external from flask import Flask, render_template, request, flash, redirect, url_for, current_app from flask_wtf import FlaskForm from wtforms import SelectField, BooleanField, StringField, SubmitField from wtforms.validators import DataRequired, Email, ValidationError import markupsafe from flask_wtf.recaptcha import RecaptchaField from abc import ABCMeta, abstractmethod import json class Filters_Company(Form_Base): search = StringField( 'Search' ) active_only = BooleanField( 'Active' , default = True ) @classmethod def from_json(cls, json): _m = f'{cls.__qualname__}.from_json' Helper_App.console_log(f'{_m}\njson: {json}') filters = cls() filters.search.data = json[Base.FLAG_SEARCH] filters.active_only.data = av.input_bool(json[Base.FLAG_ACTIVE_ONLY], Base.FLAG_ACTIVE_ONLY, f'{cls.__name__}.from_json') return filters def to_json(self): return { Base.FLAG_SEARCH: self.search.data , Base.FLAG_ACTIVE_ONLY: self.active_only.data }