From aee98cb2b6b53d324415cc3c56a53b46f804fa71 Mon Sep 17 00:00:00 2001 From: candifloss Date: Thu, 6 Feb 2025 08:05:24 +0530 Subject: [PATCH] Attribute class for config --- config.py | 82 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 37 deletions(-) diff --git a/config.py b/config.py index 53c5e16..5468ae4 100644 --- a/config.py +++ b/config.py @@ -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 + ) } \ No newline at end of file