flask_crud_app/config.py

49 lines
1.5 KiB
Python
Raw Normal View History

2025-02-06 02:35:24 +00:00
class Attribute:
2025-02-06 08:33:13 +00:00
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=""):
2025-02-06 02:35:24 +00:00
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
2025-02-06 08:33:13 +00:00
self.default_val = default_val
2025-02-06 02:35:24 +00:00
2025-02-06 08:33:13 +00:00
item_attributes = {
2025-02-06 02:35:24 +00:00
"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",
2025-02-06 08:33:13 +00:00
default_val="2020-03-09",
2025-02-06 02:35:24 +00:00
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
)
2025-02-05 10:38:12 +00:00
}