Files
public/directive_layer/README.md

146 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Слой директив (Directive Layer)
**name:** `directive_layer`
**version:** 19.0.1.0.0
**author:** Mk.Lab
---
## 1. Общее описание
**Директива** — это структурированное задание, которое система Odoo автоматически создаёт и назначает исполнителю при наступлении бизнес-события. Директива несёт в себе информацию о типе работ, ответственных ролях, дедлайне, трудоёмкости и ожидаемом результате.
---
## 2. Установка
1. Убедитесь, что установлен модуль `base_user_role`
2. Скопируйте папку `directive_layer` в директорию `addons`
3. Перезапустите сервер Odoo
4. Перейдите в **Настройки → Приложения → Обновить список**
5. Найдите **«Directive Layer»** и нажмите **Установить**
После установки автоматически создаются 7 стадий заданий.
## 3. Функциональность
- Автоматическое создание заданий при наступлении событий в системе
- Три типа исполнителей: человек, программный агент, оборудование
- Статусная машина с контролируемыми переходами между стадиями
- Визуальные светофоры для контроля состояния исполнителя и ресурсов
- Шаблоны и группы шаблонов для быстрого создания пакетов заданий
- Настройка правил автоматической генерации без программирования
- Рабочий стол исполнителя — полноэкранный дашборд для работы с заданиями
---
---
## 4. Роли пользователей
| Роль | Что может делать |
|---|---|
| Исполнитель | Видит свои задания, берёт в работу, завершает |
| Заявитель | Создаёт и отслеживает задания |
| Диспетчер | Назначает исполнителей, управляет очередью |
При назначении роли **Исполнителя** система автоматически устанавливает «Рабочий стол исполнителя» домашней страницей пользователя.
---
## 5. Жизненный цикл директивы
```
Черновик
↓ подтверждение
Подтверждена
↓ планирование
Запланирована
↓ старт
В работе ←→ На паузе
↓ завершение
Выполнена
```
При завершении задания система автоматически уведомляет объект-источник (задачу, заказ и т.д.) о результате.
---
## Как это выглядит в интерфейсе
### На форме объекта (задача, заказ, счёт...)
После подключения к объекту на его форме появляются три элемента:
**Кнопка «Выбрать тип»** в шапке формы — позволяет выбрать группу шаблонов заданий для данного объекта.
**Кнопка «Директивы»** — показывает количество заданий, связанных с записью. Нажмите, чтобы открыть список.
**Поле «Текущий статус исполнения»** — автоматически вычисляемый текст с наиболее приоритетным активным заданием, ближайшим дедлайном и ожидаемой датой завершения.
![img_1.png](img_1.png)
---
### Рабочий стол исполнителя по задачам
Полноэкранный канбан-дашборд для пользователей с ролью «Исполнитель». Показывает только задания, назначенные текущему пользователю, сгруппированные по стадиям.
![img_2.png](img_2.png)
---
### Меню «Директивы»
В главном меню появляется раздел **Директивы** с двумя пунктами:
- **Все директивы** — список всех заданий в системе (канбан и список)
- **Политики** — правила автоматического создания заданий без программирования
В подразделе **Директивы → Настройки** доступны справочники:
- **Шаблоны директив** — словарь шаблонов с типом работ, трудоёмкостью и ролями
- **Группы шаблонов директив** — наборы шаблонов для пакетного создания заданий
- **Виды работ** — справочник видов работ
- **Статусы директив** — справочник стадий заданий
- **Источники директив** — список объектов, к которым подключены задания
![img_3.png](img_3.png)
---
## Как создавать задания: три способа
### 1. Вручную
Откройте нужный объект → кнопка **«Выбрать тип»** → выберите группу шаблонов → задания создаются немедленно.
![img_4.png](img_4.png)
### 2. Автоматически через политику (без кода)
Перейдите в **Директивы → Политики** и создайте правило:
- Выберите объект (задача, заказ и т.д.)
- Укажите событие: при изменении поля, при создании записи или при вызове действия
- Задайте условие срабатывания
- Выберите группу шаблонов
![img_5.png](img_5.png)
После сохранения задания будут создаваться автоматически при наступлении события.
### 3. Через код (для разработчиков)
Разработчик подключает модуль к нужной модели через `directive.mixin`. Подробнее — в технической документации и модулю.
---
## Зависимости
| Модуль | Назначение |
|---|---|
| `base` | Базовый Odoo |
| `web` | Фронтенд |
| `base_user_role` | Управление ролями пользователей |
| `project` | Модуль проектов |