Журнал HTTP-запитів в Odoo: перехоплення, маскування і ротація 21 лип. 2026 р. Програмування Коли інтеграція падає, odoo.log рідко відповідає на головне питання: що саме пішло на зовнішній сервер і що він відповів. Потрібен окремий журнал HTTP-запитів — з тілом, заголовками, кодом відповіді і... Читати більше
Свій OWL-сервіс в Odoo 19 18 лип. 2026 р. Програмування Сервіс в Odoo — це синглтон в env.services . Ядро створює кожен сервіс рівно один раз при старті веб-клієнта, ще до монтування кореневого компонента, і потім віддає той самий екземпляр усім, хто попро... Читати більше
Свій віджет поля в Odoo: розбір kw_widget_autocomplete і kw_matrix_widget 16 лип. 2026 р. Програмування Свій віджет поля в Odoo 18/19 — компонент OWL, зареєстрований під власним іменем у registry.category("fields") . Спеціального базового класу Field чи старого AbstractField не існує — реєстр перевіряє ... Читати більше
useDraggable і useSortable: готовий drag-and-drop для OWL-компонентів 14 лип. 2026 р. Програмування Задача: перетягнути елемент мишкою у власному OWL-компоненті — картку між колонками дошки, рядок у списку, маркер на карті. Перший інстинкт — узяти нативний HTML5 Drag and Drop API: draggable="true" ,... Читати більше
Використання методу get_description() 1 трав. 2026 р. Розуміння методу get_description() в Odoo 18.0 Розташування та контекст Метод get_description() знаходиться в класі Field всередині модуля fields.py на рядку 862 фреймворку Odoo 18.0. Повний шлях: fie... Читати більше
Використання with_context(active_test=False) як заміна складних domain-фільтрів 15 жовт. 2025 р. Якщо ви коли-небудь писали складні domain-фільтри в Odoo, які враховують як активні, так і неактивні записи, ви напевно стикалися з громіздкою конструкцією типу '|', ('active', '=', True), ('active', ... Читати більше
Web контролери. Створення API. 10 жовт. 2024 р. Контролери, типи ендпоінтів HTTP, JSON, нововведення в 16 версії Створення контролеру Щоб створити власний контролер в Odoo, нам треба створити новий клас, що наслідує http.Controller з модуля odoo.ht... Читати більше
Коригування часової зони за допомогою pytz 18 вер. 2023 р. Часто локальні сервіси віддають час у локальній часовій зоні. Розглядатимо приклад часової зони Києва +03:00. Сервіс віддає там час у такому вигляді 2023-09-17 14:37:27 який насправді мав би мати вигл... Читати більше
Кольорові теги 28 серп. 2023 р. Як зробити теги з різними кольорами, такими як на прикладі Треба в модель, яка відповідає за теги додати цілочиcельне поле, наприклад, color = fields.Integer() Або більш розгорнуто class Tag(models.Mo... Читати більше
Перехоплення помилок SQL 9 лют. 2023 р. При створенні чи оновлені записів через код (функції create та write) можуть виникати помилки цілістності даних з боку СУБД. Найбільш часто це обов'язкові поля для create та обмеження задані _sql_cons... Читати більше
Save... force_save 3 лист. 2022 р. За замовчанням Odoo не передає на зміну поля з атрибутом readonly . Ну якби логіка в цьому є: редагувати не можна, то ж воно не має змінюватись. Але не зберігається значення, що було записано программ... Читати більше
Параметри перегляду списком 24 жовт. 2022 р. Розглянем основні парамтери, які застосовуються при створені перегляду списком 1. create Атрибут create визначає чи буде відображатись кнопка Створити. Зв замовчуванню кнопка відображається tree creat... Читати більше