49 lines
1.5 KiB
Python
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
|
|
)
|
|
} |