odoo python что это

Amazing employees deserve
amazing software

The only platform you will ever need to help run your business:
integrated apps, kept simple, and loved by millions of happy users.

odoo python что это. Смотреть фото odoo python что это. Смотреть картинку odoo python что это. Картинка про odoo python что это. Фото odoo python что это

Приложение для любых нужд

odoo python что это. Смотреть фото odoo python что это. Смотреть картинку odoo python что это. Картинка про odoo python что это. Фото odoo python что это

Без хлопотной интеграции.

If you have individual software solutions that work, but don’t talk to each other, you are probably entering things more than once and missing a comprehensive overview of what’s going on.

Between the Odoo apps and the tens of thousands of Community apps, there is something to help address all of your business needs in a single, cost-effective and modular solution: no more work to get different technology cooperating.

Odoo apps are perfectly integrated with each other, allowing you to fully automate your business processes and reap the savings and benefits.

odoo python что это. Смотреть фото odoo python что это. Смотреть картинку odoo python что это. Картинка про odoo python что это. Фото odoo python что это

«Мы заменили 14 различных приложений и увеличили выручку на 10% за один день».

Марк Петерс, Генеральный менеджер торгового подразделения

odoo python что это. Смотреть фото odoo python что это. Смотреть картинку odoo python что это. Картинка про odoo python что это. Фото odoo python что это

Предложение уникальной ценности

Все, что вам нужно, чтобы получить первоклассный пользовательский опыт.

Будучи централизованным, работающим онлайн и доступным из любого местоположения и с любого устройства, наше семейство приложений обеспечивают слаженное взаимодействие компонентов с возможностью автоматизации и контроля выполняемой работы.

The open-source development model of Odoo has allowed us to leverage thousands of developers and business experts to build the world’s largest ecosystem of fully integrated business apps.

With a modern and elegant technical design, Odoo’s framework is unique. It allows us and our community developers to provide top-notch usability that scales across all apps.

Ресурсы, обеспечивающие дополнительное удобство пользования, предусмотренное в Odoo, автоматически применяются ко всем нашим полностью интегрированным приложениям.

Finally, with regular annual releases, Odoo evolves much faster than any other solution.

Источник

Установка

There are multiple ways to install Odoo, or not install it at all, depending on the intended use case.

В этом документе рассматривается большинство параметров установки.

Online Это самый простой способ использовать Odoo. Лучше всего подходит для первого ознакомления с системой С помощью инсталлятора Подходит для тестирования Odoo, разработки модулей и может использоваться для долгосрочного использования при необходимости выполнения дополнительных работ по обслуживанию. Из исходников Обеспечивает большую гибкость: например, можно запустить несколько версий Odoo в одной системе. Хорошо подходит и для разработки модулей, и для продакшн. Docker Если вы обычно используете docker для разработки или развертывания, доступен официальный образ docker.

Версии Odoo

Существуют две версии Editions Odoo: Community и Enterprise. Использование версии Enterprise возможно на нашей SaaS, исходный код доступен корпоративным клиентам и партнерам. Версия Community доступна всем.

Если вы уже используете версию Community и хотите перейти на Enterprise, обратитесь к От Community к Enterprise (кроме Из исходников ).

Online

Демонстрационная

Чтобы просто получить краткое представление об Odoo, доступны экземпляры demo. Они представляют собой установки, которые живут в течение нескольких часов, и могут использоваться без каких-либо обязательств.

Для экземпляров Demo не требуется локальная установка, а только веб-браузер.

Самый простой способ начать, полностью управляемый и перенесенный с помощью Odoo S.A.,Odoo SaaS предоставляет частный доступ и запускается бесплатно. Его можно использовать для тестирования Odoo и выполнения настроек без кода, без необходимости устанавливать Odoo локально.

Может использоваться как для тестирования Odoo, так и для долгосрочного использования.

Как и экземпляры demo, экземпляры SaaS не требуют локальной установки, достаточно веб-браузера.

С помощью инсталлятора

Odoo предоставляет упакованные инсталляторы для Windows, deb-дистрибутивы (Debian, Ubuntu, …) и RPM-дистрибутивы (Fedora, CentOS, RHEL, …) для версий Community и Enterprise.

Эти пакеты автоматически настраивают все зависимости, но могут возникнуть сложности при обновлении.

Official Community packages with all relevant dependency requirements are available on our nightly server. Both Communtiy and Enterprise packages can be downloaded from our download page (you must to be logged in as a paying customer or partner to download the Enterprise packages).

