generated from dopt-python/py311
more generic approach in company search
This commit is contained in:
@@ -1325,7 +1325,8 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
self.prefix,
|
self.prefix,
|
||||||
)
|
)
|
||||||
|
|
||||||
lookup = search_widgets_by_key(self.widget_registry, "kontaktliste_un_suche")
|
self.COMPANY_SEARCH_INPUT_KEY = "kontaktliste_un_suche"
|
||||||
|
lookup = search_widgets_by_key(self.widget_registry, self.COMPANY_SEARCH_INPUT_KEY)
|
||||||
assert len(lookup) == 1
|
assert len(lookup) == 1
|
||||||
self.company_search_input = cast(QLineEdit, lookup[0]["widget"])
|
self.company_search_input = cast(QLineEdit, lookup[0]["widget"])
|
||||||
self.company_search_completer = self.company_search_input.completer()
|
self.company_search_completer = self.company_search_input.completer()
|
||||||
@@ -1334,16 +1335,16 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
)
|
)
|
||||||
self.company_search_input.textChanged.connect(self._search_company_change_manually)
|
self.company_search_input.textChanged.connect(self._search_company_change_manually)
|
||||||
|
|
||||||
lookup = search_widgets_by_key(self.widget_registry, "kontaktliste_person_suche")
|
self.PERSON_SEARCH_INPUT_KEY = "kontaktliste_person_suche"
|
||||||
|
lookup = search_widgets_by_key(self.widget_registry, self.PERSON_SEARCH_INPUT_KEY)
|
||||||
assert len(lookup) == 1
|
assert len(lookup) == 1
|
||||||
self.person_search_input = cast(QComboBox, lookup[0]["widget"])
|
self.person_search_input = cast(QComboBox, lookup[0]["widget"])
|
||||||
self.person_search_input.currentIndexChanged.connect(
|
self.person_search_input.currentIndexChanged.connect(
|
||||||
self._selected_person_on_completer
|
self._selected_person_on_completer
|
||||||
)
|
)
|
||||||
# self.company_search_completer = self.company_search_input.completer()
|
# self.company_search_completer = self.company_search_input.completer()
|
||||||
lookup = search_widgets_by_key(
|
self.CHANNEL_AWARENESS_KEY = "kontaktliste_kanal_aufmerksamkeit"
|
||||||
self.widget_registry, "kontaktliste_kanal_aufmerksamkeit"
|
lookup = search_widgets_by_key(self.widget_registry, self.CHANNEL_AWARENESS_KEY)
|
||||||
)
|
|
||||||
assert len(lookup) == 1
|
assert len(lookup) == 1
|
||||||
self.channel_awareness = lookup[0]
|
self.channel_awareness = lookup[0]
|
||||||
|
|
||||||
@@ -1388,6 +1389,9 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
button = QPushButton("Set form data")
|
button = QPushButton("Set form data")
|
||||||
button.clicked.connect(self.set_form_data)
|
button.clicked.connect(self.set_form_data)
|
||||||
main_layout.addWidget(button)
|
main_layout.addWidget(button)
|
||||||
|
button = QPushButton("Validate")
|
||||||
|
button.clicked.connect(self.validate_form_data)
|
||||||
|
main_layout.addWidget(button)
|
||||||
|
|
||||||
self.update_company_data()
|
self.update_company_data()
|
||||||
|
|
||||||
@@ -1467,7 +1471,6 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
)
|
)
|
||||||
self.company_search_input.setProperty(self.PROPERTY_MA_ID, ma_id)
|
self.company_search_input.setProperty(self.PROPERTY_MA_ID, ma_id)
|
||||||
self.fill_out_company(data)
|
self.fill_out_company(data)
|
||||||
# self.company_selected.emit(ma_id)
|
|
||||||
self.update_person_data(ma_id)
|
self.update_person_data(ma_id)
|
||||||
|
|
||||||
def _selected_person_on_completer(
|
def _selected_person_on_completer(
|
||||||
@@ -1498,22 +1501,29 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
def validate_form_data(self) -> list[str]:
|
def validate_form_data(self) -> list[str]:
|
||||||
return validate_form_data(self.widget_registry)
|
errors = validate_form_data(self.widget_registry)
|
||||||
|
print("\n>>>> Validation:")
|
||||||
|
pprint(errors)
|
||||||
|
return errors
|
||||||
|
|
||||||
@override
|
@override
|
||||||
def get_form_data(self) -> dict[str, Any]:
|
def get_form_data(self) -> dict[str, Any]:
|
||||||
# TODO decide if value is checked here or later in the Pydantic validation
|
# TODO decide if value is checked here or later in the Pydantic validation
|
||||||
raw_data = get_form_data(self.widget_registry)
|
raw_data = get_form_data(self.widget_registry)
|
||||||
ma_id = self.company_search_input.property(self.PROPERTY_MA_ID)
|
|
||||||
# index = self.person_search_input.currentIndex()
|
|
||||||
an_id = self.person_search_input.currentData()
|
|
||||||
self.export_data["ma_id"] = ma_id
|
|
||||||
self.export_data["an_id"] = an_id
|
|
||||||
widget = cast(QComboBox, self.channel_awareness["widget"])
|
|
||||||
self.export_data[self.channel_awareness["form_field"].key] = widget.currentData()
|
|
||||||
|
|
||||||
print("raw_data:\n")
|
print("raw_data:\n")
|
||||||
pprint(raw_data)
|
pprint(raw_data)
|
||||||
|
# leaf dictionary contains data fields
|
||||||
|
data = list(get_leaf_dicts(raw_data))[0]
|
||||||
|
print("leaf dicts:\n")
|
||||||
|
pprint(data)
|
||||||
|
|
||||||
|
ma_id = self.company_search_input.property(self.PROPERTY_MA_ID)
|
||||||
|
# # index = self.person_search_input.currentIndex()
|
||||||
|
# an_id = self.person_search_input.currentData()
|
||||||
|
self.export_data[self.COMPANY_SEARCH_INPUT_KEY] = ma_id
|
||||||
|
self.export_data[self.PERSON_SEARCH_INPUT_KEY] = data[self.PERSON_SEARCH_INPUT_KEY]
|
||||||
|
|
||||||
|
self.export_data[self.CHANNEL_AWARENESS_KEY] = data[self.CHANNEL_AWARENESS_KEY]
|
||||||
|
|
||||||
print("\nExport data:")
|
print("\nExport data:")
|
||||||
pprint(self.export_data)
|
pprint(self.export_data)
|
||||||
@@ -1528,24 +1538,26 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
if not self.export_data:
|
if not self.export_data:
|
||||||
raise RuntimeError()
|
raise RuntimeError()
|
||||||
data = self.export_data
|
data = self.export_data
|
||||||
ma_id = data["ma_id"]
|
ma_id = data[self.COMPANY_SEARCH_INPUT_KEY]
|
||||||
comp_info = be_init_rec.comp_search_get_info(
|
comp_info = be_init_rec.comp_search_get_info(
|
||||||
ma_id=data["ma_id"],
|
ma_id=ma_id,
|
||||||
)
|
)
|
||||||
self.company_search_input.setText(comp_info["ma_unternehmensname"])
|
# self.company_search_input.setText(comp_info["ma_unternehmensname"])
|
||||||
|
set_widget_value(self.person_search_input, comp_info["ma_unternehmensname"])
|
||||||
self.fill_out_company(comp_info)
|
self.fill_out_company(comp_info)
|
||||||
self.update_person_data(ma_id)
|
self.update_person_data(ma_id)
|
||||||
an_id = data["an_id"]
|
an_id = data[self.PERSON_SEARCH_INPUT_KEY]
|
||||||
pers_info = be_init_rec.contact_person_search_get_info(
|
pers_info = be_init_rec.contact_person_search_get_info(
|
||||||
an_id=an_id,
|
an_id=an_id,
|
||||||
)
|
)
|
||||||
index = self.person_search_input.findData(an_id)
|
set_widget_value(self.person_search_input, an_id)
|
||||||
if index < 0:
|
# index = self.person_search_input.findData(an_id)
|
||||||
raise IndexError("Data for person search was not found")
|
# if index < 0:
|
||||||
self.person_search_input.setCurrentIndex(index)
|
# raise IndexError("Data for person search was not found")
|
||||||
|
# self.person_search_input.setCurrentIndex(index)
|
||||||
self.fill_out_person(pers_info)
|
self.fill_out_person(pers_info)
|
||||||
widget = cast(QComboBox, self.channel_awareness["widget"])
|
widget = cast(QComboBox, self.channel_awareness["widget"])
|
||||||
value = data[self.channel_awareness["form_field"].key]
|
value = data[self.CHANNEL_AWARENESS_KEY]
|
||||||
set_widget_value(widget, value)
|
set_widget_value(widget, value)
|
||||||
|
|
||||||
|
|
||||||
@@ -2466,7 +2478,7 @@ FORM_FIELDS_SEARCH_HEAD = [
|
|||||||
FormField(
|
FormField(
|
||||||
"Suche",
|
"Suche",
|
||||||
FormFieldType.TEXT_SEARCH,
|
FormFieldType.TEXT_SEARCH,
|
||||||
required=False,
|
required=True,
|
||||||
key="kontaktliste_un_suche",
|
key="kontaktliste_un_suche",
|
||||||
),
|
),
|
||||||
FormField(
|
FormField(
|
||||||
@@ -2512,7 +2524,7 @@ FORM_FIELDS_SEARCH_HEAD = [
|
|||||||
FormField(
|
FormField(
|
||||||
"Suche Ansprechpartner",
|
"Suche Ansprechpartner",
|
||||||
FormFieldType.EXTENDED_DROPDOWN,
|
FormFieldType.EXTENDED_DROPDOWN,
|
||||||
required=False,
|
required=True,
|
||||||
key="kontaktliste_person_suche",
|
key="kontaktliste_person_suche",
|
||||||
info="ma_ort",
|
info="ma_ort",
|
||||||
),
|
),
|
||||||
@@ -3298,8 +3310,8 @@ class SearchFormPage(QWidget):
|
|||||||
|
|
||||||
# --- SUCHE MIT NAMEN ---
|
# --- SUCHE MIT NAMEN ---
|
||||||
# self.company_search = Grunderfassung_Suche()
|
# self.company_search = Grunderfassung_Suche()
|
||||||
self.company_search = Grunderfassung_Suche(FORM_FIELDS_SEARCH_HEAD)
|
# self.company_search = Grunderfassung_Suche(FORM_FIELDS_SEARCH_HEAD)
|
||||||
container_layout.addWidget(self.company_search)
|
# container_layout.addWidget(self.company_search)
|
||||||
# self.contact_person_search = ContactPersonForm_Search()
|
# self.contact_person_search = ContactPersonForm_Search()
|
||||||
# container_layout.addWidget(self.contact_person_search)
|
# container_layout.addWidget(self.contact_person_search)
|
||||||
# hor_layout = QHBoxLayout()
|
# hor_layout = QHBoxLayout()
|
||||||
@@ -3334,7 +3346,7 @@ class SearchFormPage(QWidget):
|
|||||||
# )
|
# )
|
||||||
# self.company_search.company_selected.connect(self.update_contact_persons)
|
# self.company_search.company_selected.connect(self.update_contact_persons)
|
||||||
|
|
||||||
container_layout.addSpacing(10)
|
# container_layout.addSpacing(10)
|
||||||
|
|
||||||
# --- Test Formularlayout ---
|
# --- Test Formularlayout ---
|
||||||
container_layout.addSpacing(30)
|
container_layout.addSpacing(30)
|
||||||
|
|||||||
Reference in New Issue
Block a user