prepare document selection widget

This commit is contained in:
2026-07-30 15:05:56 +02:00
parent b635e7eb75
commit 07ae18271e
9 changed files with 501 additions and 27 deletions
+21 -6
View File
@@ -3256,7 +3256,7 @@ class Page_InitRec(QWidget):
self.modify_btn.modify_activated.connect(self.unlock)
self.modify_btn.modify_deactivated.connect(self.lock)
self.save_btn.clicked.connect(self.save_data)
self.reset_btn.clicked.connect(self._reset)
self.reset_btn.clicked.connect(self._trigger_reset_btn)
self.delete_btn.clicked.connect(self._delete_data)
header_layout.addSpacing(5)
header_layout.addWidget(self.edit_buttons)
@@ -3477,6 +3477,21 @@ class Page_InitRec(QWidget):
)
return all(valid_id_states)
def _trigger_reset_btn(self) -> None:
assert not self.STATE.locked, "reset initialised, even though form is locked"
confirm = get_user_confirmation(
self,
"Zurücksetzen bestätigen",
(
"Soll der Eintrag wirklich zurückgesetzt werden? Alle nicht "
"gespeicherten Änderungen gehen verloren."
),
)
if not confirm:
return
self._sync_state_to_GUI(None)
def _delete_data(self) -> None:
assert self._deletion_valid(), "deletion initialised despite IDs are not properly set"
confirm = get_user_confirmation(
@@ -3525,7 +3540,6 @@ class Page_InitRec(QWidget):
return
# TODO add loading logic with backend call
# !! just a dummy
initrec = backend.page_initrec_from_db(ids)
# TODO re-enable later
@@ -4589,6 +4603,7 @@ class Page_Consulting(QWidget):
container_layout.addWidget(self.info_banners_container)
# --- BUTTONS ---
# TODO check if no reset button is correct
self.edit_buttons = EditButtons(add_modify_btn=True, add_reset_btn=False)
modify_btn = self.edit_buttons.modify_button
assert modify_btn
@@ -6165,7 +6180,7 @@ class EditButtons(QWidget):
self.save_btn.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
layout_btn.addWidget(self.save_btn)
# reset
self.reset_button: QPushButton | None = None
self.reset_btn: QPushButton | None = None
if add_reset_btn:
self.reset_btn = QPushButton("Zurücksetzen (Strg + Z)")
self.reset_btn.setShortcut("Ctrl+Z")
@@ -6185,12 +6200,15 @@ class EditButtons(QWidget):
self,
enable_modification: bool,
set_delete_btn: bool = True,
set_reset_btn: bool = True,
) -> None:
if self.modify_button is not None:
self.modify_button.set_modify_state(enable_modification)
self.save_btn.setEnabled(enable_modification)
if set_delete_btn:
self.delete_btn.setEnabled(enable_modification)
if self.reset_btn is not None and set_reset_btn:
self.reset_btn.setEnabled(enable_modification)
class MainWindow(QMainWindow):
@@ -6220,8 +6238,6 @@ class MainWindow(QMainWindow):
new_initrec_select_state = Page_NewEntry_State(session=self.STATE.session)
self.new_entry_select = Page_NewEntry(new_initrec_select_state)
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.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)
@@ -6504,7 +6520,6 @@ def qt_message_handler(mode, context, message):
if TYPE_CHECKING:
# TODO add all relevant modules
# enable static type checking for the protocol
_m1: type[Module] = Page_Consulting
_m2: type[Module] = Page_Consulting_Table