adapted linking dialog for consulting sessions

This commit is contained in:
2026-07-28 12:14:51 +02:00
parent 07c2bd92da
commit 02d94c4a80
6 changed files with 247 additions and 278 deletions
+41 -57
View File
@@ -872,23 +872,18 @@ def page_consulting_from_db(
# // consulting page interaction
# TODO change to correct logic
def page_consulting_linking_companies(
un_id: RecId | None,
) -> list[LinkingConsultationsEntryCompany]:
raise RuntimeError("TODOs to implement")
with db.ENGINE.connect() as conn:
q_relevant_companies = sa.select(
db.t_unternehmen.c.un_id,
db.t_unternehmen.c.Partnersuche__un_suche,
).where(
db.t_unternehmen.c.geloescht.is_(None),
db.t_unternehmen.c.Partnersuche__un_suche.is_not(None),
)
if un_id is not None:
q_relevant_companies = q_relevant_companies.where(
db.grunderfassung_unternehmen.c.un_id == un_id
db.t_unternehmen.c.un_id == un_id
)
q_relevant_companies = q_relevant_companies.subquery("relevant_companies")
@@ -899,8 +894,7 @@ def page_consulting_linking_companies(
).select_from(
q_relevant_companies.join(
db.t_ext_crm_master_attach,
q_relevant_companies.c.Partnersuche__un_suche
== db.t_ext_crm_master_attach.c.ma_id,
q_relevant_companies.c.un_id == db.t_ext_crm_master_attach.c.ma_id,
)
)
@@ -923,57 +917,49 @@ def page_consulting_linking_companies(
return linking_entries
def page_consulting_linking_persons(
un_id: RecId | None,
) -> list[LinkingConsultationsEntryPerson]:
raise RuntimeError("TODOs to implement")
def page_consulting_linking_persons() -> list[LinkingConsultationsEntryPerson]:
with db.ENGINE.connect() as conn:
# if un_id None: list all persons
# else: list just the persons associated with the company
person_select = sa.select(
db.t_grunderfassung_personen.c.pers_id,
db.t_grunderfassung_personen.c.Stammdaten__name,
db.t_grunderfassung_personen.c.Stammdaten__vorname,
db.t_grunderfassung_personen.c.Stammdaten__ort,
)
if un_id is not None:
person_select = person_select.select_from(
db.t_grunderfassung_personen.join(
db.t_zuordnung_personen_unternehmen,
db.t_grunderfassung_personen.c.pers_id
== db.t_zuordnung_personen_unternehmen.c.pers_id,
)
).where(db.t_zuordnung_personen_unternehmen.c.un_id == un_id)
ret = conn.execute(person_select)
person_names = ret.mappings().all()
if not person_names:
logger.warning(f"No persons found for 'un_id': {un_id}")
return []
logger.debug("[Page Consulting -- Linking] Retrieved person names:\n%s", person_names)
linking_entries: list[LinkingConsultationsEntryPerson] = []
for entry in person_names:
first_name = entry["Stammdaten__vorname"]
last_name = entry["Stammdaten__name"]
location_city = entry["Stammdaten__ort"]
display_name = f"{first_name} {last_name}"
if location_city:
display_name += f" (Ort: {location_city})"
linking_entries.append(
LinkingConsultationsEntryPerson(
pers_id=entry["pers_id"],
display_name=display_name,
stmt = (
sa.select(
db.t_grunderfassung_personen.c.pers_id,
db.t_zuordnung_personen_unternehmen.c.un_id,
db.t_grunderfassung_personen.c.Stammdaten__name,
db.t_grunderfassung_personen.c.Stammdaten__vorname,
db.t_grunderfassung_personen.c.Stammdaten__ort,
)
.outerjoin(
db.t_zuordnung_personen_unternehmen,
db.t_grunderfassung_personen.c.pers_id
== db.t_zuordnung_personen_unternehmen.c.pers_id,
)
.order_by(db.t_grunderfassung_personen.c.Stammdaten__name)
)
return linking_entries
ret = conn.execute(stmt)
persons_map: dict[str, LinkingConsultationsEntryPerson] = {}
for row in ret:
p_id = row.pers_id
if p_id not in persons_map:
first_name = row.Stammdaten__vorname
last_name = row.Stammdaten__name
location_city = row.Stammdaten__ort
display_name = f"{first_name} {last_name}"
if location_city:
display_name += f" (Ort: {location_city})"
persons_map[p_id] = LinkingConsultationsEntryPerson(
pers_id=p_id,
un_ids=set(),
display_name=display_name,
)
if row.un_id is not None:
persons_map[p_id].un_ids.add(row.un_id)
return list(persons_map.values())
# TODO wrap result
@@ -982,8 +968,6 @@ def page_consulting_eastablish_link(
un_id: RecId | None,
pers_id: RecId | None,
) -> None:
raise RuntimeError("TODOs to implement")
stmt = (
sa.update(db.t_beratung_vorgang)
.where(db.t_beratung_vorgang.c.vorgang_id == vorgang_id)
+1 -69
View File
@@ -124,36 +124,6 @@ class Module(WrapperModule, Protocol):
def save_data(self) -> None: ...
# TODO check removal
# class AutoFormInsert(Protocol):
# def __call__(
# self,
# data: dict[str, Any],
# ) -> RecId: ...
# class AutoFormUpdate(Protocol):
# def __call__(
# self,
# id_: int,
# data: dict[str, Any],
# ) -> None: ...
# class AutoFormGet(Protocol):
# def __call__(
# self,
# id_: int,
# ) -> dict[str, Any]: ...
# class AutoFormDelete(Protocol):
# def __call__(
# self,
# id_: int,
# ) -> None: ...
class InitRecFormToDb(Protocol):
def __call__(
self,
@@ -222,24 +192,6 @@ class Page_NewEntry_State(PageState[Module]):
session: Session
# TODO check removal
# INITREC_REC_TO_ENTITIES: Final[dict[RecordingType, frozenset[EntityType]]] = {
# RecordingType.WITH_COMPANY: frozenset(
# (
# EntityType.METADATA,
# EntityType.COMPANY,
# EntityType.PERSON,
# )
# ),
# RecordingType.WITHOUT_COMPANY: frozenset(
# (
# EntityType.METADATA,
# EntityType.PERSON,
# )
# ),
# }
@dc.dataclass(slots=True, kw_only=True)
class Page_InitRec_Form_Data:
metadata: dict[str, Any]
@@ -260,11 +212,8 @@ class Page_InitRec_State(PageState["InitRecForm"]):
initrec_form_states: dict[EntityType, Page_InitRec_Form_State] = dc.field(
init=False, default_factory=dict
)
# pydantic_models: dict[RecordingType, type[FlatBaseModel]] = dc.field(default_factory=dict)
def __post_init__(self) -> None:
# TODO check removal
# relevant_entities = INITREC_REC_TO_ENTITIES[self.recording_type]
relevant_entities = frozenset(
(
EntityType.METADATA,
@@ -306,24 +255,6 @@ class Page_InitRec_Form_State(PageState[Module]):
geloescht: bool = False
# TODO remove
# @dc.dataclass(slots=True, kw_only=True)
# class Page_InitRecCompany_State(PageState[Module]):
# session: Session
# ids: EntityIds
# # un_id: RecId | None = None
# locked: bool
# @dc.dataclass(slots=True, kw_only=True)
# class Page_InitRecPerson_State(PageState[Module]):
# session: Session
# ids: EntityIds
# # pers_id: RecId | None = None
# # un_id: RecId | None = None
# locked: bool
@dc.dataclass(slots=True, kw_only=True)
class Page_Consulting_State(PageState[Module]):
session: Session
@@ -345,6 +276,7 @@ class Page_Consulting_Linking_State(PageState[Module]):
un_id: RecId | None = None
pers_id: RecId | None = None
beratungs_typ: ConsultingType
filter_un_ids: set[RecId] | None = None
@dc.dataclass(slots=True, kw_only=True)
+128 -146
View File
@@ -2907,9 +2907,9 @@ class Page_NewEntry(QWidget):
back_requested = Signal() # Signal back button
# TODO re-enable with correct settings
# company_requested = Signal(Page_InitRecCompany_State) # Signal "Unternehmen"
# person_requested = Signal(Page_InitRecPerson_State) # Signal "Individualperson"
consulting_requested = Signal(Page_Consulting_State) # Signal "Beratungsgespräch"
# company_requested = Signal(Page_InitRec_State) # Signal "Unternehmen"
# person_requested = Signal(Page_InitRec_State) # Signal "Individualperson"
new_consulting_requested = Signal(Page_Consulting_State) # Signal "Beratungsgespräch"
new_initrec_requested = Signal(Page_InitRec_State) # TODO: rename
def __init__(
@@ -2919,75 +2919,101 @@ class Page_NewEntry(QWidget):
super().__init__()
self.STATE = state
layout = QVBoxLayout(self)
layout.setAlignment(Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignLeft)
outer_layout = QHBoxLayout(self)
layout_container = QWidget()
layout_container.setMinimumWidth(700)
layout_container.setMaximumWidth(1000)
layout = QVBoxLayout(layout_container)
outer_layout.addStretch(1)
outer_layout.addWidget(layout_container, stretch=100)
# outer_layout.addWidget(scroll_area, stretch=100)
outer_layout.addStretch(1)
outer_layout.setAlignment(Qt.AlignmentFlag.AlignTop)
# Zurück-Button
back_btn = QPushButton("← Zurück zur Übersicht")
back_btn.setFixedWidth(200)
back_btn.clicked.connect(lambda: self.back_requested.emit())
# Platzhalter für die Details
self.title_label = QLabel("Wählen Sie den Typ der Grunderfassung")
self.title_label.setStyleSheet(
"font-size: 24px; font-weight: bold; margin-top: 20px;"
)
title_initrec = QLabel("Grunderfassung anlegen")
title_initrec.setStyleSheet(
"font-size: 16px; font-weight: bold; margin-top: 20px; margin-bottom: 5px;"
)
btn_company = QPushButton("Unternehmen →")
btn_company.setFixedWidth(300)
btn_company.setFixedHeight(40)
btn_company.clicked.connect(self._request_initrec_company)
btn_person = QPushButton("Individualperson →")
btn_person.setFixedWidth(300)
btn_person.setFixedHeight(40)
btn_person.clicked.connect(self._request_initrec_person)
title_consulting = QLabel("Beratung durchführen")
title_consulting.setStyleSheet(
"font-size: 16px; font-weight: bold; margin-top: 20px; margin-bottom: 5px;"
)
btn_consulting = QPushButton("Beratungsgespräch →")
btn_consulting.setFixedWidth(300)
btn_consulting.setFixedHeight(40)
btn_consulting.clicked.connect(self._request_consulting)
btn_newinitrec = QPushButton("NEUE GRUNDERFASSUNG →")
btn_newinitrec.setFixedWidth(300)
btn_newinitrec.setFixedHeight(40)
btn_newinitrec.clicked.connect(self._request_new_initrec)
# TODO check removal
# btn_newinitrec = QPushButton("NEUE GRUNDERFASSUNG →")
# btn_newinitrec.setFixedWidth(300)
# btn_newinitrec.setFixedHeight(40)
# btn_newinitrec.clicked.connect(self._debug_request_new_initrec)
layout.addWidget(back_btn)
layout.addSpacing(15)
layout.addWidget(self.title_label)
layout.addSpacing(20)
layout.addWidget(btn_newinitrec)
layout.addSpacing(20)
# layout.addSpacing(20)
# layout.addWidget(btn_newinitrec)
# layout.addSpacing(20)
layout.addWidget(title_initrec)
layout.addWidget(btn_company)
layout.addWidget(btn_person)
layout.addSpacing(10)
layout.addWidget(title_consulting)
layout.addWidget(btn_consulting)
# TODO configure correctly
def _request_initrec_company(self) -> None:
logger_gui.debug("[Page -- NewEntry] Call for company...")
# ids = EntityIds(type=RecordingType.COMPANY)
# req_state = Page_InitRecCompany_State(
# session=self.STATE.session,
# ids=ids,
# # un_id=None, # TODO remove
# locked=False,
# )
# logger_gui.debug("[Page -- InitRec] State to call: %s", req_state)
# self.company_requested.emit(req_state)
logger_gui.debug("[Page -- NewEntry] Call for person...")
req_state = Page_InitRec_State(
session=self.STATE.session,
recording_type=RecordingType.WITH_COMPANY,
form_data=Page_InitRec_Form_Data(metadata={}, person={}, company={}),
locked=False,
)
logger_gui.debug("[Page -- NewEntry] State to call (IDs): %s", req_state.ids)
self.new_initrec_requested.emit(req_state)
def _request_initrec_person(self) -> None:
logger_gui.debug("[Page -- NewEntry] Call for person...")
# ids = EntityIds(type=RecordingType.PERSON)
# req_state = Page_InitRecPerson_State(
# session=self.STATE.session,
# ids=ids,
# # pers_id=None, # TODO remove
# locked=False,
# )
# logger_gui.debug("[Page -- InitRec] State to call: %s", req_state)
# self.person_requested.emit(req_state)
req_state = Page_InitRec_State(
session=self.STATE.session,
recording_type=RecordingType.WITHOUT_COMPANY,
form_data=Page_InitRec_Form_Data(metadata={}, person={}, company={}),
locked=False,
)
logger_gui.debug("[Page -- NewEntry] State to call (IDs): %s", req_state.ids)
self.new_initrec_requested.emit(req_state)
def _debug_request_new_initrec(self) -> None:
req_state = Page_InitRec_State(
session=self.STATE.session,
recording_type=RecordingType.WITH_COMPANY,
form_data=Page_InitRec_Form_Data(metadata={}, person={}, company={}),
locked=False,
)
logger_gui.debug("[Page -- NewEntry] State to call (IDs): %s", req_state.ids)
self.new_initrec_requested.emit(req_state)
def _request_consulting(self) -> None:
req_state = Page_Consulting_State(
@@ -2997,17 +3023,7 @@ class Page_NewEntry(QWidget):
locked=False,
)
logger_gui.debug("[Page -- InitRec] State to call: %s", req_state)
self.consulting_requested.emit(req_state)
def _request_new_initrec(self) -> None:
req_state = Page_InitRec_State(
session=self.STATE.session,
recording_type=RecordingType.WITH_COMPANY,
form_data=Page_InitRec_Form_Data(metadata={}, person={}, company={}),
locked=False,
)
logger_gui.debug("[Page -- NewInitRec] State to call (IDs): %s", req_state.ids)
self.new_initrec_requested.emit(req_state)
self.new_consulting_requested.emit(req_state)
def _sync_state_to_GUI(self) -> None:
pass
@@ -5177,46 +5193,14 @@ class Page_Consulting_LinkingDialog(QDialog):
parent: QWidget | None = None,
):
super().__init__(parent)
# State and data
self.STATE = state
self.all_companies = backend.page_consulting_linking_companies(None)
self.all_persons = backend.page_consulting_linking_persons()
self.setWindowTitle("Beziehung verknüpfen")
self.resize(700, 450)
# firmen_aus_db = [{"id": 1, "name": "Siemens AG"}, {"id": 2, "name": "Bosch GmbH"}]
# personen_aus_db = [
# {
# "id": 50,
# "name": "Max Mustermann",
# "unternehmen_id": 1,
# "firma_name": "Siemens AG",
# },
# {
# "id": 51,
# "name": "Erika Muster",
# "unternehmen_id": 1,
# "firma_name": "Siemens AG",
# },
# {
# "id": 52,
# "name": "Peter Müller",
# "unternehmen_id": 2,
# "firma_name": "Bosch GmbH",
# },
# {
# "id": 53,
# "name": "Freiberufler Frank",
# "unternehmen_id": None,
# "firma_name": None,
# },
# ]
# self.all_unternehmen = firmen_aus_db
# self.all_personen = personen_aus_db
# # Rückgabewerte
# self.gewaehltes_unternehmen = None
# self.gewaehlte_person = None
# --- UI LAYOUT ---
main_layout = QVBoxLayout(self)
column_layout = QHBoxLayout()
@@ -5241,7 +5225,7 @@ class Page_Consulting_LinkingDialog(QDialog):
column_layout.addLayout(self.vbox_persons)
main_layout.addLayout(column_layout)
# Unten: OK / Abbrechen Buttons
# OK / Cancel buttons
self.button_box = QDialogButtonBox(
QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel
)
@@ -5251,10 +5235,7 @@ class Page_Consulting_LinkingDialog(QDialog):
self.button_box.button(QDialogButtonBox.StandardButton.Cancel).setText("Abbrechen")
main_layout.addWidget(self.button_box)
# initial loading
# self._load_companies()
# self._load_persons()
# TODO check removal
# list_style = """
# QListWidget::item:selected {
# background-color: #0078D4; /* Blau, wenn die Liste aktiv fokussiert ist */
@@ -5305,20 +5286,28 @@ class Page_Consulting_LinkingDialog(QDialog):
def _sync_state_to_GUI(
self,
reset: bool,
section: Literal["person_selection", "validation"] | None = None,
section: Literal["person_selection", "company_selection", "validation"] | None = None,
) -> None:
if reset:
self._reset()
self._load_companies()
self._load_companies_to_list(None)
self._load_persons_to_list(None)
if section is None or section == "person_selection":
if self.STATE.beratungs_typ is ConsultingType.PAUSCHAL:
self._enable_person_selection(False)
elif self.STATE.beratungs_typ is ConsultingType.INDIVIDUAL:
self._enable_person_selection(True)
self.list_persons.blockSignals(True)
self._load_persons(self.STATE.un_id)
self.list_persons.blockSignals(False)
if not self.list_persons.selectedItems():
self.list_persons.blockSignals(True)
self._load_persons_to_list(self.STATE.un_id)
self.list_persons.blockSignals(False)
if section is None or section == "company_selection":
if not self.list_companies.selectedItems():
self.list_companies.blockSignals(True)
self._load_companies_to_list(self.STATE.filter_un_ids)
self.list_companies.blockSignals(False)
if section is None or section == "validation":
self._validate()
@@ -5341,31 +5330,49 @@ class Page_Consulting_LinkingDialog(QDialog):
else:
self.ok_btn.setEnabled(False)
def _load_companies(self) -> None:
def _reload_all_companies(self) -> None:
self.all_companies = backend.page_consulting_linking_companies(None)
def _reload_all_persons(self) -> None:
self.all_persons = backend.page_consulting_linking_persons()
def _load_companies_to_list(
self,
un_ids: set[RecId] | None,
) -> None:
# search_text = self.suche_firma.text().strip().lower()
self.list_companies.clear()
companies = backend.page_consulting_linking_companies(un_id=self.STATE.un_id)
# TODO check reload of companies
# companies = backend.page_consulting_linking_companies(None)
logger_page_consulting.debug(
"[Page Consulting -- Linking] Retrieved company entries:\n%s", companies
"[Page Consulting -- Linking] Retrieved company entries:\n%s", self.all_companies
)
for company in companies:
for company in self.all_companies:
if un_ids and company.un_id not in un_ids:
continue
item = QListWidgetItem(company.display_name)
item.setData(Qt.ItemDataRole.UserRole, company)
self.list_companies.addItem(item)
def _load_persons(
def _load_persons_to_list(
self,
un_id: RecId | None,
) -> None:
"""Lädt Personen. Wenn firma_id übergeben wird, wird gefiltert."""
self.list_persons.clear()
persons = backend.page_consulting_linking_persons(un_id)
# TODO check reload of persons
# persons = backend.page_consulting_linking_persons()
logger_page_consulting.debug(
"[Page Consulting -- Linking] Retrieved person entries:\n%s", persons
"[Page Consulting -- Linking] Retrieved person entries:\n%s", self.all_persons
)
for person in persons:
for person in self.all_persons:
if un_id and un_id not in person.un_ids:
continue
item = QListWidgetItem(person.display_name)
item.setData(Qt.ItemDataRole.UserRole, person)
self.list_persons.addItem(item)
@@ -5386,10 +5393,6 @@ class Page_Consulting_LinkingDialog(QDialog):
pformat(self.STATE),
)
self._sync_state_to_GUI(reset=False)
# if self.STATE.beratungs_typ is ConsultingType.INDIVIDUAL:
# self.list_persons.blockSignals(True)
# self._load_persons(un_id=self.STATE.un_id)
# self.list_persons.blockSignals(False)
def _person_selected(self) -> None:
items = self.list_persons.selectedItems()
@@ -5400,29 +5403,29 @@ class Page_Consulting_LinkingDialog(QDialog):
"LinkingConsultationsEntryPerson", items[0].data(Qt.ItemDataRole.UserRole)
)
self.STATE.pers_id = person.pers_id
self._sync_state_to_GUI(reset=False, section="validation")
# TODO this backlink is a really good idea and should be implemented
# if person["unternehmen_id"]:
# self.list_companies.blockSignals(True)
#
# for i in range(self.list_companies.count()):
# item = self.list_companies.item(i)
# firma_data = item.data(Qt.ItemDataRole.UserRole)
# if firma_data["id"] == person["unternehmen_id"]:
# item.setSelected(True)
# self.gewaehltes_unternehmen = firma_data
# break
# self.list_companies.blockSignals(False)
if person.un_ids:
self.STATE.filter_un_ids = person.un_ids
else:
self.STATE.filter_un_ids = None
self._sync_state_to_GUI(reset=False)
def _clear_company_selection(self) -> None:
logger_page_consulting.debug(
"[Page Consulting -- Linking] Clear company selection...",
)
self.list_companies.clearSelection()
self.STATE.un_id = None
self._sync_state_to_GUI(reset=False)
def _clear_person_selection(self) -> None:
logger_page_consulting.debug(
"[Page Consulting -- Linking] Clear person selection...",
)
self.list_persons.clearSelection()
self.STATE.pers_id = None
self.STATE.filter_un_ids = None
self._sync_state_to_GUI(reset=False)
def get_state(self) -> Page_Consulting_Linking_State:
@@ -6220,8 +6223,8 @@ class MainWindow(QMainWindow):
self.new_entry_select.back_requested.connect(self.show_main_page)
# self.new_initrec_select.company_requested.connect(self.show_page_initrec_company)
# self.new_initrec_select.person_requested.connect(self.show_page_initrec_person)
self.new_entry_select.consulting_requested.connect(self.show_page_consulting)
self.new_entry_select.new_initrec_requested.connect(self.show_page_newinitrec)
self.new_entry_select.new_consulting_requested.connect(self.show_page_consulting)
self.new_entry_select.new_initrec_requested.connect(self.show_page_initrec)
self.stack.addWidget(self.new_entry_select)
# SITE: 'Grunderfassung'
@@ -6232,35 +6235,13 @@ class MainWindow(QMainWindow):
form_data=Page_InitRec_Form_Data(metadata={}, person={}, company={}),
locked=False,
)
self.newinitrec = Page_InitRec(newinitrec_state)
self.newinitrec.back_main_requested.connect(self.show_main_page)
self.newinitrec.back_requested.connect(self.simple_go_back)
self.newinitrec.company_profile_requested.connect(self.show_page_company_profile)
self.initrec = Page_InitRec(newinitrec_state)
self.initrec.back_main_requested.connect(self.show_main_page)
self.initrec.back_requested.connect(self.simple_go_back)
self.initrec.company_profile_requested.connect(self.show_page_company_profile)
# self.newinitrec.update_triggered.connect(self.update_grid)
self.stack.addWidget(self.newinitrec)
self.stack.addWidget(self.initrec)
# SITE: 'Grunderfassung Unternehmen'
# ids = EntityIds(type=RecordingType.COMPANY)
# initrec_company_state = Page_InitRecCompany_State(
# session=self.STATE.session, ids=ids, locked=False
# )
# self.initrec_company = Page_InitRecCompany(initrec_company_state)
# self.initrec_company.back_main_requested.connect(self.show_main_page)
# self.initrec_company.back_requested.connect(self.simple_go_back)
# self.initrec_company.update_main_page.connect(self.update_grid)
# self.initrec_company.initrec_person_requested.connect(self.show_page_initrec_person)
# self.initrec_company.company_profile_requested.connect(self.show_page_company_profile)
# self.stack.addWidget(self.initrec_company)
# SITE: 'Grunderfassung Person'
# ids = EntityIds(type=RecordingType.PERSON)
# initrec_person_state = Page_InitRecPerson_State(
# session=self.STATE.session, ids=ids, locked=False
# )
# self.initrec_person = Page_InitRecPerson(initrec_person_state)
# self.initrec_person.back_main_requested.connect(self.show_main_page)
# self.initrec_person.back_requested.connect(self.simple_go_back)
# self.initrec_person.update_triggered.connect(self.update_grid)
# self.stack.addWidget(self.initrec_person)
# SITE: 'Unternehmensprofil'
comp_profile_state = Page_CompanyProfile_State(session=self.STATE.session)
self.company_profile = Page_CompanyProfile(comp_profile_state)
@@ -6270,6 +6251,7 @@ class MainWindow(QMainWindow):
self.company_profile.back_requested.connect(self.simple_go_back)
self.company_profile.consulting_requested.connect(self.show_page_consulting)
self.stack.addWidget(self.company_profile)
# SITE: 'Beratungsgespräch'
self.consulting_page = Page_Consulting(self.STATE.session)
self.consulting_page.back_main_requested.connect(self.show_main_page)
@@ -6452,12 +6434,12 @@ class MainWindow(QMainWindow):
def show_new_entry_select(self):
self._navigate_to_target(self.new_entry_select)
def show_page_newinitrec(
def show_page_initrec(
self,
new_state: Page_InitRec_State,
):
self.newinitrec.load_state(new_state)
self._navigate_to_target(self.newinitrec)
self.initrec.load_state(new_state)
self._navigate_to_target(self.initrec)
# def show_page_initrec_company(
# self,
+1 -1
View File
@@ -41,7 +41,7 @@ logger_custom_fields = logger_gui.getChild("custom_fields")
logger_custom_fields.setLevel(logging.WARNING)
logger_page_consulting = logger_gui.getChild("page_consulting")
logger_page_consulting.setLevel(logging.WARNING)
logger_page_consulting.setLevel(logging.DEBUG)
logger_page_initrec = logger_gui.getChild("page_initrec")
logger_page_initrec.setLevel(logging.DEBUG)
+1
View File
@@ -273,4 +273,5 @@ class LinkingConsultationsEntryCompany:
@dc.dataclass(slots=True)
class LinkingConsultationsEntryPerson:
pers_id: RecId
un_ids: set[RecId]
display_name: str