2025-02-18 10:40:27 +00:00
|
|
|
"""
|
2025-02-11 18:45:53 +00:00
|
|
|
class Attribute:
|
2025-02-12 09:53:27 +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="", auto_increment=False, index=False, comment="", compareto=None):
|
|
|
|
self.display_name = display_name # Input label or table column header.
|
|
|
|
self.html_input_type = html_input_type # HTML form input type. Determines MySQL data type.
|
|
|
|
self.required = required # HTML form input "required" attribute and MySQL "Not Null" constraint
|
|
|
|
self.unique = unique # MySQL "unique" constraint
|
|
|
|
self.primary = primary # MySQL "primary key" constraint
|
|
|
|
self.regex = regex # Regex for value validation
|
|
|
|
self.min = min # HTML form input "min" attribute. Sets minimum value.
|
|
|
|
self.max = max # HTML form input "max" attribute. Sets maximum value.
|
|
|
|
self.options = options # List of options for "select" inputs
|
|
|
|
self.default_val = default_val # HTML form input "value" attribute. Sets default value.
|
|
|
|
self.auto_increment = auto_increment # bool: MySQL autoincrement
|
|
|
|
self.index = index # bool: MySQL index
|
|
|
|
self.comment = comment # Description text
|
2025-02-18 10:40:27 +00:00
|
|
|
self.compareto = compareto # Compare to another attribute of the item for validation: ["comparison", "referenceattrib"]
|
|
|
|
##default_val: Optional[str, int, float] = None, # HTML form input "value" attribute. Sets default value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Attribute:
|
|
|
|
def __init__(self,
|
|
|
|
display_name: str, # Input label or table column header.
|
|
|
|
html_input_type: str = "text", # HTML form input type. Determines MySQL data type.
|
|
|
|
placeholder: str = "text", # HTML form input placeholder.
|
|
|
|
required: bool = False, # HTML form input "required" attribute and MySQL "Not Null" constraint
|
|
|
|
unique: bool = False, # MySQL "unique" constraint
|
|
|
|
primary: bool = False, # MySQL "primary key" constraint
|
|
|
|
index: bool = False, # bool: MySQL index
|
|
|
|
compareto: Optional[List[str]] = None, # Compare to another attribute of the item for validation: ["comparison", "referenceattrib"]
|
|
|
|
title: str ="" # Description text, html "title" attribute
|
|
|
|
):
|
|
|
|
self.display_name = display_name
|
|
|
|
if not display_name:
|
|
|
|
return f"Missing display name for attribute '{attrib_name}'."
|
|
|
|
self.html_input_type = html_input_type
|
|
|
|
if not html_input_type:
|
|
|
|
return f"Missing input type for attribute '{attrib_name}'."
|
|
|
|
self.required = required
|
|
|
|
self.unique = unique
|
|
|
|
self.primary = primary
|
|
|
|
self.default_val = default_val
|
|
|
|
self.index = index
|
|
|
|
self.compareto = compareto
|
|
|
|
self.title = title
|