Add Dispatch_V0.1.1
This commit is contained in:
86
Dispatch_V0.1.1/ui/dialogs/acceptance_dialog.py
Normal file
86
Dispatch_V0.1.1/ui/dialogs/acceptance_dialog.py
Normal file
@@ -0,0 +1,86 @@
|
||||
# -*- 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()
|
||||
Reference in New Issue
Block a user