Windows

Execute the downloaded file.

Предупреждение

Odoo будет автоматически запущен в конце установки.

Linux

Debian/Ubuntu

Odoo 13.0 „deb“ package currently supports Debian Buster, Ubuntu 18.04 or above.

Подготовка

Odoo needs a PostgreSQL server to run properly. The default configuration for the Odoo „deb“ package is to use the PostgreSQL server on the same host as your Odoo instance. Execute the following command in order to install the PostgreSQL server:

Предупреждение

[UNKNOWN NODE title_reference] is not installed through pip and must be installed manually in version 0.12.5 for it to support headers and footers. See our wiki for more details on the various versions.

Репозиторий

Odoo S.A. provides a repository that can be used with Debian and Ubuntu distributions. It can be used to install Odoo Community Edition by executing the following commands as root:

You can then use the usual [UNKNOWN NODE title_reference] command to keep your installation up-to-date.

At this moment, there is no nightly repository for the Enterprise Edition.

Deb пакеты

Instead of using the repository as described above, the „deb“ packages for both the Community and Enterprise editions can be downloaded from the official download page.

Next, execute the following commands as root:

Это установит Odoo в качестве службы, создаст нужного пользователя PostgreSQL и автоматически запустит сервер.

Предупреждение

The [UNKNOWN NODE title_reference] Debian package does not exists in Debian Buster nor Ubuntu 18.04. This python module is needed to export into xls format.

If you need the feature, you can install it manually with:

Предупреждение

The [UNKNOWN NODE title_reference] python package does not exists in Debian Buster nor Ubuntu 18.04. Textual amounts will not be rendered by Odoo and this could cause problems with the [UNKNOWN NODE title_reference] module.

If you need this feature, you can install manually with:

Fedora

Odoo 13.0 „rpm“ package supports Fedora 30.

Подготовка

Odoo needs a PostgreSQL server to run properly. Make sure that the [UNKNOWN NODE title_reference] command is available and well configured and, only then, execute the following command in order to install the PostgreSQL server:

Предупреждение

[UNKNOWN NODE title_reference] is not installed through pip and must be installed manually in version 0.12.5 for it to support headers and footers. See our wiki for more details on the various versions.

Репозиторий

Odoo S.A. provides a repository that can be used with the Fedora distributions. It can be used to install Odoo Community Edition by executing the following commands:

RPM пакеты

Instead of using the repository as described above, the „rpm“ packages for both the Community and Enterprise editions can be downloaded from the official download page.

После загрузки, пакет может быть установлен с помощью пакетного менеджера [UNKNOWN NODE title_reference]:

Из исходников

The source «installation» is really about not installing Odoo, and running it directly from source instead.

Это может быть более удобным для разработчиков модулей, поскольку исходники Odoo будут расположены так, как вам нужно. Это может быть удобнее чем использование пакетной установки (для изучения исходного кода модулей или для сборки этой документации и ее доступности в автономном режиме).

запуск и остановка работы Odoo становятся более гибким и очевидными, чем службы, настроенные упакованными установками, и позволяет переопределять параметры, используя параметры командной строки без необходимости редактировать файл конфигурации.

Finally it provides greater control over the system’s set up, and allows to more easily keep (and run) multiple versions of Odoo side-by-side.

Windows

Установка из исходников

There are two ways to obtain the source code of Odoo: as a zip archive or through git.

Archive

The following requires git to be installed on your machine and that you have basic knowledge of git commands.

Enterprise Edition: (see Версии Odoo to get access)

Примечание

The Enterprise git repository does not contain the full Odoo source code. It is only a collection of extra add-ons. The main server code is in the Community version. Running the Enterprise version actually means running the server from the Community version with the addons-path option set to the folder with the Enterprise version. You need to clone both the Community and Enterprise repository to have a working Odoo Enterprise installation.

Подготовка

Python

Odoo requires Python 3.6 or later to run. Visit Python’s download page to download and install the latest version of Python 3 on your machine.

During installation, check Add Python 3 to PATH, then click Customize Installation and make sure that pip is checked.

Примечание

If Python 3 is already installed, make sure that the version is 3.6 or above, as previous versions are not compatible with Odoo.

Verify also that pip is installed for this version.

PostgreSQL

Odoo uses PostgreSQL as database management system. Download and install the latest version of PostgreSQL.

