Якщо ви колись описували розробнику невелику доробку в Odoo, вам знайома ця прірва: запит звучить просто, оцінка приходить несподівано велика, а перша версія все одно виходить не зовсім такою, як ви мали на увазі. Здебільшого це тертя — не про поганий код, а про відстань між «що мені потрібно» і «специфікацією, достатньо точною, щоб за нею будувати».
OdoMate створений, щоб закрити цю прірву. Це повний, від початку до кінця, огляд того, що він насправді робить — на прикладі реального модуля, який ми згенерували й опублікували, щоб ви могли перевірити результат самі, а не вірити нам на слово.
Що таке OdoMate, в одному абзаці
OdoMate — це генератор модулів Odoo. Ви описуєте бізнес-вимогу своєю мовою, OdoMate ставить уточнювальні запитання, відкалібровані під ваш технічний рівень, і створює OCA-узгоджений модуль для Odoo 19 — з автоматичними тестами, автоматично згенерованим посібником користувача та живим демо, яке можна клікати, включно з тестовими користувачами на кожному рівні прав, який визначає модуль. Згенеровані модулі чисто встановлюються й проходять свій набір автотестів; перед продакшеном їх усе одно має переглянути розробник. Наразі продукт у закритій беті, безкоштовний для запрошених користувачів.
Це і є весь цикл. Далі — кожен етап окремо, а потім конкретний результат одного реального прогону.
Для кого це — оберіть свій профіль
Перш ніж щось описувати, ви обираєте профіль — саме це налаштування робить OdoMate придатним до роботи незалежно від того, пишете ви Python чи ні:
- Business — без жаргону Odoo. Для власника чи продакт-менеджера, який знає процес, а не платформу.
- Functional — термінологія Odoo вітається, Python не потрібен. Для бізнес-аналітика чи функціонального консультанта.
- Technical — заглиблюйтесь. Для розробника, який хоче говорити мовою моделей, полів і record rules.

Профіль змінює розмову, а не код. Власник бізнесу й розробник, описуючи один і той самий модуль, отримають дуже різні уточнювальні запитання — але однаковий за характером згенерований результат. Профіль за замовчуванням ви задаєте під час першого входу, змінюєте будь-коли в налаштуваннях, а також можете перевизначити для окремої генерації.
Покроковий огляд
Щоб усе було конкретно, ось реальний модуль, який ми провели через OdoMate від початку до кінця: Project Task Checklists — багаторазові покрокові чеклісти, які ви прикріплюєте до задач проєкту в Odoo, з відстеженням прогресу в реальному часі та датами початку/завершення, що проставляються самі. Він опублікований як безкоштовний модуль (посилання в кінці), тож кожне твердження нижче можна перевірити.
1. Опишіть вимогу — звичайною бізнес-мовою
Ви починаєте так само, як пояснили б колезі. Без жаргону Odoo, без Python. Реальний запит, що стоїть за цим модулем, написав проєкт-менеджер, який щодня працює в Odoo, але не має уявлення, як Odoo влаштований усередині — і починався він так:
Коли моя команда працює над задачею, та сама задача часто щоразу передбачає той самий набір кроків… Зараз Odoo дає лише одну задачу з полем опису. Я хочу повноцінний чекліст на кожній задачі — записати стандартний список кроків, повторно використовувати його на кожній новій задачі, відмічати кроки один за одним і з першого погляду бачити, наскільки задача просунулася.
Це цілком нормальна відправна точка. Ви можете написати це англійською, українською, німецькою, іспанською чи іншою мовою; OdoMate читає це й відповідає тією самою мовою протягом усієї розмови.
2. Дайте відповідь на кілька точкових запитань
Саме тут розмитий запит перетворюється на специфікацію, за якою можна будувати — і OdoMate не змушує вас писати специфікацію. Він ставить коротку серію точкових запитань, кожне з розумними варіантами, полем «Other — describe your own» (інше — опишіть своє) і запасним варіантом «Skip — let the agent decide» (пропустити — хай вирішує агент) для всього, щодо чого у вас немає думки. Два реальні запитання, які він поставив для цього модуля:
Editing steps per task (Запитання 1 з 5): Коли чекліст застосовано до задачі, чи може користувач додавати/видаляти/переставляти кроки лише для цієї задачі, чи він завжди має точно збігатися з шаблоном?
— Locked to template
— Free to customize
— Other

