generated from dopt-python/py311
code cleansing
This commit is contained in:
@@ -84,15 +84,6 @@ if not wce_crm.constants.Config.DEVELOPMENT_STATE:
|
||||
DEBUG_NO_DATABASE = False
|
||||
DEBUG_GET_SET = False
|
||||
|
||||
# TODO remove
|
||||
# logger_gui = BASE_LOGGER.getChild("wce")
|
||||
# logger_gui.setLevel(logging.DEBUG)
|
||||
# logger_search_widget = logger_gui.getChild("search_widget")
|
||||
# logger_search_widget.setLevel(logging.DEBUG)
|
||||
# logger_get_data = logger_gui.getChild("get_data")
|
||||
# logger_get_data.setLevel(logging.DEBUG)
|
||||
# logger_auto_form = logger_gui.getChild("get_data_auto_form")
|
||||
# logger_auto_form.setLevel(logging.DEBUG)
|
||||
|
||||
QSS = """
|
||||
*[styleClass="stempel"] {
|
||||
@@ -880,33 +871,6 @@ def reset_form(
|
||||
widget.setStyleSheet("")
|
||||
|
||||
|
||||
# TODO: check removal
|
||||
# def _insert_nested(
|
||||
# target_dict: dict[str, Any],
|
||||
# key_path: Sequence[str],
|
||||
# value: Any,
|
||||
# ):
|
||||
# # keys 'a.b.c = 1' --> {'a': {'b': {'c': 1}}}
|
||||
# for part in key_path[:-1]:
|
||||
# target_dict = target_dict.setdefault(part, {})
|
||||
# target_dict[key_path[-1]] = value
|
||||
|
||||
|
||||
# def _get_nested(
|
||||
# target_dict: dict[str, Any],
|
||||
# key_path: Sequence[str],
|
||||
# ) -> Any:
|
||||
# # keys 'a.b.c = 1' --> {'a': {'b': {'c': 1}}}
|
||||
# current = target_dict
|
||||
# for part in key_path:
|
||||
# if isinstance(current, dict) and part in current:
|
||||
# current = current[part]
|
||||
# else:
|
||||
# return None # path does not exist
|
||||
|
||||
# return current
|
||||
|
||||
|
||||
@dc.dataclass(slots=True)
|
||||
class SubForm:
|
||||
entry_box: QWidget
|
||||
@@ -1010,21 +974,20 @@ def get_form_data(
|
||||
value = qt_date.toPython()
|
||||
elif isinstance(widget, QComboBox):
|
||||
value = widget.currentData()
|
||||
elif isinstance(widget, DynamicListWidget):
|
||||
# TODO add to other custom widgets
|
||||
# this should be a list: each dynamic list contains a list
|
||||
# of such dictionaries
|
||||
value = widget.get_form_data()
|
||||
elif isinstance(
|
||||
widget, (DynamicDropdownWidgetNumeric, DynamicDropdownWidgetOption, CustomWidget)
|
||||
widget,
|
||||
(
|
||||
DynamicListWidget,
|
||||
DynamicDropdownWidgetNumeric,
|
||||
DynamicDropdownWidgetOption,
|
||||
CustomWidget,
|
||||
),
|
||||
):
|
||||
# this is a special data structure with some assumptions of the widget's internals
|
||||
# DynamicListWidget: this is a list -> each dynamic list contains a list
|
||||
# of such dictionaries (handled below)
|
||||
value = widget.get_form_data()
|
||||
|
||||
# TODO: check removal
|
||||
# logger_get_data.info("Key: %s", key)
|
||||
# logger_get_data.info("Value: %s", value)
|
||||
|
||||
if isinstance(value, dict):
|
||||
raw_data.update(value)
|
||||
else:
|
||||
@@ -1099,10 +1062,6 @@ def set_form_data(
|
||||
if data_key not in filter_keys:
|
||||
continue
|
||||
|
||||
# TODO check removal
|
||||
# key_path = key.split(COLUMN_SEP)
|
||||
# value = _get_nested(data, key_path)
|
||||
# value = data.get(key, None)
|
||||
if isinstance(
|
||||
widget,
|
||||
(
|
||||
@@ -1231,44 +1190,6 @@ class Grunderfassung_Projektrelevanz(BaseModel):
|
||||
relevanz: str
|
||||
foerderperiode: str | None = None
|
||||
|
||||
# @field_validator("relevanz", mode="before")
|
||||
# @classmethod
|
||||
# def str_to_bool(cls, value: Any) -> Any:
|
||||
# if isinstance(value, str):
|
||||
# value = value.strip().lower()
|
||||
|
||||
# if value == "ja":
|
||||
# return True
|
||||
# elif value == "nein":
|
||||
# return False
|
||||
|
||||
# raise ValueError("Wert muss 'ja', 'nein', True oder False sein.")
|
||||
|
||||
# return value
|
||||
|
||||
|
||||
# TODO remove
|
||||
# class Grunderfassung_ProjektrelevanzStatus_Status(BaseModel):
|
||||
# model_config = ConfigDict(str_strip_whitespace=True)
|
||||
|
||||
# relevanz: bool
|
||||
# foerderperiode: list[str | None] | None = None
|
||||
|
||||
# @field_validator("relevanz", mode="before")
|
||||
# @classmethod
|
||||
# def str_to_bool(cls, value: Any) -> Any:
|
||||
# if isinstance(value, str):
|
||||
# value = value.strip().lower()
|
||||
|
||||
# if value == "ja":
|
||||
# return True
|
||||
# elif value == "nein":
|
||||
# return False
|
||||
|
||||
# raise ValueError("Wert muss 'ja', 'nein', True oder False sein.")
|
||||
|
||||
# return value
|
||||
|
||||
|
||||
class Grunderfassung_Kontaktperson(BaseModel):
|
||||
model_config = ConfigDict(str_strip_whitespace=True)
|
||||
@@ -1835,10 +1756,9 @@ class AutoForm(QWidget):
|
||||
if lookup_id > 0:
|
||||
logger_auto_form.debug("Load from DB:")
|
||||
loaded_data = self.cfg.data_get(lookup_id)
|
||||
# TODO remove loading from file (obsolete)
|
||||
else:
|
||||
logger_auto_form.debug("Load from pickled object:")
|
||||
loaded_data = load_pydantic_model_dict_db()
|
||||
logger_auto_form.error("Loading: Lookup ID <= 0. Do nothing!")
|
||||
return
|
||||
|
||||
logger_auto_form.debug(
|
||||
"Loaded data dict:\n%s Passing to Pydantic...", pformat(loaded_data)
|
||||
@@ -1905,8 +1825,7 @@ class AutoForm(QWidget):
|
||||
if DEBUG_NO_DATABASE:
|
||||
return
|
||||
# !! this code is only called if the 'try' block was successful
|
||||
# save_pydantic_model_dict_db(validated_data)
|
||||
# TODO save data to database
|
||||
# save data to database
|
||||
db_data = validated_data.to_db(exclude=self.cfg.ignored_keys)
|
||||
logger_auto_form.debug(
|
||||
("Form data with 'exlude' (must be saved in the database):\n%s"),
|
||||
@@ -2058,24 +1977,9 @@ class DynamicListWidget(QWidget):
|
||||
return errors
|
||||
|
||||
def get_form_data(self) -> list[dict[str, Any]]:
|
||||
# TODO code cleansing
|
||||
# raw_data = get_form_data(self.widget_registry)
|
||||
# form_data = get_form_data(self.widget_registry)
|
||||
# logger_get_data.debug(
|
||||
# "\n\n\n------- Form data DynamicListWidget:\n%s", pformat(form_data)
|
||||
# )
|
||||
logger_get_data.info("DynamicListWidget - SubForms")
|
||||
# for sub_form in self.sub_forms:
|
||||
# logger_get_data.info("SubForm index %d", sub_form.index)
|
||||
# pprint_registry(sub_form.registry)
|
||||
|
||||
logger_get_data.info("DynamicListWidget - Get Data")
|
||||
form_data = [get_form_data(sub.registry) for sub in self.sub_forms]
|
||||
# ignored_keys: list[str] = []
|
||||
# for d in form_data:
|
||||
# ignored_keys.extend(d.ignored_keys)
|
||||
# data = [d.data for d in form_data]
|
||||
logger_get_data.debug("##################")
|
||||
logger_get_data.debug("Form data:\n%s", pformat(form_data))
|
||||
logger_get_data.debug("DynamicListWidget - Form data:\n%s", pformat(form_data))
|
||||
|
||||
return form_data
|
||||
|
||||
@@ -2092,19 +1996,6 @@ class DynamicListWidget(QWidget):
|
||||
self.add_entry()
|
||||
return
|
||||
|
||||
# TODO check removal
|
||||
# for sub_data in data:
|
||||
# self.add_entry()
|
||||
# current_sub_form = self.sub_forms[-1]
|
||||
# registry_entries = search_widgets_by_key(
|
||||
# self.widget_registry, f"-[{current_sub_form.index}]"
|
||||
# )
|
||||
# for reg_entry in registry_entries:
|
||||
# widget = reg_entry["widget"]
|
||||
# field_def = reg_entry["form_field"]
|
||||
|
||||
# value = sub_data[field_def.key]
|
||||
# set_widget_value(widget, value)
|
||||
for sub_form_data in data:
|
||||
self.add_entry()
|
||||
current_sub_form = self.sub_forms[-1]
|
||||
@@ -2460,23 +2351,22 @@ class DynamicDropdownWidgetOption(QWidget):
|
||||
widget = self.widget_registry[key]["widget"]
|
||||
value = data[key]
|
||||
set_widget_value(widget, value)
|
||||
# TODO need to get the correct index
|
||||
logger_get_data.debug("Value: %s", value)
|
||||
if value is None or value != self.trigger_value:
|
||||
num_subforms = 0
|
||||
else:
|
||||
num_subforms = 1
|
||||
del data[key]
|
||||
# assert key in whole_registry, "key not in Dynamic DD Option"
|
||||
|
||||
whole_registry = self._get_combined_registry(sub_forms_only=True)
|
||||
logger_get_data.debug("[DynamicDD-Option] Whole widget registry:\n")
|
||||
pprint_registry(whole_registry)
|
||||
logger_get_data.debug("[DynamicDD-Option] Widget registry for subforms obtained")
|
||||
|
||||
logger_get_data.debug(">>>>>>>>> Call set_form_data for DynamicDropdown")
|
||||
logger_get_data.debug("Data before set of subforms:%s", pformat(data))
|
||||
logger_get_data.debug(
|
||||
"[DynamicDD-Option] -- set_form_data -- Data before set of subforms:\n%s",
|
||||
pformat(data),
|
||||
)
|
||||
|
||||
assert len(self.sub_forms) == num_subforms, f"{len(self.sub_forms)=}"
|
||||
assert len(self.sub_forms) == num_subforms
|
||||
if not self.sub_forms:
|
||||
return
|
||||
|
||||
@@ -3465,21 +3355,18 @@ class PageFormCompany(QWidget):
|
||||
header_layout.addWidget(title)
|
||||
vert_layout.addWidget(header_container)
|
||||
|
||||
# --- HAUPTINHALT ---
|
||||
# --- MAIN CONTENT ---
|
||||
container = QWidget()
|
||||
# SCROLL-BEREICH
|
||||
# SCROLL AREA
|
||||
scroll_area = QScrollArea()
|
||||
scroll_area.setWidgetResizable(
|
||||
True
|
||||
) # WICHTIG: Erlaubt dem Grid im Inneren, sich an die Breite anzupassen
|
||||
scroll_area.setWidgetResizable(True)
|
||||
scroll_area.setMinimumWidth(700)
|
||||
scroll_area.setMaximumWidth(1000)
|
||||
scroll_area.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
||||
# Optional: Rahmen der ScrollArea entfernen, damit es "flacher" und moderner aussieht
|
||||
# optional: remove frame to look more modern
|
||||
scroll_area.setFrameShape(QFrame.Shape.NoFrame)
|
||||
scroll_area.setWidget(container)
|
||||
|
||||
# vert_layout.addSpacing(20)
|
||||
vert_layout.addWidget(scroll_area)
|
||||
|
||||
container_layout = QVBoxLayout(container)
|
||||
@@ -3487,13 +3374,11 @@ class PageFormCompany(QWidget):
|
||||
|
||||
# --- AUTO FORM LAYOUT ---
|
||||
container_layout.addSpacing(20)
|
||||
# title = QLabel("--- Automatische Form ---")
|
||||
# title.setStyleSheet("font-size: 14px; font-style: italic;") # font-weight: bold;
|
||||
self.auto_form = AutoForm(cfg=CONFIG_GRUNDERFASSUNG_UNTERNEHMEN)
|
||||
container_layout.addWidget(self.auto_form)
|
||||
self.auto_form.save_clicked_form.connect(lambda: self.save_clicked_form.emit())
|
||||
|
||||
container_layout.addSpacing(30)
|
||||
container_layout.addSpacing(15)
|
||||
|
||||
# --- CUSTOM LOGIC ---
|
||||
# 'Bundesland' only if 'Inland' selected in 'Stammdaten'
|
||||
@@ -3554,7 +3439,6 @@ def clear_layout(
|
||||
clear_layout(child.layout())
|
||||
|
||||
|
||||
# 2. Das Hauptfenster mit dem Grid-Layout
|
||||
class MainWindow(QMainWindow):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
@@ -3668,7 +3552,6 @@ class MainWindow(QMainWindow):
|
||||
for col_idx, title in enumerate(headers):
|
||||
self.header_grid.addWidget(HeaderCell(title), self.current_row, col_idx)
|
||||
|
||||
# self.current_row += 1
|
||||
self.update_grid()
|
||||
|
||||
return main_widget
|
||||
|
||||
Reference in New Issue
Block a user