By default, the only user is [UNKNOWN NODE title_reference] but Odoo forbids connecting as [UNKNOWN NODE title_reference], so you need to create a new PostgreSQL user:

Create a postgres user with a password using the pg admin gui:

Зависимости

Before installing the dependencies, you must download and install the Build Tools for Visual Studio. When prompted, select C++ build tools in the Workloads tab and install them.

Odoo dependencies are listed in the [UNKNOWN NODE title_reference] file located at the root of the Odoo community directory.

Совет

It can be preferable to not mix python modules packages between different instances of Odoo or with your system. You can use virtualenv to create isolated Python environments.

Navigate to the path of your Odoo Community installation ([UNKNOWN NODE title_reference]) and run pip on the requirements file in a terminal with Administrator privileges:

Предупреждение

[UNKNOWN NODE title_reference] is not installed through pip and must be installed manually in version 0.12.5 for it to support headers and footers. See our wiki for more details on the various versions.

For languages with right-to-left interface (such as Arabic or Hebrew), the package [UNKNOWN NODE title_reference] is needed:

Install [UNKNOWN NODE title_reference]:

Запуск Odoo

Once all dependencies are set up, Odoo can be launched by running [UNKNOWN NODE title_reference], the command-line interface of the server. It is located at the root of the Odoo Community directory.

Совет

For the Enterprise edition, you must add the path to the [UNKNOWN NODE title_reference] addons to the [UNKNOWN NODE title_reference] argument. Note that it must come before the other paths in [UNKNOWN NODE title_reference] for addons to be loaded correctly.

Общие необходимые настройки:

A typical way to run the server would be:

Where [UNKNOWN NODE title_reference] is the path of the Odoo Community installation, [UNKNOWN NODE title_reference] is the PostgreSQL login, [UNKNOWN NODE title_reference] is the PostgreSQL password and [UNKNOWN NODE title_reference] is the default database to serve on [UNKNOWN NODE title_reference]. You can add other directory paths separated by a comma to addons at the end of the addons-path option.

Linux

Установка из исходников

There are two ways to obtain the source code of Odoo: as a zip archive or through git.

Archive

The following requires git to be installed on your machine and that you have basic knowledge of git commands.

Enterprise Edition: (see Версии Odoo to get access)

Примечание

The Enterprise git repository does not contain the full Odoo source code. It is only a collection of extra add-ons. The main server code is in the Community version. Running the Enterprise version actually means running the server from the Community version with the addons-path option set to the folder with the Enterprise version. You need to clone both the Community and Enterprise repository to have a working Odoo Enterprise installation.

Подготовка

Python

Odoo requires Python 3.6 or later to run. Use your package manager to download and install Python 3 on your machine if it is not already done.

Примечание

If Python 3 is already installed, make sure that the version is 3.6 or above, as previous versions are not compatible with Odoo.

Verify also that pip is installed for this version.

PostgreSQL

Odoo uses PostgreSQL as database management system. Use your package manager to download and install the latest version of PostgreSQL.

On Debian/Unbuntu, it can be achieved by executing the following:

By default, the only user is [UNKNOWN NODE title_reference] but Odoo forbids connecting as [UNKNOWN NODE title_reference], so you need to create a new PostgreSQL user:

Примечание

Because your PostgreSQL user has the same name as your Unix login, you will be able to connect to the database without password.

Зависимости

For libraries using native code, it is necessary to install development tools and native dependencies before the Python dependencies of Odoo. They are available in [UNKNOWN NODE title_reference] or [UNKNOWN NODE title_reference] packages for Python, PostgreSQL, libxml2, libxslt1, libevent, libsasl2 and libldap2.

On Debian/Unbuntu, the following command should install all the required libraries:

Odoo dependencies are listed in the [UNKNOWN NODE title_reference] file located at the root of the Odoo community directory.

Совет

It can be preferable to not mix python modules packages between different instances of Odoo or with your system. You can use virtualenv to create isolated Python environments.

Navigate to the path of your Odoo Community installation ([UNKNOWN NODE title_reference]) and run pip on the requirements file:

Предупреждение

[UNKNOWN NODE title_reference] is not installed through pip and must be installed manually in version 0.12.5 for it to support headers and footers. See our wiki for more details on the various versions.

For languages with right-to-left interface (such as Arabic or Hebrew), the package [UNKNOWN NODE title_reference] is needed:

Install [UNKNOWN NODE title_reference]:

Запуск Odoo

