# -*- coding: utf-8 -*- # hub/ticket/ui/dialogs/acceptance_dialog.py """UI-диалог акта приёмки Ticket.""" from __future__ import annotations from gui.containers import SContainer from domain import TicketTaskSnapshot from .base_document_dialog import BaseDocumentDialog class AcceptanceDialog(BaseDocumentDialog): """Диалог подписания акта приёмки.""" def __init__( self, task: TicketTaskSnapshot, parent=None, ): self._work_description = None self._executor_signature = None self._customer_signature = None super().__init__( task=task, title="Акт приёмки", submit_text="Подписать акт", parent=parent, ) def build_payload(self) -> dict[str, str]: return { "work_description": self._work_description.get_text().strip(), "executor_signature": self._executor_signature.get_text().strip(), "customer_signature": self._customer_signature.get_text().strip(), } def _is_ready(self) -> bool: payload = self.build_payload() return bool( payload["work_description"] and payload["executor_signature"] and payload["customer_signature"] ) def _build_form(self, container: SContainer) -> None: work_description_shell = SContainer( height_percent=40, orientation="v", spacing=6, content_fit=False, ) self._work_description = self._populate_text_block( work_description_shell, "Описание выполненных работ", "Опишите объём работ, который передаётся заказчику.", ) container.add_widget(work_description_shell) executor_signature_shell = SContainer( height_percent=23, orientation="v", spacing=6, content_fit=False, ) self._executor_signature = self._populate_text_block( executor_signature_shell, "Исполнитель", "Укажите ФИО и должность исполнителя.", ) container.add_widget(executor_signature_shell) customer_signature_shell = SContainer( height_percent=23, orientation="v", spacing=6, content_fit=False, ) self._customer_signature = self._populate_text_block( customer_signature_shell, "Заказчик", "Укажите ФИО и должность представителя заказчика.", ) container.add_widget(customer_signature_shell) self._refresh_submit_state()