34 lines
2.4 KiB
Python
34 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
||
# gui/components/model_view/_mv_zones.py
|
||
# Управление зонами — тонкая композиция подмиксинов
|
||
|
||
from gui.components.model_view._mv_zones_crud import ZoneCrudMixin
|
||
from gui.components.model_view._mv_zones_visual import ZoneVisualMixin
|
||
from gui.components.model_view._mv_zones_highlight import ZoneHighlightMixin
|
||
|
||
|
||
class ZoneManagementMixin(ZoneCrudMixin, ZoneVisualMixin, ZoneHighlightMixin):
|
||
"""Добавление/обновление/удаление зон в 3D-сцене."""
|
||
pass
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# Module workflow notes
|
||
# ---------------------------------------------------------------------------
|
||
# 1) Задача модуля:
|
||
# Композиционный фасад подсистемы зон.
|
||
#
|
||
# 2) Последовательность действий и вызовов:
|
||
# A. Композиционный класс ZoneManagementMixin:
|
||
# Назначение: объединяет поведение через ZoneCrudMixin, ZoneVisualMixin, ZoneHighlightMixin.
|
||
# Собственная вычислительная логика отсутствует; маршрутизация идёт в родительские миксины.
|
||
#
|
||
# 3) Важные ограничения и инварианты:
|
||
# - Модуль выполняется в составе ModelViewWidget и использует согласованные поля состояния self._... .
|
||
# - Межмодульная связность: только через фасад model_view; прямые обращения между zone, rack, shelf, cell запрещены.
|
||
# - Очистка состояния должна быть идемпотентной: повторный вызов не меняет корректное состояние в ошибочное.
|
||
#
|
||
# 4) Правило сопровождения:
|
||
# - Любое изменение сценария должно сопровождаться обновлением этого блока с сохранением фактического порядка вызовов.
|
||
# - При добавлении метода указывать его место в цепочке сценария (запуск, основной шаг, завершение, вспомогательная логика).
|