generated from dopt-python/py311
further prototyping, added first DB interactions
This commit is contained in:
@@ -1,28 +1,45 @@
|
||||
# %%
|
||||
import dataclasses as dc
|
||||
import enum
|
||||
|
||||
from PySide6.QtCore import QDate, Qt
|
||||
|
||||
|
||||
class FormFieldType(enum.StrEnum):
|
||||
TEXT = enum.auto()
|
||||
LONGTEXT = enum.auto()
|
||||
DATE = enum.auto()
|
||||
DATETIME = enum.auto()
|
||||
|
||||
|
||||
# %%
|
||||
@dc.dataclass(slots=True)
|
||||
class Address:
|
||||
street: str
|
||||
number: int
|
||||
postal_code: str
|
||||
city: str
|
||||
class FormField:
|
||||
key: str
|
||||
label: str
|
||||
type: FormFieldType
|
||||
required: bool
|
||||
|
||||
def export(self):
|
||||
data = {}
|
||||
for f in dc.fields(self):
|
||||
val = getattr(self, f.name)
|
||||
if f.type is int:
|
||||
val = str(val)
|
||||
data[f.name] = val
|
||||
|
||||
return data
|
||||
def __post_init__(self) -> None:
|
||||
self.label = self.label.strip()
|
||||
if not self.label.endswith(":"):
|
||||
self.label += ":"
|
||||
if self.required:
|
||||
self.label += "*"
|
||||
|
||||
|
||||
# %%
|
||||
addr = Address("Teststraße", 202, "09111", "Chemnitz")
|
||||
FormField("name", "Projektbeschreibung", FormFieldType.LONGTEXT, required=True)
|
||||
# %%
|
||||
FormField("name", "Projektbeschreibung:", FormFieldType.LONGTEXT, required=True)
|
||||
|
||||
# %%
|
||||
FormField("name", "Projektbeschreibung", FormFieldType.LONGTEXT, required=False)
|
||||
# %%
|
||||
FormField("name", "Projektbeschreibung:", FormFieldType.LONGTEXT, required=False)
|
||||
# %%
|
||||
addr.export()
|
||||
# %%
|
||||
set_date = QDate.fromString("26.07.2026", "dd.MM.yyyy")
|
||||
|
||||
# %%
|
||||
Qt.Tet
|
||||
|
||||
Reference in New Issue
Block a user