Switching checklists (Запитання 3 з 5): Якщо в задачі вже є чекліст у процесі виконання, а користувач обирає інший — що має статися?
— Replace it
— Block the change
— Warn, then let them confirm
— Other

Саме ці дві відповіді — причина того, що готовий модуль дає кожній задачі незалежну, редаговану копію чекліста, і того, що він показує майстер підтвердження, перш ніж замінити чекліст, у якому вже є прогрес. Запитання виконали складну проєктну роботу заздалегідь, ще до того, як з’явився хоч рядок коду. (Якщо хочете глибшу версію про те, чому ці запитання важливі, ми написали про це цілу статтю: 6 речей, на які має відповідати кожна специфікація модуля Odoo.)
3. Уточнюйте, доки не буде правильно, потім генеруйте
Збір вимог — це цикл, а не форма. Ви редагуєте й уточнюєте, доки специфікація не читатиметься так, як ви мали на увазі, а потім тиснете Конфігурувати та Згенерувати. Фіналізована вимога зберігається у вашій бібліотеці Вимоги — тож пізніше ви можете згенерувати її наново або повернути в уточнення, не починаючи спочатку.

4. Перегляньте, що повернулося
OdoMate генерує модуль і дає вам кілька речей для перевірки:
- Сам модуль — моделі, представлення, права доступу, майстер, демодані — як завантажуваний zip.
- Набір автотестів, що постачається всередині модуля.
- Живе демо Odoo зі встановленим модулем.
- Автоматично згенерований посібник користувача, який описує, що модуль робить і як його використовує кожна роль.

5. Перевірте права за допомогою реальних тестових користувачів
Це та частина, яку рецензенти зазвичай не можуть зробити швидко — і вона вбудована. Демо — це не просто admin/admin. Project Task Checklists визначає два рівні прав — звичайний внутрішній користувач і Project Manager — плюс record rule, щоб користувач ніколи не бачив кроки чекліста на задачі, якої він не бачить. OdoMate піднімає тестових користувачів на кожному рівні, тож ви входите як кожна роль і перевіряєте, що вона реально може робити, перш ніж відвантажувати. Project Manager може створювати й редагувати шаблони; звичайний користувач може читати шаблони й працювати з кроками власної задачі, але не може чіпати спільну бібліотеку шаблонів.

6. Доопрацьовуйте без повторної генерації
Якщо після перегляду чогось бракує — ви не починаєте спочатку. Опишіть зміну, прикріпіть скріншоти того, що не так, і OdoMate доопрацьовує наявний модуль. Доопрацьована версія живе поруч з оригіналом у вашій бібліотеці.

Як насправді виглядає результат
Ось реальний згенерований модуль.
Структура дотримується конвенцій OCA — окремі теки models/, views/, security/, wizard/, tests/ і demo/, коректний __manifest__.py та ліцензія LGPL-3:
odomate_project_checklist/
├── __init__.py
├── __manifest__.py
├── README.rst
├── models/
│ ├── __init__.py
│ ├── project_checklist_template.py
│ ├── project_task.py
│ └── project_task_checklist_line.py
├── views/
│ ├── project_checklist_template_views.xml
│ └── project_task_views.xml
├── security/
│ ├── ir.model.access.csv
│ └── project_checklist_security.xml
├── wizard/
│ ├── __init__.py
│ ├── wizard_project_checklist.py
│ └── wizard_project_checklist_views.xml
├── tests/
│ ├── __init__.py
│ └── test_project_checklist.py
├── demo/
│ └── demo.xml
├── doc/
│ └── USER_GUIDE.md
└── static/
└── description/ (icon, banner, screenshots, listing page)Він постачається з набором із 12 поведінкових тестів — це не тести-заглушки, а тести, що фіксують реальні правила, встановлені специфікацією. Назви тестів читаються як чек-лист вимог:
test_apply_on_empty_task_copies_lines
test_switch_without_progress_replaces_immediately
test_switch_with_progress_waits_for_confirmation
test_replace_wizard_confirm_replaces
test_progress_excludes_cancelled
test_progress_zero_when_all_cancelled
test_start_date_stamped_on_first_in_progress
test_start_date_not_overwritten
test_end_date_stamped_on_completion
test_end_date_self_heals_when_reopened
test_end_date_cleared_on_confirmed_replace
test_template_line_countВи можете запустити їх самі на чистому інстансі Odoo 19 — власне, задля цього код і опубліковано.
Кожен модуль також постачається з посібником користувача, який OdoMate написав з тієї самої специфікації — зі змістом, розібраним прикладом розрахунку прогресу, довідником полів, матрицею прав і чесним розділом Limitations (обмеження). Це документація з використання, організована за ролями — саме те, що партнер реально віддає клієнту, а не довідник API.