Once all dependencies are set up, Odoo can be launched by running [UNKNOWN NODE title_reference], the command-line interface of the server. It is located at the root of the Odoo Community directory.

Совет

For the Enterprise edition, you must add the path to the [UNKNOWN NODE title_reference] addons to the [UNKNOWN NODE title_reference] argument. Note that it must come before the other paths in [UNKNOWN NODE title_reference] for addons to be loaded correctly.

Общие необходимые настройки:

A typical way to run the server would be:

Where [UNKNOWN NODE title_reference] is the path of the Odoo Community installation and [UNKNOWN NODE title_reference] is the default database to serve on [UNKNOWN NODE title_reference]. You can add other directory paths separated by a comma to addons at the end of the addons-path option.

Mac OS

Установка из исходников

There are two ways to obtain the source code of Odoo: as a zip archive or through git.

Archive

The following requires git to be installed on your machine and that you have basic knowledge of git commands.

Enterprise Edition: (see Версии Odoo to get access)

Примечание

The Enterprise git repository does not contain the full Odoo source code. It is only a collection of extra add-ons. The main server code is in the Community version. Running the Enterprise version actually means running the server from the Community version with the addons-path option set to the folder with the Enterprise version. You need to clone both the Community and Enterprise repository to have a working Odoo Enterprise installation.

Подготовка

Python

Odoo requires Python 3.6 or later to run. Use your preferred package manager (homebrew, macports) to download and install Python 3 on your machine if it is not already done.

Примечание

If Python 3 is already installed, make sure that the version is 3.6 or above, as previous versions are not compatible with Odoo.

Verify also that pip is installed for this version.

PostgreSQL

Odoo uses PostgreSQL as database management system. Use postgres.app to download and install the latest version of PostgreSQL.

By default, the only user is [UNKNOWN NODE title_reference] but Odoo forbids connecting as [UNKNOWN NODE title_reference], so you need to create a new PostgreSQL user:

Примечание

Because your PostgreSQL user has the same name as your Unix login, you will be able to connect to the database without password.

Зависимости

Odoo dependencies are listed in the [UNKNOWN NODE title_reference] file located at the root of the Odoo community directory.

Совет

It can be preferable to not mix python modules packages between different instances of Odoo or with your system. You can use virtualenv to create isolated Python environments.

Navigate to the path of your Odoo Community installation ([UNKNOWN NODE title_reference]) and run pip on the requirements file:

Предупреждение

Non-Python dependencies need to be installed with a package manager:

Download and install the Command Line Tools:

Предупреждение

[UNKNOWN NODE title_reference] is not installed through pip and must be installed manually in version 0.12.5 for it to support headers and footers. See our wiki for more details on the various versions.

For languages with right-to-left interface (such as Arabic or Hebrew), the package [UNKNOWN NODE title_reference] is needed:

Install [UNKNOWN NODE title_reference]:

Запуск Odoo

Once all dependencies are set up, Odoo can be launched by running [UNKNOWN NODE title_reference], the command-line interface of the server. It is located at the root of the Odoo Community directory.

Совет

For the Enterprise edition, you must add the path to the [UNKNOWN NODE title_reference] addons to the [UNKNOWN NODE title_reference] argument. Note that it must come before the other paths in [UNKNOWN NODE title_reference] for addons to be loaded correctly.

Общие необходимые настройки:

A typical way to run the server would be:

Where [UNKNOWN NODE title_reference] is the path of the Odoo Community installation and [UNKNOWN NODE title_reference] is the default database to serve on [UNKNOWN NODE title_reference]. You can add other directory paths separated by a comma to addons at the end of the addons-path option.

Docker

The full documentation on how to use Odoo with Docker can be found on the official Odoo docker image page.

Источник

Предупреждение

Это руководство требует установленную Odoo

Запуск и остановка сервера Odoo

Odoo использует клиент-серверную архитектуру, где клиентами являются web браузеры, которые работают с Odoo сервером через RPC протокол.

Бизнес-логика и расширение обычно выполняются на стороне сервера, хотя к клиенту могут быть добавлены поддерживающие клиентские функции (например, новые представления данных, такие как интерактивные карты).

Чтобы запустить сервер, просто вызовите команду odoo-bin в командной строке, добавив при необходимости полный путь к файлу:

Сервер можно остановить двойным нажатием Ctrl-C в консоли, или убив соответствующий процесс в операционной системе.

