generated from dopt-python/py311
change company search to dropdown base
This commit is contained in:
@@ -617,8 +617,10 @@ def reset_form(
|
|||||||
elif isinstance(widget, QComboBox):
|
elif isinstance(widget, QComboBox):
|
||||||
if form_field.fill_value:
|
if form_field.fill_value:
|
||||||
widget.setCurrentText(form_field.fill_value)
|
widget.setCurrentText(form_field.fill_value)
|
||||||
else:
|
elif form_field.type is FormFieldType.DROPDOWN:
|
||||||
widget.setCurrentIndex(0)
|
widget.setCurrentIndex(0)
|
||||||
|
else:
|
||||||
|
widget.setCurrentIndex(-1)
|
||||||
elif isinstance(widget, DynamicListWidget):
|
elif isinstance(widget, DynamicListWidget):
|
||||||
# dynamic list widget manages its widgets by itself
|
# dynamic list widget manages its widgets by itself
|
||||||
widget.reset_form()
|
widget.reset_form()
|
||||||
@@ -1328,21 +1330,15 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
self.COMPANY_SEARCH_INPUT_KEY = "kontaktliste_un_suche"
|
self.COMPANY_SEARCH_INPUT_KEY = "kontaktliste_un_suche"
|
||||||
lookup = search_widgets_by_key(self.widget_registry, self.COMPANY_SEARCH_INPUT_KEY)
|
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(QComboBox, lookup[0]["widget"])
|
||||||
self.company_search_completer = self.company_search_input.completer()
|
self.company_search_input.currentIndexChanged.connect(self._selected_company)
|
||||||
self.company_search_completer.activated[QModelIndex].connect( # type: ignore
|
|
||||||
self._selected_company_on_completer
|
|
||||||
)
|
|
||||||
self.company_search_input.textChanged.connect(self._search_company_change_manually)
|
|
||||||
|
|
||||||
self.PERSON_SEARCH_INPUT_KEY = "kontaktliste_person_suche"
|
self.PERSON_SEARCH_INPUT_KEY = "kontaktliste_person_suche"
|
||||||
lookup = search_widgets_by_key(self.widget_registry, self.PERSON_SEARCH_INPUT_KEY)
|
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)
|
||||||
self._selected_person_on_completer
|
|
||||||
)
|
|
||||||
# self.company_search_completer = self.company_search_input.completer()
|
|
||||||
self.CHANNEL_AWARENESS_KEY = "kontaktliste_kanal_aufmerksamkeit"
|
self.CHANNEL_AWARENESS_KEY = "kontaktliste_kanal_aufmerksamkeit"
|
||||||
lookup = search_widgets_by_key(self.widget_registry, self.CHANNEL_AWARENESS_KEY)
|
lookup = search_widgets_by_key(self.widget_registry, self.CHANNEL_AWARENESS_KEY)
|
||||||
assert len(lookup) == 1
|
assert len(lookup) == 1
|
||||||
@@ -1437,23 +1433,17 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
widget.clear()
|
widget.clear()
|
||||||
|
|
||||||
def update_company_data(self) -> None:
|
def update_company_data(self) -> None:
|
||||||
# self.reset_form()
|
|
||||||
self.company_search_input.clear()
|
self.company_search_input.clear()
|
||||||
self._clear_company_fields()
|
self.company_search_input.addItem(DROPDOWN_DEFAULT, None)
|
||||||
search_items = QStandardItemModel()
|
|
||||||
search_choices = be_init_rec.comp_search_choices()
|
search_choices = be_init_rec.comp_search_choices()
|
||||||
for item, db_index in search_choices:
|
for item, db_index in search_choices:
|
||||||
qitem = QStandardItem(item)
|
self.company_search_input.addItem(item, db_index)
|
||||||
qitem.setData(db_index, Qt.ItemDataRole.UserRole)
|
self.company_search_input.setCurrentIndex(-1)
|
||||||
search_items.appendRow(qitem)
|
|
||||||
|
|
||||||
self.company_search_completer.setModel(search_items)
|
|
||||||
|
|
||||||
def update_person_data(
|
def update_person_data(
|
||||||
self,
|
self,
|
||||||
ma_id: int | None,
|
ma_id: int | None,
|
||||||
) -> None:
|
) -> None:
|
||||||
# self.reset_form()
|
|
||||||
self.person_search_input.clear()
|
self.person_search_input.clear()
|
||||||
self.person_search_input.addItem(DROPDOWN_DEFAULT, None)
|
self.person_search_input.addItem(DROPDOWN_DEFAULT, None)
|
||||||
search_choices = be_init_rec.contact_person_search_choices(ma_id, True)
|
search_choices = be_init_rec.contact_person_search_choices(ma_id, True)
|
||||||
@@ -1461,24 +1451,27 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
self.person_search_input.addItem(item, db_index)
|
self.person_search_input.addItem(item, db_index)
|
||||||
self.person_search_input.setCurrentIndex(0)
|
self.person_search_input.setCurrentIndex(0)
|
||||||
|
|
||||||
def _selected_company_on_completer(
|
def _selected_company(
|
||||||
self,
|
self,
|
||||||
index: QModelIndex,
|
index: int,
|
||||||
) -> None:
|
) -> None:
|
||||||
ma_id = index.data(Qt.ItemDataRole.UserRole)
|
ma_id = self.company_search_input.itemData(index)
|
||||||
|
if ma_id is None or index == (-1):
|
||||||
|
self._clear_company_fields()
|
||||||
|
return
|
||||||
data = be_init_rec.comp_search_get_info(
|
data = be_init_rec.comp_search_get_info(
|
||||||
ma_id=ma_id,
|
ma_id=ma_id,
|
||||||
)
|
)
|
||||||
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.update_person_data(ma_id)
|
self.update_person_data(ma_id)
|
||||||
|
|
||||||
def _selected_person_on_completer(
|
def _selected_person(
|
||||||
self,
|
self,
|
||||||
index: int,
|
index: int,
|
||||||
) -> None:
|
) -> None:
|
||||||
an_id = self.person_search_input.itemData(index)
|
an_id = self.person_search_input.itemData(index)
|
||||||
if an_id is None:
|
if an_id is None or index == (-1):
|
||||||
self._clear_person_fields()
|
self._clear_person_fields()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -1487,12 +1480,6 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
)
|
)
|
||||||
self.fill_out_person(data)
|
self.fill_out_person(data)
|
||||||
|
|
||||||
def _search_company_change_manually(
|
|
||||||
self,
|
|
||||||
_: str,
|
|
||||||
) -> None:
|
|
||||||
self.company_search_input.setProperty(self.PROPERTY_MA_ID, -1)
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
def reset_form(self) -> None:
|
def reset_form(self) -> None:
|
||||||
reset_form(self.widget_registry)
|
reset_form(self.widget_registry)
|
||||||
@@ -1513,16 +1500,12 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
print("raw_data:\n")
|
print("raw_data:\n")
|
||||||
pprint(raw_data)
|
pprint(raw_data)
|
||||||
# leaf dictionary contains data fields
|
# leaf dictionary contains data fields
|
||||||
data = list(get_leaf_dicts(raw_data))[0]
|
data = tuple(get_leaf_dicts(raw_data))[0]
|
||||||
print("leaf dicts:\n")
|
print("leaf dicts:\n")
|
||||||
pprint(data)
|
pprint(data)
|
||||||
|
|
||||||
ma_id = self.company_search_input.property(self.PROPERTY_MA_ID)
|
self.export_data[self.COMPANY_SEARCH_INPUT_KEY] = data[self.COMPANY_SEARCH_INPUT_KEY]
|
||||||
# # 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.PERSON_SEARCH_INPUT_KEY] = data[self.PERSON_SEARCH_INPUT_KEY]
|
||||||
|
|
||||||
self.export_data[self.CHANNEL_AWARENESS_KEY] = data[self.CHANNEL_AWARENESS_KEY]
|
self.export_data[self.CHANNEL_AWARENESS_KEY] = data[self.CHANNEL_AWARENESS_KEY]
|
||||||
|
|
||||||
print("\nExport data:")
|
print("\nExport data:")
|
||||||
@@ -1542,8 +1525,7 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
comp_info = be_init_rec.comp_search_get_info(
|
comp_info = be_init_rec.comp_search_get_info(
|
||||||
ma_id=ma_id,
|
ma_id=ma_id,
|
||||||
)
|
)
|
||||||
# self.company_search_input.setText(comp_info["ma_unternehmensname"])
|
set_widget_value(self.company_search_input, ma_id)
|
||||||
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[self.PERSON_SEARCH_INPUT_KEY]
|
an_id = data[self.PERSON_SEARCH_INPUT_KEY]
|
||||||
@@ -1551,10 +1533,6 @@ class Grunderfassung_Suche(CustomWidget):
|
|||||||
an_id=an_id,
|
an_id=an_id,
|
||||||
)
|
)
|
||||||
set_widget_value(self.person_search_input, an_id)
|
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)
|
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_KEY]
|
value = data[self.CHANNEL_AWARENESS_KEY]
|
||||||
@@ -2477,9 +2455,10 @@ CUSTOM_WIDGETS: Final[dict[str, type[CustomWidget]]] = {
|
|||||||
FORM_FIELDS_SEARCH_HEAD = [
|
FORM_FIELDS_SEARCH_HEAD = [
|
||||||
FormField(
|
FormField(
|
||||||
"Suche",
|
"Suche",
|
||||||
FormFieldType.TEXT_SEARCH,
|
FormFieldType.EXTENDED_DROPDOWN,
|
||||||
required=True,
|
required=True,
|
||||||
key="kontaktliste_un_suche",
|
key="kontaktliste_un_suche",
|
||||||
|
placeholder="Suche...",
|
||||||
),
|
),
|
||||||
FormField(
|
FormField(
|
||||||
"Name Unternehmen/Netzwerkpartner",
|
"Name Unternehmen/Netzwerkpartner",
|
||||||
@@ -2527,6 +2506,7 @@ FORM_FIELDS_SEARCH_HEAD = [
|
|||||||
required=True,
|
required=True,
|
||||||
key="kontaktliste_person_suche",
|
key="kontaktliste_person_suche",
|
||||||
info="ma_ort",
|
info="ma_ort",
|
||||||
|
placeholder="Suche...",
|
||||||
),
|
),
|
||||||
FormField(
|
FormField(
|
||||||
"Titel",
|
"Titel",
|
||||||
|
|||||||
Reference in New Issue
Block a user