Де проходить межа чесності
Proof-first означає називати те, чого інструмент не робить, тож ось відверта версія.
Згенеровані модулі чисто встановлюються й проходять свої автотести, але перед продакшеном їх має переглянути людина — сприймайте OdoMate як важіль, що прибирає рутину, а не як заміну розробницькому судженню щодо чутливих до безпеки інтеграцій чи критичних до продуктивності запитів.
І в цього конкретного модуля є свідомо звужені обмеження, які OdoMate задокументував сам, а не приховав: немає призначення виконавця на окремий крок, немає сповіщень, шаблони глобальні (без ізоляції по компаніях), редагування шаблону не застосовується заднім числом до задач, які вже отримали копію, і немає дашбордів, окрім прогрес-бару на задачі. Це були свідомі межі v1 — суть у тому, що згенерований посібник їх називає.
Ще одне про межі: OdoMate наразі орієнтований на Odoo 19 Community. Підтримка Odoo 20 запланована одразу після релізу; версії 16, 17 і 18 наразі не підтримуються.
Подивіться й судіть самі
Уся причина, чому ми відкрито опублікували цей модуль, — у тому, що вам не має бути потрібно вірити лендингу. Читайте код, запускайте тести, встановлюйте в пісочницю:
- На GitHub: github.com/OdoMate-Org/example-modules — повний код, тести та структура модуля.
- В Odoo Apps Store: apps.odoo.com/apps/modules/19.0/odomate_project_checklist — встановіть у реальний інстанс Odoo 19.
А якщо ви хочете побачити, як це працює на вашій специфікації — саме для цього й існує бета.
Цікаво, як це спрацює на вашій власній вимозі? Подайте запит на ранній доступ до бети — ми розглядаємо запити на постійній основі й підключаємо невеликими когортами.
FAQ
Що таке OdoMate? OdoMate — це генератор модулів Odoo на основі ШІ. Ви описуєте бізнес-вимогу своєю мовою й обираєте профіль (business, functional або technical); OdoMate ставить уточнювальні запитання на цьому рівні й генерує OCA-узгоджений модуль для Odoo 19 з автотестами, автоматично згенерованим посібником користувача та живим демо, яке включає тестових користувачів на кожному рівні прав, що його визначає модуль.
Чи потрібно знати Python, щоб цим користуватися? Ні. Ви обираєте профіль Business і описуєте потребу звичайною мовою. Перед продакшеном згенерований код варто дати переглянути розробнику, але писати його вам не потрібно.
Які версії Odoo підтримує OdoMate? Сьогодні — Odoo 19 Community. Підтримка Odoo 20 запланована одразу після релізу. Старіші версії (16, 17, 18) наразі не підтримуються.
Чи готові згенеровані модулі до продакшену? Вони чисто встановлюються й проходять свій набір автотестів, але перед розгортанням у продакшені їх має переглянути людина — особливо все, що чутливе до безпеки чи критичне до продуктивності. OdoMate прибирає рутину; він не прибирає перегляд.
Чи справді я можу побачити код, який створює OdoMate? Так. Ми публікуємо реальні згенеровані модулі — повний код, тести та структуру — на GitHub і в Odoo Apps Store, тож ви можете оцінити якість результату ще до того, як подасте запит на доступ.
Що відбувається після генерації модуля — я застряг із ним «як є»? Ні. Ви можете доопрацювати наявний модуль, описавши, що змінити, і прикріпивши скріншоти, — і OdoMate ітерує поверх нього, а не генерує заново. Фіналізована специфікація також зберігається, тож ви можете перегенерувати чи продовжити уточнення пізніше.
