Public release from ruodoo-project: 19.0 - 2026-07-26 21:17:35 UTC

This commit is contained in:
CI Publish Bot
2026-07-26 21:17:45 +00:00
commit 4f7b594ec8
1335 changed files with 191620 additions and 0 deletions

101
docx_report/README.md Normal file
View File

@ -0,0 +1,101 @@
# DOCX-шаблоны
name: docx_report
version: 19.0.1.0.0
author: Mk.Lab
### 1. Общее описание
Модуль добавляет в Odoo систему DOCX-шаблонов для печати документов. Вместо стандартных HTML-отчётов пользователь загружает файл `.docx` с разметкой переменных — и система формирует готовый документ Word, подставляя данные из карточки записи.
Модуль расширяет возможности базового `docx_report_generation`: добавляет интерфейс управления шаблонами, валидацию, кастомные переменные и привязку шаблонов к моделям.
### 2. Установка
1. Убедитесь что установлены модули `docx_report_generation`, `account`, `sale`, `l10n_ru_contract`
2. Установите Python-пакеты: `pip install docxtpl docxcompose beautifulsoup4`
3. Скопируйте папку `docx_report` в директорию `addons`
4. Перезапустите сервер Odoo
5. Обновите список приложений: **Настройки → Приложения → Обновить список**
6. Найдите модуль **«DOCX Templates»** и установите
### 3. Функциональность
3.1 Основные возможности:
- Загрузка `.docx`-файла как шаблона отчёта для любой модели Odoo
- Подстановка данных из записи через переменные `{{ object.field }}`
- Условные конструкции `{% if %}` и циклы `{% for %}` в шаблоне
- Кастомные переменные с произвольными Python-выражениями
- Валидация шаблона: проверка синтаксиса и существования полей модели
- Подсказки доступных полей выбранной модели прямо в форме шаблона
- Привязка шаблона к форме записи через меню печати
3.2 Синтаксис шаблона:
| Конструкция | Пример | Описание |
|---|---|---|
| Переменная | `{{ object.name }}` | Значение поля записи |
| Связанное поле | `{{ object.partner_id.name }}` | Поле через Many2one |
| Условие | `{% if object.amount > 0 %}...{% endif %}` | Условный вывод |
| Цикл | `{% for line in object.line_ids %}...{% endfor %}` | Перебор строк |
| Кастомная переменная | `{{ my_var }}` | Переменная из вкладки «Кастомные переменные» |
| Дата | `{{ time.strftime('%d.%m.%Y') }}` | Текущая дата |
3.3 Меню:
В главном меню появляется пункт **«Шаблоны для отчетов»** — список всех DOCX-шаблонов.
![img_1.png](img_1.png)
## Как это выглядит в интерфейсе
Форма шаблона содержит основные поля, кнопку **«Валидация»** и две вкладки: **«Кастомные переменные»** и **«Доступные переменные»**.
![img_2.png](img_2.png)
После привязки шаблона к модели в меню **⚙️ Печать** записи появляется дополнительный пункт с именем шаблона.
![img_3.png](img_3.png)
### Пример использования
### Создать шаблон
Перейдите в меню **«Шаблоны для отчетов»**, нажмите **Создать**. Укажите название, загрузите `.docx`-файл, выберите модель документа.
![img_4.png](img_4.png)
### Проверить доступные поля
На вкладке **«Доступные переменные»** выберите модель для подсказки — отобразится список всех полей с техническими именами и типами. Используйте их при создании шаблона.
![img_5.png](img_5.png)
### Добавить кастомную переменную (если нужно)
На вкладке **«Кастомные переменные»** добавьте переменную: укажите техническое имя и Python-выражение для вычисления значения.
![img_6.png](img_6.png)
### Проверить шаблон
Нажмите кнопку **«Валидация»** в шапке формы. Система проверит синтаксис и существование всех полей в шаблоне, отобразит результат.
![img_7.png](img_7.png)
### Привязать шаблон к модели
Нажмите кнопку **«Добавить печать в действия»** — шаблон появится в меню ⚙️ Печать для записей выбранной модели.
![img_8.png](img_8.png)
### Распечатать документ
Откройте нужную запись (договор, заказ и т.д.) → меню **⚙️ Печать** → выберите название шаблона. Файл `.docx` скачается автоматически.
![img_9.png](img_9.png)