Attribute class for config

This commit is contained in:
Candifloss 2025-02-06 08:05:24 +05:30
parent 7aeee8da47
commit aee98cb2b6

View File

@ -1,39 +1,47 @@
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):
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
tableitems = {
"assettag": {
"display_name": "Asset Tag",
"html_input_type": "text",
"required": True,
"unique": True,
"primary_key": True,
"regex": r"^[A-Z0-9]+$",
}
"hostname": {
"display_name": "Host Name",
"html_input_type": "text",
"required": True,
"unique": True,
"regex": r"^[a-z0-9._-]+$" #
},
"warrantyfrom": {
"display_name": "Warranty From",
"html_input_type": "date",
"required": True,
regex: r"^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$" # Date in YYYY-MM-DD
},
"status": {
"display_name": "Status",
"html_input_type": "select",
required: True,
options: [
"active": "Active",
"inactive": "Inactive"
]
},
"staffnum": {
"display_name": "Staff No.",
"html_input_type": "number",
"required": True,
"min": 100000, # 6 digits
"max": 99999999 # 8 digits
}
"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",
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
)
}