Создание модуля в Odoo

Расширения как сервера, так и клиента представляют собой модули, которые могут быть загружены в базу данных.

Odoo модули могут, как добавлять абсолютно новую бизнес-логику, так и расширять существующую: модуль может быть создан для того, чтобы добавить план счетов соответствующей страны таким образом, чтобы Odoo мог поддерживать именно ваш тип бухгалтерского учета. В тоже время, другой модуль добавляет поддержку отображения состояния вашего автобусного парка в режиме реального времени.

Таким образом, все в Odoo начинается и заканчивается модулями.

Состав модуля

Модуль Odoo может содержать следующие элементы:

Бизнес-объекты: объявленные как Python классы, эти ресурсы автоматически сохраняются в Odoo в соответствии с ее конфигурацией Данные XML or CSV files declaring metadata (views or reports), configuration data (modules parameterization), demonstration data and more Web controllers Обрабатывать запросы от веб-браузеров Статические ресурсы Изображения, CSS или javascript-файлы, используемые веб-интерфейсом или веб-сайтом

Структура модуля

Совет

большинство параметров командной строки так же могут быть указаны в файле конфигурации

Команда создаст подкаталог для вашего модуля, и автоматически создаст группу стандартных файлов для модуля. Большинство из них содержит закомментированный Python код или XML. Об использование большинства этих файлов будет рассказано в данном руководстве.

Exercise

Используйте командную строку, чтобы создать пустой модуль Open Academy и установить его в Odoo.

Объектно-реляционное отображение

Поля модели данных

Поля используются для определения того, что модель данных может хранить и где. Поля определяются как атрибуты в классе модели:

Базовые атрибуты

Подобно самой модели данных, ее поля могут быть настроены путем передачи значений атрибутов в качестве параметров:

Некоторые атрибуты доступны во всех полях, вот самые распространенные из них:

Простые поля

Есть два наиболее распространенных вида полей: «простые» поля, которые представляют собой атомарные значения, хранящиеся непосредственно в таблице модели, и «реляционные» поля, связывающие записи (одной модели данных или разных моделей данных).

Зарезервированные поля

Odoo создает несколько полей, которые есть во всех моделях данных1. Эти поля управляются системой и их не нужно прописывать, но их можно прочитать если существует такая необходимость:

id ( Id ) уникальные идентификатор записи в этой модели данных create_date ( Datetime ) дата создания записи create_uid ( Many2one ) пользователь, который создал запись write_date ( Datetime ) дата последней модификации записи write_uid ( Many2one ) Пользователь, который последний модифицировал запись

Специальные поля

Exercise

Определить модель данных

Определите новую модель данных в модуле Course в модуле openacademy. Курс имеет небольшое описание. Курсы должны иметь названия.

Данные

Совет

Существуют модули, которые существуют только для добавления данных в Odoo.

Файлы данных должны быть описаны в файле манифеста, для того, чтобы они были загружены их нужно записать в ‘data’ список (загрузка данных происходит всегда) или в ‘demo’ список (загрузка данных происходит только в режиме «Загрузка демо-данных»).

Exercise

Описать демонстрационные данные

Создать демонстрационные данные для заполнения модели данных Courses некоторым количеством Курсов.

Совет

Содержимое файлов данных загружается только при установке или обновлении модуля.

Действия и пункты меню

Действия и пункты меню являются регулярными записями в базе данных, обычно объявляемыми через файлы данных. Действия могут быть инициированы тремя способами:

Поскольку пункты меню могут иметь сложную структуру для их описания есть параметр это наиболее простой способ создать описание меню в ir.ui.menu и подключить его к соответствующему действию.

Опасно

Действие должно быть объявлено перед его соответствующим меню в XML-файле.

Файлы данных выполняются последовательно, id действия должно присутствовать в базе данных до того, как пункт меню будет создан.

Exercise

Создайте новый пункт меню

Определите новые пункты меню для доступа к курсам в меню OpenAcademy. Пользователь должен уметь:

Базовые представления данных

