Chapter 2: A New Application¶
Мета цього розділу - закласти основу для створення повністю нового модуля Odoo. Ми почнемо з нуля з мінімумом, необхідним для розпізнавання Odoo нашого модуля. У наступних розділах ми будемо поступово додавати функції для побудови реалістичного бізнес-кейсу.
Модуль реклами нерухомості¶
Наш новий модуль охоплюватиме сферу бізнесу, яка є дуже специфічною і тому не входить до стандартного набору модулів: нерухомість. Варто зазначити, що перед розробкою нового модуля доцільно переконатися, що Odoo ще не надає спосіб відповісти на конкретне бізнес-кейс.
Ось огляд головного списку, який містить деякі рекламні оголошення:

У верхній області подання форми підсумовано важливу інформацію про властивість, таку як назва, тип власності, поштовий індекс тощо. Перша вкладка містить інформацію, що описує нерухомість: спальні, вітальня, гараж, сад…

У другій вкладці перераховані пропозиції щодо нерухомості. Тут ми бачимо, що потенційні покупці можуть робити пропозиції вище або нижче очікуваної ціни продажу. Прийняти пропозицію залежить від продавця.

Ось коротке відео, яке демонструє робочий процес модуля.
Сподіваюся, це відео буде записано незабаром :-)
Підготуйте каталог додатків¶
Довідка: документацію, пов’язану з цією темою, можна знайти в manifest.
Примітка
Мета: метою цього розділу є розпізнавання Odoo нашого нового модуля, який поки що буде порожньою оболонкою. Його буде вказано в додатках:

The first step of module creation is to create its directory. In the tutorials
directory, add a new directory estate
.
Модуль має містити принаймні 2 файли: файл __manifest__.py
і файл __init__.py
. Файл __init__.py
поки може залишатися порожнім, і ми повернемося до нього в наступному розділі. З іншого боку, файл __manifest__.py
має описувати наш модуль і не може залишатися порожнім. Єдиним обов’язковим полем є name
, але зазвичай воно містить набагато більше інформації.
Подивіться на файл CRM як приклад. Крім надання опису модуля (name
, category
, summary
, website
…), він містить список його залежностей (depends
). Залежність означає, що фреймворк Odoo забезпечить установку цих модулів перед встановленням нашого модуля. Крім того, якщо одну з цих залежностей буде видалено, то наш модуль і будь-який інший, що залежить від нього, також буде видалено. Згадайте свій улюблений менеджер пакетів дистрибутива Linux (apt
, dnf
, pacman
…): Odoo працює так само.
Exercise
Створіть необхідні файли додатків.
Створіть такі папки та файли:
/home/$USER/src/tutorials/estate/__init__.py
/home/$USER/src/tutorials/estate/__manifest__.py
Файл __manifest__.py
має визначати лише назву та залежності наших модулів. Єдиним необхідним модулем фреймворку наразі є base
.
Перезапустіть сервер Odoo і перейдіть до додатку. Натисніть Оновити список додатків, знайдіть estate
і… тадааа, ваш модуль з’являється! Не з’явився? Можливо, спробуйте видалити стандартний фільтр «Додатки» ;-)
Попередження
Не забудьте ввімкнути режим розробника, як описано в попередньому розділі. Інакше ви не побачите кнопку Оновити список додатків.
Exercise
Зробіть свій модуль „Додаток“.
Додайте відповідний ключ до свого __manifest__.py
, щоб модуль відображався, коли ввімкнено фільтр „Додатки“.
Ви навіть можете встановити модуль! Але очевидно, що це порожня оболонка, тому меню не з’явиться.
All good? If yes, then let’s create our first model!