flask_crud_app/config.py

49 lines
1.5 KiB
Python

class Attribute:
def __init__(self, display_name, html_input_type="text", required=False, unique=False, primary=False, regex=None, min=None, max=None, options=None, default_val=""):
self.display_name = display_name
self.html_input_type = html_input_type
self.required = required
self.unique = unique
self.primary = primary
self.regex = regex
self.min = min
self.max = max
self.options = options
self.default_val = default_val
item_attributes = {
"assettag": Attribute(
display_name="Asset Tag",
html_input_type="text",
required=True,
unique=True,
primary=True,
regex=r"^[A-Z0-9]+$" # Only uppercase letters and numbers
),
"hostname": Attribute(
display_name="Host Name",
html_input_type="text",
required=True,
unique=True,
regex=r"^[a-z0-9._-]+$" # Lowercase letters, numbers, dots, underscores, hyphens
),
"warrantyfrom": Attribute(
display_name="Warranty From",
html_input_type="date",
default_val="2020-03-09",
required=True
),
"status": Attribute(
display_name="Status",
html_input_type="select",
required=True,
options=["Active", "Inactive"] # Allowed values
),
"staffnum": Attribute(
display_name="Staff No.",
html_input_type="number",
required=True,
min=100000, # 6 digits
max=99999999 # 8 digits
)
}