Базовые представления данных (далее представления). Представления определяют каким образом записи или модель данных будут отображены. Каждый тип представлений являет собой некий заранее оформленный внешний вид для данных, которые находятся в базе данных Odoo (например в виде списка записей или календаря, и т.д. …). Представления могут быть запрошены через вызов их типа (например список контрагентов) или напрямую через их идентификатор. Для общих запросов будет использовано представление с правильным типом и низким приоритетом (таким образом, представление с наименьшим приоритетом каждого типа, будет являться им по умолчанию

Наследование представлений позволяет изменять представления, объявленные в другом месте (добавлять или удалять содержимое).

Стандартное использование представления

Представление создается как запись модели данных « ir.ui.view«. Тип преставления назначается корневым элементом поля arch :

Exercise

Настройте преставление в виде Form используя XML.

Создайте ваше собственное преставление в виде Form для объекта Course. Что нужно показать: имя и описание курса.

Exercise

В преставлении в виде Form для объекта Курс расположите поле для описания под закладкой, таким образом, что в дальнейшем можно будет добавить еще закладки с дополнительной информацией.

Представления формы могут также использовать простой HTML для создания своих макетов:

Преставления в виде Search

Преставления в виде Search настраивают поля search для связи с преставлением в виде списка (а так же другими совокупными представлениями). Их корневой элемент и он состоит из полей определяющих какие поля могут участвовать в поиске:

Если для модели данных не существует поискового представления, Odoo генерирует одно, которое позволяет только поиск в поле « name«.

Exercise

Позволить поиск по курсам, основанный на их названии или их описании.

Отношения между моделями данных

Запись из одной модели данных может быть связана с записью в другой модели данных. Например запись коммерческого предложения связана с записью клиента, которая содержит данные о клиента; и она (запись клиента) так же связана с записями коммерческого предложения.

Exercise

Создайте модель данных для занятий

Для модуля Open Academy, мы рассматриваем модель данных sessions: Занятия это возникновение преподаваемого Отношения между моделями данных курса в заданное время для заданной аудитории.

Создайте модель данных для sessions. Занятия имеют имя, дату начала, продолжительность и количество мест. Добавьте действие и пункт меню, чтобы отобразить их. Сделайте новую модель видимой через пункт меню.

Реляционные поля

Реляционные поля связывают записи, как внутри самой модели данных (иерархические), так и между записями в разных моделях данных.

Типы реляционных полей:

Простая ссылка на другой объект:

См.также

Опасно

Двунаправленная множественная связь, любая запись на одной стороне может быть связана с любым количеством записей на другой стороне. Ведет себя как контейнер записей, предоставляя доступ, возможно пустой, к набору записей:

Exercise

Используя many2one, измените модели данных Course и Session, для того чтобы отразить их связи с остальными моделями данных:

Exercise

Обратные связи one2many

Используя одно обратное реляционное поле one2many, модифицируйте модели, чтобы отразить связь между курсами и занятиями.

Exercise

Множественные many2many связи

Наследование.

Наследование моделей данных

Odoo предлагает механизм наследования в двух вариантах для расширения существующей модели данных путем создания дополнительного модуля

Первый механизм наследования позволяет модулю изменять поведение модели данных, определенной в другом модуле:

Второй механизм наследования (делегирование) позволяет связать каждую запись модели с записью в родительской модели и обеспечивает прозрачный доступ к полям родительской записи.

odoo python что это. Смотреть фото odoo python что это. Смотреть картинку odoo python что это. Картинка про odoo python что это. Фото odoo python что это

См.также

Наследование представления

Помимо модификации существующих представлений (путем перезаписи), Odoo позволяет наследовать представления где дочерние «расширения» представлений могут быть быть закреплены над корневыми представлениями и могут добавлять или удалять содержимое своего родителя.

Команда для применения к конкретному элементу:

Совет

При выборе одиночного элемента атрибут position может быть напрямую назначен искомому элементу. В примере указаны два наследования с одинаковым результатом.

Exercise

Измените существующий проект

Домены

В Odoo, Domains это значения в которых закодировано состояние записей. Домен это список критериев используемых для выбора из подмножества записей в модели данных. Каждый критерий представляет собой треугольник где вершинами являются имя поля, оператор и значение.

К примеру, при использовании в модели данных Product домен выбирает все services цена которых выше 1000 за одну позицию:

Параметр domain может быть добавлен к зависимым полям, с целью отделения действительных записей для работы, в процессе выбора записей в базе для работы с клиентским интерфейсом.

Exercise

Домены в зависимых полях

Exercise

Более сложные домены

Создайте новые категории партнеров Teacher / Level 1 и Teacher / Level 2. Инструктором для занятия может быть как инструктор, так и преподаватель (любого уровня).

Вычисляемые поля и значения по умолчанию

Помимо того, что поля могут сохраняться и быть в прямом доступе непосредственно из базы данных, они также могут вычислены. В этом случае, значения полей не извлекаются непосредственно из базы, а вычисляются „на лету“ путем вызова метода модели данных.

Опасно

self это собирательный операнд

Зависимости

Exercise

Значения по умолчанию

Примечание

Объект self.env предоставляет доступ к параметрам запроса и другим полезным вещам:

Exercise

Onchange

Механизм «onchange» предоставляет возможность для клиентского интерфейса обновлять форму, когда пользователь заполняет значение в поле, не сохраняя ничего в базе данных.

Поведение вычисляемых полей, обозначенных тегом onchange ет быть предугадано путем отслеживания изменений в форме Session измените количество мест или присутствующих, и taken_seats индикатор прогресса обновиться автоматически.

Exercise

Ограничения модели данных

Exercise

Добавьте ограничения Python

Добавьте ограничение, которое проверяет, что преподаватель не присутствует в списке посетителей его собственного занятия.

Exercise

Добавить ограничения SQL

С помощью PostgreSQL’s documentation добавьте следующие ограничения:

Exercise

Поскольку мы добавили ограничение уникальности названия курса, невозможно использовать функцию дублирования ( Form ‣ Duplicate ).

Расширенные представления

Преставления в виде Tree

Представления вида Tree могут принимать дополнительные атрибуты для дальнейшей настройки их поведения:

позволяют изменять стиль текста строки на основе атрибутов связанной записи.

Exercise

Измените представление вида Tree модели данных Session таким образом, чтобы курсы продолжительностью менее 5 дней были окрашены в синий цвет, а длящиеся более 15 дней, окрашены в красный цвет.

Представления вида Calendar

color Имя поля, используемое для сегментации цветом. Цвета автоматически распределяются по событиям. События в одном цветовом сегменте (записи, имеющие одинаковое значение для их поля @color ) будут иметь одинаковый цвет. date_start Поле записи, содержащее дату/время начала события date_stop (опционально) Поле записи, содержащее конечную дату/время события string record’s field to define the label for each calendar event

Exercise

Представление вида Calendar

Добавьте представление вида Calendar к модели данных Session, чтобы пользователь мог просматривать события, связанные с Open Academy.

Преставления в виде Search

domain Добавит данный домен в текущий поиск context Добавит некоторый контекст в текущий поиск; Используйте ключ group_by для группировки результатов по данному имени поля

Чтобы использовать в действии нестандартное представление вида Search, нужно указать связь, используя поле search_view_id в записи действия.

Exercise

Преставления в виде Search

Gantt

Предупреждение

Для представление вида Gantt требуется модуль web_gantt который присутствует в редакции Enterprise

Exercise

Добавьте диаграмму Ганта, чтобы пользователь мог просматривать планирование сеансов, связанное с модулем Open Academy. Курсы должны быть сгруппированы по инструкторам.

Представление вида Graph

Примечание

Сводные представления (элемент

Гистограмма, первое измерение используется для определения групп по горизонтальной оси, другие измерения определяют агрегированные бары внутри каждой группы.

По умолчанию столбцы расположены бок о бок, они могут быть сложены с помощью @stacked=»True» на

Line 2-мерная линейная диаграмма Pie 2-мерный круговая диаграмма, разделенная на сектора

row (по умолчанию) Поле по умолчанию, в отношении которого будет совершен сбор данных measure объединяет значения величин всех дочерних объектов, игнорируя их группы

Предупреждение

Представления вида Graph выполняют сбор значений из базы данных, они не работают с несохраненными вычисленными полями.

Exercise

Представления вида Graph

Добавьте представление вида Graph в объект «Session», отображающий для каждого курса количество участников в виде гистограммы.

Kanban

Exercise

Представление вида Kanban

Добавьте представление вида Kanban, в котором отображаются занятия, сгруппированные по курсу (столбцы, таким образом, являются курсами).

Безопасность

Чтобы политика безопасности была согласована (без противоречий), необходимо правильно настроить контроль доступа.

Контроль доступа, основанный на группах пользователей

Права доступа

Exercise

Добавить управление доступом через интерфейс Odoo

Создайте нового пользователя «John Smith». Затем создайте группу «OpenAcademy/Session Read» с доступом на чтение к модели Session.

Exercise

Добавление контроля доступа с помощью файлов данных в вашем модуле

Используя файлы данных,

Правила записи

Права записи определяют ограничения доступа к списку записей конкретной модели данных. Правило представляет собой запись модели данных ir.rule и связано с моделью данных, группами (поле many2many), разрешениями, к которым применяется ограничение, а также с domain. Domain указывает, к каким записям права доступа ограничены.

Exercise

Добавьте правило записи для модели данных «Course» и группу «OpenAcademy/Manager», которая ограничивает write и unlink доступ к ответственным за курс. Если у курса нет ответственного, все пользователи группы должны иметь возможность изменить его.

Помощники

Мы хотим создать помощника, который позволит пользователям становиться участниками определенного Курса или списка Курсов одновременно.

Exercise

Создайте модель помощника с отношением many2one с моделью Session и отношением many2many с моделью Partner.

Запуск помощников

Exercise

Exercise

Регистрация слушателей курсов

В помощнике нужно добавить кнопки и ввести соответствующий метод для добавления слушателей в данный Курс.

Exercise

Регистрация слушателей на несколько курсов

Измените модель данных помощника, чтобы слушатели могли быть зарегистрированы на несколько Курсов.

Переводы

Совет

Сгенерированные Odoo PO-файлы можно разместить на Transifex, что облегчает перевод программного обеспечения.

Совет

По умолчанию, Odoo’s файлы POT представляют собой файлы типа XML с определениями в полях на языке Python, где любая строка Python может быть переведена путем окружения ее функцией odoo._() (например _(«Label») )

Exercise

Выберите второй язык, устанавливаемый в Odoo. Переведите модуль при помощи инструментов, предоставляемых Odoo.

Отчеты

Отчеты для печати

Отчет представляет собой комбинацию двух элементов:

Стандартный вид QWeb view для отчета:

Поскольку отчеты являются стандартными веб-страницами, они доступны через URL, а выходные параметры могут обрабатываться по этому URL-адресу, например, HTML-версия отчета Invoice доступна через http://localhost:8069/report/html/account.report_invoice/1 (если установлен модуль ​​«account«) и версия PDF через http://localhost:8069/report/pdf/account.report_invoice/1.

Опасно

Если кажется, что в вашем отчете PDF отсутствуют стили (т.е. Текст появляется, но стиль/макет отличается от версии html), возможно, ваш процесс wkhtmltopdf не может „достучаться“ до вашего веб-сервера, чтобы загрузить их.

Проверьте логи сервера,в них можно найти проблемы с загрузкой CSS при создании отчета в формате PDF.

Процесс wkhtmltopdf использует системный параметр web.base.url качестве корневого каталога для доступа ко всем файлам отчетов, однако, их параметр обновляется каждый раз при входе администратора. Если ваш сервер находится за прокси, он может быть недоступен. Это исправляется путем редактирования системных параметров:

Exercise

Создайте отчет для модели данных Session

Для каждого курса в отчете должно быть отображено ее имя, время ее начала и окончания, а также список участников слушателей Курса.

Сводные отчеты

Exercise

Определите сводный отчет

Определите сводный отчет, содержащий созданный вами график, вид календаря сеансов и список курсов (переключаемый на вид). Эта панель должна быть доступна через меню и автоматически отображаться в веб-клиенте, когда выбрано главное меню OpenAcademy.

Веб сервисы

Модуль веб-сервиса предлагает общий интерфейс для всех веб-сервисов

Бизнес-объекты также могут быть доступны через механизм распределенных объектов. Все они могут быть изменены с помощью клиентского интерфейса в контекстных представлениях.

Odoo доступна через интерфейсы XML-RPC/JSON-RPC, для которых библиотеки существуют на многих языках.

Библиотека XML-RPC

В данном примере отражено взаимодействие программы на Python 3 с сервером Odoo по средствам библиотеки xmlrpc.client :

Exercise

Добавим новую службу к клиенту

Напишите программу на Python, которая может отправлять запросы XML-RPC на компьютер, на котором запущен Odoo (ваш компьютер или вашего инструктора). Эта программа должна отображать все Курсы и их соответствующее количество мест. Она также должен уметь создать новое занятие для одного из курсов.

Библиотека JSON-RPC

Примеры могут быть легко адаптированы из XML-RPC в JSON-RPC.

Примечание

Существует ряд высокоуровневых API на разных языках для доступа к системам Odoo без явного обращения к XML-RPC или JSON-RPC, таких как:

Документация

Перевод документации осуществляется исключительно из любви к искусству и платформе Odoo

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *