diff --git a/prototypes/t_qt_2.py b/prototypes/t_qt_2.py index 56c278f..870fb90 100644 --- a/prototypes/t_qt_2.py +++ b/prototypes/t_qt_2.py @@ -1325,7 +1325,8 @@ class Grunderfassung_Suche(CustomWidget): 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 self.company_search_input = cast(QLineEdit, lookup[0]["widget"]) 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) - 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 self.person_search_input = cast(QComboBox, lookup[0]["widget"]) self.person_search_input.currentIndexChanged.connect( self._selected_person_on_completer ) # self.company_search_completer = self.company_search_input.completer() - lookup = search_widgets_by_key( - self.widget_registry, "kontaktliste_kanal_aufmerksamkeit" - ) + self.CHANNEL_AWARENESS_KEY = "kontaktliste_kanal_aufmerksamkeit" + lookup = search_widgets_by_key(self.widget_registry, self.CHANNEL_AWARENESS_KEY) assert len(lookup) == 1 self.channel_awareness = lookup[0] @@ -1388,6 +1389,9 @@ class Grunderfassung_Suche(CustomWidget): button = QPushButton("Set form data") button.clicked.connect(self.set_form_data) main_layout.addWidget(button) + button = QPushButton("Validate") + button.clicked.connect(self.validate_form_data) + main_layout.addWidget(button) self.update_company_data() @@ -1467,7 +1471,6 @@ class Grunderfassung_Suche(CustomWidget): ) self.company_search_input.setProperty(self.PROPERTY_MA_ID, ma_id) self.fill_out_company(data) - # self.company_selected.emit(ma_id) self.update_person_data(ma_id) def _selected_person_on_completer( @@ -1498,22 +1501,29 @@ class Grunderfassung_Suche(CustomWidget): @override 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 def get_form_data(self) -> dict[str, Any]: # TODO decide if value is checked here or later in the Pydantic validation 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") 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:") pprint(self.export_data) @@ -1528,24 +1538,26 @@ class Grunderfassung_Suche(CustomWidget): if not self.export_data: raise RuntimeError() 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( - 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.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( an_id=an_id, ) - index = self.person_search_input.findData(an_id) - if index < 0: - raise IndexError("Data for person search was not found") - self.person_search_input.setCurrentIndex(index) + set_widget_value(self.person_search_input, an_id) + # index = self.person_search_input.findData(an_id) + # if index < 0: + # raise IndexError("Data for person search was not found") + # self.person_search_input.setCurrentIndex(index) self.fill_out_person(pers_info) 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) @@ -2466,7 +2478,7 @@ FORM_FIELDS_SEARCH_HEAD = [ FormField( "Suche", FormFieldType.TEXT_SEARCH, - required=False, + required=True, key="kontaktliste_un_suche", ), FormField( @@ -2512,7 +2524,7 @@ FORM_FIELDS_SEARCH_HEAD = [ FormField( "Suche Ansprechpartner", FormFieldType.EXTENDED_DROPDOWN, - required=False, + required=True, key="kontaktliste_person_suche", info="ma_ort", ), @@ -3298,8 +3310,8 @@ class SearchFormPage(QWidget): # --- SUCHE MIT NAMEN --- # self.company_search = Grunderfassung_Suche() - self.company_search = Grunderfassung_Suche(FORM_FIELDS_SEARCH_HEAD) - container_layout.addWidget(self.company_search) + # self.company_search = Grunderfassung_Suche(FORM_FIELDS_SEARCH_HEAD) + # container_layout.addWidget(self.company_search) # self.contact_person_search = ContactPersonForm_Search() # container_layout.addWidget(self.contact_person_search) # hor_layout = QHBoxLayout() @@ -3334,7 +3346,7 @@ class SearchFormPage(QWidget): # ) # self.company_search.company_selected.connect(self.update_contact_persons) - container_layout.addSpacing(10) + # container_layout.addSpacing(10) # --- Test Formularlayout --- container_layout.addSpacing(30)