odoo-8 - RIP Tutorial · 2019. 1. 18. · Файл конфигурации можно найти...
Transcript of odoo-8 - RIP Tutorial · 2019. 1. 18. · Файл конфигурации можно найти...
-
odoo-8
#odoo-8
-
1
1: odoo-8 2
2
2
Examples 2
2
: 2
? 7
2: RPC API- Odoo v8 ( Python JavaScript) 9
9
Examples 9
Odoo 9
RPC Odoo 10
3: CSS Javascript Odoo 12
12
12
12
Examples 13
CSS JS Odoo 13
1: [BACKEND] CSS Javascript 13
2: [FRONTEND] CSS Javascript 13
3: [COMMON] CSS Javascript (b 14
4: OpenERP Developer 15
15
Examples 16
16
Odoo 8 17
Odoo 10 17
5: ? 19
19
Examples 20
-
ORM 20
6: - Office 365 Odoo 21
Examples 21
21
7: 24
24
Examples 24
TreeView 24
8: , Odoo 8 26
26
26
26
Examples 28
Odoo 8 28
9: 30
30
Examples 30
xml- 30
Python 30
32
-
ОколоYou can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: odoo-8
It is an unofficial and free odoo-8 ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official odoo-8.
The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]
https://riptutorial.com/ru/home 1
http://riptutorial.com/ebook/odoo-8https://archive.org/details/documentation-dump.7zmailto:[email protected]
-
глава 1: Начало работы с odoo-8
замечания
В этом разделе представлен обзор того, что такое odoo-8, и почему разработчик может захотеть его использовать.
Следует также упомянуть о любых крупных предметах в пределах odoo-8 и ссылаться на связанные темы. Поскольку документация для odoo-8 является новой, вам может потребоваться создать начальные версии этих связанных тем.
Версии
Номер выпуска сообщество предприятие Лицензия Дата выхода
8,0 да нет GNU AGPL 2014-09-18
9,0 да да GNU AGPL V3 2015-10-01
Examples
Настроить
Odoo можно установить тремя различными способами:
Упакованные инсталляторы (самые простые, менее гибкие)1. Исходная установка (требуется время для настройки, очень гибкая)2. Официальное изображение докеров с docker.com3.
Официальные пакеты со всеми соответствующими требованиями зависимости доступны на odoo.com .
Windows
Загрузите и запустите программу установки .
Примечание. В Windows 8 вы можете увидеть предупреждение под названием «Windows защищает ваш компьютер». Нажмите «Подробнее», а затем запустите его. Примите приглашение UAC и выполните различные шаги установки. Odoo будет автоматически запущен в конце установки.
Конфигурация:
https://riptutorial.com/ru/home 2
https://en.wikipedia.org/wiki/Affero_General_Public_Licensehttps://en.wikipedia.org/wiki/GNU_Lesser_General_Public_Licensehttps://hub.docker.com/_/odoo/https://hub.docker.com/_/odoo/https://nightly.odoo.comhttps://nightly.odoo.com/8.0/nightly/exe/odoo_8.0.latest.exe
-
Файл конфигурации можно найти в папке% PROGRAMFILES% \ Odoo 8.0-id \ server \ openerp-server.conf. (id - ваше системное имя пользователя)
Файл конфигурации можно отредактировать, чтобы подключиться к удаленному Postgresql, изменить расположение файлов или установить dbfilter. Чтобы перезагрузить файл конфигурации, перезапустите службу Odoo через Service ‣ odoo server.
Linux
Распределения на основе Debian
Чтобы установить Odoo 8.0 в дистрибутив на основе Debian, выполните следующие команды:
# wget -O - https://nightly.odoo.com/odoo.key | apt-key add - # echo "deb http://nightly.odoo.com/8.0/nightly/deb/ ./" >> /etc/apt/sources.list # apt-get update && apt-get install odoo
Это автоматически установит все зависимости, установит сам Odoo в качестве демона и автоматически запустит его.
Обратите внимание, что
для печати отчетов в формате PDF вы должны сами установить wkhtmltopdf: версия wkhtmltopdf, доступная в репозиториях debian, не поддерживает верхние и нижние колонтитулы, поэтому она не может быть установлена автоматически. Рекомендуемая версия - 0.12.1 и доступна на странице загрузки wkhtmltopdf в разделе архива. Поскольку официального релиза для Debian Jessie нет, вы можете найти его на http://nightly.odoo.com/extra/ . или вы можете загрузить и установить его со страницы загрузки wkhtmltopdf, как это
# wget https://bitbucket.org/wkhtmltopdf/wkhtmltopdf/downloads/{path to correct distro and system architecture} # sudo dpkg -i {.deb package} # sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
Файл конфигурации можно найти по адресу /etc/odoo/openerp-server.conf
Когда файл конфигурации редактируется, Odoo необходимо перезапустить с помощью службы:
$ sudo service odoo restart Перезапуск odoo: ok
Распределения на основе RPM
В дистрибутивах RHEL (RHEL, CentOS, Scientific Linux) EPEL необходимо добавить в репозитории дистрибутива для всех зависимостей Odoo. Для CentOS:
https://riptutorial.com/ru/home 3
http://nightly.odoo.com/extra/
-
$ sudo yum install -y epel-release
Для других распределений на основе RHEL см. Документацию EPEL.
Ниже приведены шаги установки.
$ sudo yum install -y postgresql-server $ sudo postgresql-setup initdb $ sudo systemctl enable postgresql $ sudo systemctl start postgresql $ sudo yum-config-manager --add-repo=https://nightly.odoo.com/8.0/nightly/rpm/odoo.repo $ sudo yum install -y odoo $ sudo systemctl enable odoo $ sudo systemctl start odoo
Обратите внимание, что
Чтобы распечатать отчеты в формате PDF, вы должны сами установить wkhtmltopdf: версия wkhtmltopdf, доступная в репозиториях Fedora / CentOS, не поддерживает верхние и нижние колонтитулы, поэтому она не может быть установлена автоматически. Используйте версию, доступную на странице загрузки wkhtmltopdf. Конфигурация, аналогичная debian, может быть установлена с
wget https://bitbucket.org/wkhtmltopdf/wkhtmltopdf/downloads/{path to correct distro and system architecture} sudo rpm -i {.rpm package} sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
Файл конфигурации можно найти по адресу /etc/odoo/openerp-server.conf
Когда файл конфигурации редактируется, Odoo необходимо перезапустить через Systemd:
$ sudo systemctl restart odoo
Источник установки
Odoo zip можно загрузить с https://nightly.odoo.com/8.0/nightly/src/odoo_8.0.latest.zip , тогда zip-файл должен быть несжатым, чтобы использовать его контент
Git позволяет упростить обновление и упростить переключение между различными версиями Odoo. Это также упрощает сохранение немодульных патчей и вкладов. Основной недостаток git заключается в том, что он значительно больше, чем tarball, поскольку он содержит всю историю проекта Odoo.
Репозиторий git - https://github.com/odoo/odoo.git.
Затем вы можете клонировать хранилище с помощью
https://riptutorial.com/ru/home 4
https://nightly.odoo.com/8.0/nightly/src/odoo_8.0.latest.zip
-
$ git clone https://github.com/odoo/odoo.git
Установка зависимостей
Для установки источника требуется вручную устанавливать зависимости:
Python 2.7. на Linux и OS X, включенные по умолчанию
в Windows используйте официальный установщик Python 2.7.9.
если Python уже установлен, убедитесь, что он равен 2.7.9, предыдущие версии менее удобны, а версии 3.x несовместимы с Odoo
настройка PostgreSQL
После установки вам нужно будет создать пользователя postgres: по умолчанию единственным пользователем является postgres, а Odoo запрещает подключение в качестве postgres.
на Linux, используйте пакет дистрибутива, а затем создайте пользователя postgres, названного как ваш логин:
$ sudo su - postgres -c "createuser -s $USER"
Поскольку учетная запись роли совпадает с вашим unix-подключением unix, можно использовать без пароля. на OS X, postgres.app - это самый простой способ начать работу, а затем создать пользователя postgres, как в Linux
в Windows, используйте PostgreSQL для окон, затем добавьте каталог bin PostgreSQL (по умолчанию: C: \ Program Files \ PostgreSQL \ 9.4 \ bin) к вашему PATH
создайте пользователя postgres с паролем, используя pg admin gui: откройте pgAdminIII, дважды щелкните сервер, чтобы создать соединение, выберите «Редактировать» ‣ «Новый объект» ‣ «Новая роль входа», введите имя пользователя в поле «Имя роли» (например, odoo), затем откройте вкладку «Определение» и введите пароль (например, odoo), затем нажмите «ОК».
Пользователь и пароль должны быть переданы в Odoo с использованием параметров -w и -r или файла конфигурации
Python, перечисленные в файле requirements.txt.
в Linux зависимости python могут быть установлены с помощью диспетчера пакетов системы или с помощью pip.
Для библиотек, использующих собственный код (Pillow, lxml, greenlet, gevent, psycopg2, ldap), может потребоваться установить инструменты разработки и собственные
https://riptutorial.com/ru/home 5
-
зависимости до того, как pip сможет самостоятельно установить зависимости. Они доступны в пакетах -dev или -devel для Python, Postgres, libxml2, libxslt, libevent, libsasl2 и libldap2. Тогда сами зависимости Python могут быть установлены:
$ pip install -r requirements.txt
На OS X вам нужно будет установить средства командной строки (xcode-select -install), а затем загрузить и установить менеджер пакетов по вашему выбору (homebrew, macports) для установки зависимостей, отличных от Python. pip можно затем использовать для установки зависимостей Python, как на Linux:
$ pip install -r requirements.txt
на Windows вам нужно установить некоторые из зависимостей вручную, настроить файл requirements.txt, а затем запустить pip для установки исправлений.
Install psycopg using the installer here http://www.stickpeople.com/projects/python/win-psycopg/
Затем отредактируйте файл requirements.txt: удалите psycopg2, как у вас уже есть. удалите необязательные python-ldap, gevent и psutil, потому что они требуют компиляции. добавьте pypiwin32, потому что это необходимо под окнами.
Затем используйте pip для установки зависимостей, используя следующую команду из приглашения cmd.exe (замените \ YourOdooPath на фактический путь, куда вы загрузили Odoo):
C:\> cd \YourOdooPath C:\YourOdooPath> C:\Python27\Scripts\pip.exe install -r requirements.txt
Меньше CSS через nodejs
в Linux используйте диспетчер пакетов вашего дистрибутива для установки nodejs и npm.
Обратите внимание, что
В debian wheezy и Ubuntu 13.10 и до того, как вам нужно установить nodejs вручную:
$ wget -qO- https://deb.nodesource.com/setup | bash - $ apt-get install -y nodejs
В более поздних версиях debian (> jessie) и ubuntu (> 14.04) вам может потребоваться добавить символическую ссылку в качестве узла вызова пакетов npm, но debian вызывает двоичный nodejs
$ apt-get install -y npm
https://riptutorial.com/ru/home 6
-
$ sudo ln -s /usr/bin/nodejs /usr/bin/node Once npm is installed, use it to install less and less-plugin-clean-css: $ sudo npm install -g less less-plugin-clean-css on OS X, install nodejs via your preferred package manager (homebrew, macports) then install less and less-plugin-clean-css: $ sudo npm install -g less less-plugin-clean-css
на Windows, установите nodejs , перезагрузите (обновите PATH) и установите less and less-plugin-clean-css :
C:\> npm install -g less less-plugin-clean-css
Запуск Odoo
После установки всех зависимостей, Odoo можно запустить, запустив odoo.py.
Конфигурация может быть предоставлена либо через аргументы командной строки, либо через файл конфигурации.
Общие необходимые конфигурации:
PostgreSQL host, port, user and password.
У Odoo нет значений по умолчанию за пределами настроек psycopg2: подключается через сокет UNIX на порт 5432 с текущим пользователем и без пароля. По умолчанию это должно работать на Linux и OS X, но оно не будет работать на Windows, поскольку оно не поддерживает UNIX-сокеты. Пользовательский аддон путь за пределы по умолчанию, чтобы загрузить ваши собственные модули
Под Windows типичный способ выполнения odoo:
C:\YourOdooPath> python odoo.py -w odoo -r odoo --addons-path=addons,../mymodules --db-filter=mydb$
Где odoo, odoo - логин и пароль postgresql, ../mymodules каталог с дополнительными аддонами и mydb по умолчанию db для обслуживания на localhost: 8069
В системах * nix типичным способом выполнения odoo будет:
$ ./odoo.py --addons-path=addons,../mymodules --db-filter=mydb$Packaged installers
Что такое Оду?
Odoo (ранее известный как OpenERP и до этого, TinyERP) представляет собой набор
https://riptutorial.com/ru/home 7
-
приложений для корпоративного корпоративного управления. Ориентируясь на компании всех размеров, пакет приложений охватывает все бизнес-потребности: от Веб-сайта / Электронная торговля до производства, инвентаризации и учета, все без исключения интегрированы. Это первый раз, когда разработчику программного обеспечения удалось достичь такого функционального охвата. Odoo является самым установленным бизнес-программным обеспечением в мире. Odoo используется 2 000 000 пользователей по всему миру, начиная от очень маленьких компаний (1 пользователь) и заканчивая очень большими (300 000 пользователей).
Исходный код модулей OpenObject и основных модулей ERP (корпоративного планирования ресурсов) курируется на основе Odoo SA в Бельгии. Кроме того, специализированное программирование, поддержка и другие услуги предоставляются активным глобальным сообществом и сетью из 500 официальных партнеров. Основными компонентами Odoo являются инфраструктура OpenObject, около 30 основных модулей (также называемых официальными модулями) и более 3000 модулей сообщества
Odoo использовался как компонент университетских курсов. Исследование, основанное на экспериментальном обучении, показало, что OpenERP представляет собой подходящую альтернативу проприетарным системам для дополнения обучения.
Несколько книг написано об Оду, некоторые из которых касаются определенных областей, таких как учет или разработка
Odoo получил награды, включая Trends Gazelle и BOSSIE Awards три года подряд.
Он использует скрипты Python и PostgreSQL в качестве базы данных. Его издание сообщества дополняется изданием Enterprise @ 240 долларов США за пользователя в год и коммерчески поддерживаемой онлайн-версией. Репозиторий разработки находится на GitHub.
В 2013 году была создана некоммерческая ассоциация сообщества Odoo для обеспечения постоянного продвижения и поддержки версий и модулей сообщества Odoo в дополнение к работе Odoo SA. В этой организации насчитывается более 150 членов, которые представляют собой сочетание отдельных лиц и организаций.
Прочитайте Начало работы с odoo-8 онлайн: https://riptutorial.com/ru/odoo-8/topic/2151/начало-работы-с-odoo-8
https://riptutorial.com/ru/home 8
https://riptutorial.com/ru/odoo-8/topic/2151/%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-odoo-8https://riptutorial.com/ru/odoo-8/topic/2151/%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-odoo-8https://riptutorial.com/ru/odoo-8/topic/2151/%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-odoo-8
-
глава 2: RPC с использованием API-интерфейса Odoo v8 (функция вызова Python из JavaScript)
замечания
Если вы планируете добавлять новые методы в Python для использования их в RPC из JavaScript, тогда рассмотрите следующие варианты декораторов методов: если вам нужно иметь дело с идентификаторами / наборами записей, то для определения метода python выберите decorator:
@ api.multi - получить набор записей в вашем методе•@ api.one - для получения browse_records один за другим в вашем методе в приведенных выше примерах используется @ api.multi, но @ api.one также может использоваться для обработки идентификаторов в зависимости от требований (однако настоятельно рекомендуется использовать @ api.multi вместо @ api.one по соображениям производительности).
•
Или, если это простая функция, которая не должна иметь дело с записями / идентификаторами, то для метода python выберите декоратор:
@ api.model - Позволяет быть вежливым с API старого стиля.•@ api.multi - Опять же, вы можете использовать его здесь также, просто передайте [ ] (пустой массив) в качестве первого аргумента в javascript ...
•
Ссылки: Документация Odoo RPC , Декораторы методов Odoo 8 API
Examples
Пример модели Odoo для вызова методов из
class my_model(models.Model): _name = "my.model" name = fields.Char('Name') @api.multi def foo_manipulate_records_1(self): """ function returns list of tuples (id,name) """ return [(i.id,i.name) for i in self] @api.multi def foo_manipulate_records_2(self, arg1, arg2) #here you can take advantage of "self" recordset and same time use aditional arguments
https://riptutorial.com/ru/home 9
https://www.odoo.com/documentation/8.0/reference/javascript.html#rpchttps://www.odoo.com/documentation/8.0/reference/javascript.html#rpchttps://www.odoo.com/documentation/8.0/reference/orm.html#module-openerp.apihttps://www.odoo.com/documentation/8.0/reference/orm.html#module-openerp.api
-
"arg1", "arg2" pass @api.model def bar_no_deal_with_ids(self, arg1, arg2): """ concatenate arg1 and arg2 """ return unicode(arg1) + unicode(arg2)
Примеры RPC Odoo
Примеры ниже демонстрируют, как вызвать функцию Python из JavaScript в Odoo 8. В примерах мы называем методы my_model, описанные ранее на этой странице. Предположим, что в следующих примерах переменная «list_of_ids» содержит список (массив) идентификаторов существующих записей модели «my.model».
Вызов метода foo_manipulate_records_1, украшенный с помощью @ api.multi :•
new instance.web.Model("my.model") .call( "foo_manipulate_records_1", [list_of_ids]) .then(function (result) { // do something with result });
Вызов метода foo_manipulate_records_2, украшенный @ api.multi :•
new instance.web.Model("my.model") .call( "foo_manipulate_records_2", [list_of_ids, arg1, arg2]) .then(function (result) { // do something with result });
Вызов метода bar_no_deal_with_ids, украшенный с помощью @ api.model :•
new instance.web.Model("my.model") .call( "bar_no_deal_with_ids", [arg1, arg2]) .then(function (result) { // do something with result });
Также, если это имеет смысл в зависимости от реализации, вы можете вызвать функцию, украшенную @ api.multi, даже если вам не нужно иметь дело с идентификаторами (просто передайте пустой массив вместо ids, как первый элемент списка аргументов):
new instance.web.Model("my.model") .call( "foo_manipulate_records_2", [[], arg1, arg2]) .then(function (result) { // do something with result });
https://riptutorial.com/ru/home 10
-
этот способ может быть полезен в некоторых случаях, поскольку unecorated function в v8.0 api рассматривается как @ api.multi (поскольку @ api.multi является декоратором по умолчанию)
При использовании двух параметров для вызова RPC, которые используются в приведенных выше примерах (имя функции и список аргументов), вы можете использовать третий параметр - словарь аргументов ключевого слова . Настоятельно рекомендуется обходить контекст (в некоторых случаях это может быть даже необходимо), так как это может изменить поведение удаленной процедуры (локализация и т. Д.). Ниже приведен пример с аргументом контекста в вызове RPC (то же самое можно применить ко всем приведенным выше примерам)
var self = this; new instance.web.Model("my.model") .call("foo_manipulate_records_2", [[], arg1, arg2], {'context':self.session.user_context}) .then(function (result) { // do something with result });
Разумеется, вы также можете использовать пользовательский контекст, если это необходимо, вместо того, чтобы оборачивать существующий, как в этом примере.
Прочитайте RPC с использованием API-интерфейса Odoo v8 (функция вызова Python из JavaScript) онлайн: https://riptutorial.com/ru/odoo-8/topic/6613/rpc-с-использованием-api-интерфейса-odoo-v8--функция-вызова-python-из-javascript-
https://riptutorial.com/ru/home 11
https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-https://riptutorial.com/ru/odoo-8/topic/6613/rpc-%D1%81-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC-api-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0-odoo-v8--%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-python-%D0%B8%D0%B7-javascript-
-
глава 3: Добавить файлы CSS и Javascript в модуль Odoo
Синтаксис
Обратите внимание на синтаксис XML: поскольку запись сделана внутри XML-файла, вы не можете оставить какой-либо тег, который был закрыт, как вы могли, в простом HTML, например: , Закрыть вместо этого используйте тег link:
○
•
параметры
Возможные значения параметра inherit_id
имея в виду
web.assets_backendИспользуется только на внутренних страницах, НЕ включается в общедоступный веб-сайт.
website.assets_frontendИспользуется только на общедоступном веб-сайте (через модуль « веб-сайт »).
web.assets_commonИспользуется как на общедоступном веб-сайте, так и на внутренних страницах.
замечания
Если вы не уверены в том, какой вариант подходит для вас, попробуйте первый вариант (бэкэнд), поскольку он используется в большинстве случаев и почти во всех случаях, если вы не установили модуль «веб-сайт». Odoo различает активы «backend» и «frontend», потому что публичный веб-сайт, предоставленный модулем «веб-сайт», использует разные стили и JS-код, чем внутренние страницы, предназначенные для использования в ERP-задачах, то есть «frontend» связан с общедоступным веб-сайтом и «backend» связан с внутренними страницами для ERP (значение «frontend» и «backend» здесь Odoo специфично, но они являются «интерфейсом» в более общем смысле).
Вы можете не только выбирать и использовать один из вариантов, но и использовать любую комбинацию из них (две или все из них) в том же модуле. Фактор backend, интерфейс и общий код JS / CSS в разделенные файлы, чтобы лучше придерживаться DRY и иметь подходящий код на общедоступном веб-сайте и на внутренних страницах.
https://riptutorial.com/ru/home 12
-
Не забудьте добавить «web» (при использовании опции 1 ) или «веб-сайт» (при использовании варианта 2 ) в список зависимостей в манифесте __openerp__.py .
Examples
Храните файлы CSS и JS правильно в модуле Odoo
Файлы CSS и JS должны находиться в каталоге «static» в корневом каталоге модуля (остальное дерево подкаталогов под «static» является необязательным соглашением):
static / src / css / your_file.css•static / src / js / your_file.js•
Затем добавьте ссылки на эти файлы, не указывая один из трех способов, перечисленных в следующих примерах.
Вариант 1: [BACKEND] Добавить файлы CSS и Javascript для использования на внутренних страницах
Способ Odoo v8.0 - добавить соответствующую запись в файл XML:
Добавьте файл XML в манифест (т. __openerp__.py Файл __openerp__.py .):
... 'data': ['your_file.xml'], ...
•
Затем добавьте следующую запись в 'your_file.xml' :•
.... ....
Вариант 2: [FRONTEND] Добавить файлы CSS и Javascript для использования на общедоступном веб-сайте
Примечание: вы должны использовать этот путь, если вы установили модуль «веб-сайт», и
https://riptutorial.com/ru/home 13
-
у вас есть общедоступный веб-сайт.
Добавьте следующую запись в 'your_file.xml' :•
Вариант 3: [COMMON] Добавить файлы CSS и Javascript для использования на всех страницах (backend & frontend)
Добавьте следующую запись в 'your_file.xml' :•
Прочитайте Добавить файлы CSS и Javascript в модуль Odoo онлайн: https://riptutorial.com/ru/odoo-8/topic/3401/добавить-файлы-css-и-javascript-в-модуль-odoo
https://riptutorial.com/ru/home 14
https://riptutorial.com/ru/odoo-8/topic/3401/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-css-%D0%B8-javascript-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-odoohttps://riptutorial.com/ru/odoo-8/topic/3401/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-css-%D0%B8-javascript-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-odoohttps://riptutorial.com/ru/odoo-8/topic/3401/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-css-%D0%B8-javascript-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-odoohttps://riptutorial.com/ru/odoo-8/topic/3401/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-css-%D0%B8-javascript-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-odoohttps://riptutorial.com/ru/odoo-8/topic/3401/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-css-%D0%B8-javascript-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-odoohttps://riptutorial.com/ru/odoo-8/topic/3401/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-css-%D0%B8-javascript-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-odoohttps://riptutorial.com/ru/odoo-8/topic/3401/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-css-%D0%B8-javascript-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-odoo
-
глава 4: Как активировать режим OpenERP Developer
замечания
Режим разработчика
Режим разработки Odoo позволяет внести существенные изменения в базу данных Odoo, например, добавлять поля к вашим документам и представлениям. Вы изменяете представления по умолчанию своих действий и можете даже создавать динамические формы на основе других полей в ваших моделях.
преимущество
Хотя Odoo - мощная платформа приложений, цикл разработки может быть жестоким, чтобы протестировать изменения в вашем приложении. Используя режим разработчика, вы можете тестировать выражения и решать множество функциональных проблем, не перезагружая сервер много раз, чтобы протестировать простые изменения.
Кроме того, инструмент разработчика Odoo отлично подходит для просмотра архитектуры форм и представлений, чтобы узнать, как поля привязаны к модулям, их доменам, контекстам и другим атрибутам. В этом видео мы точно исследуем, как мы используем эти инструменты для модификации и создания приложений Odoo.
Ограничения
Хотя может быть очень заманчиво использовать режим разработчика для внесения больших изменений в ваше приложение, есть некоторые недостатки. В зависимости от того, что вы изменяете и изменяете, вы можете потерять эти изменения с будущими обновлениями модулей или при установке дополнительных приложений в Odoo. Это особенно верно для изменений в представлениях.
Чтобы активировать режим разработчика, вы просто просто записываете
для версии v7
И отладки =
перед тем, как знак # просто добавит его.
HTTP: // локальный: 8069 / дб = test_db и отладки = #
для версии> v7
https://riptutorial.com/ru/home 15
http://localhost:8069/?db=test_db&debug=#http://localhost:8069/?db=test_db&debug=#http://localhost:8069/?db=test_db&debug=#http://localhost:8069/?db=test_db&debug=#
-
HTTP: // локальный: 8069 / веб - отладка =
Возможно, вы не увидите меню « Оооо», потому что может быть установлен модуль дебрендинга .
Examples
Активировать режим разработчика
Чтобы активировать режим разработчика:
Войдите на передний конец ODOO1. Нажмите «Имя пользователя» в верхней правой части экрана.2. Выберите «О»3. Нажмите «Активировать режим разработчика» во всплывающем окне.4.
https://riptutorial.com/ru/home 16
http://localhost:8069/web?debug=http://localhost:8069/web?debug=http://localhost:8069/web?debug=http://i.stack.imgur.com/uYtrP.png
-
Активация режима разработчика в Odoo 8
Когда вы войдете в приложение Odoo, вы найдете возможность увидеть, кто сейчас находится в личном кабинете в верхнем правом углу. Эта информация пользователя имеет кнопку выпадающего меню. Нажмите на раскрывающийся список, затем вы найдете список. В этом списке выберите опцию Odoo.com. При нажатии на это откроется всплывающее окно About . В этом окне в верхнем правом углу вы найдете такой вариант, как режим разработчика Acivate . Нажав на эту ссылку, вы перезагрузите веб-страницу.
После перезагрузки он будет находиться в режиме разработчика. Тогда ссылка изменится на что-то вроде этого http: // localhost: 8069 / web? Debug = # id = 23 & view_type = form & model = res.partner
Активировать режим разработчика в Odoo 10
Активировать режим разработчика:
https://riptutorial.com/ru/home 17
http://i.stack.imgur.com/GIXrV.pnghttp://localhost:8069/web?debug=#id=23&view_type=form&model=res.partnerhttp://localhost:8069/web?debug=#id=23&view_type=form&model=res.partner
-
Войдите в приложение-приложение.1. После входа в систему пользователь может увидеть несколько меню odoo. Нажмите на меню настроек.
2.
Нажмите «Активировать режим разработчика», который находится в правом углу страницы настроек.
1.
Режим разработчика теперь активирован.2.
Прочитайте Как активировать режим OpenERP Developer онлайн: https://riptutorial.com/ru/odoo-8/topic/3311/как-активировать-режим-openerp-developer
https://riptutorial.com/ru/home 18
https://i.stack.imgur.com/JjM8R.pnghttps://i.stack.imgur.com/Wj01f.pnghttps://riptutorial.com/ru/odoo-8/topic/3311/%D0%BA%D0%B0%D0%BA-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC-openerp-developerhttps://riptutorial.com/ru/odoo-8/topic/3311/%D0%BA%D0%B0%D0%BA-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC-openerp-developerhttps://riptutorial.com/ru/odoo-8/topic/3311/%D0%BA%D0%B0%D0%BA-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC-openerp-developer
-
глава 5: Каковы методы и детали ОРМ?
замечания
Создать метод: создать новую запись с указанным значением. Принимает несколько значений полей и возвращает набор записей, содержащий созданную запись
def create(self,vals): return super(class_name, self).create(vals)
Метод записи : обновлять записи с заданными идентификаторами с заданными значениями поля. Принимает ряд значений полей, записывает их во все записи в своем наборе записей. Не возвращает ничего
def write(self,vals): return super(class_name, self).write(vals)
Метод поиска: поиск записей на основе домена поиска. Получает домен поиска, возвращает набор записей совпадающих записей. Может возвращать подмножество совпадающих записей (смещение и предельные параметры) и быть упорядоченным (параметр порядка)
self.search([('customer','=',True)]) self.env['res.partner'].search(['partner','=',True])
Метод поиска : выборка записей в виде объектов, позволяющих использовать точечную нотацию для просмотра полей и отношений. Получает идентификатор базы данных или список идентификаторов и возвращает набор записей, полезный, когда идентификаторы записи получаются из внешнего Оду (например, в обратном направлении через внешнюю систему) или при вызове методов в старом API.
self.browse([7,8,9]) self.env['res.partner'].browse([7,8,9])
Существует методы: возвращает новый набор записей, содержащий только записи, которые существуют в базе данных. Может использоваться для проверки того, существует ли запись (например, полученная извне).
records = records.exists()
Метод ref: метод среды, возвращающий запись, соответствующую предоставленному внешнему идентификатору
self.env.ref('base.group_public')
https://riptutorial.com/ru/home 19
-
make_one: проверяет, что набор записей является одиночным (только содержит одну запись), вызывает ошибку, иначе
records.ensure_one()
Examples
Различные типы методов ORM
Создайте()1. записывать()2. поиск()3. просматривать()4. существует()5. исх ()6. ensure_one ()7.
Прочитайте Каковы методы и детали ОРМ? онлайн: https://riptutorial.com/ru/odoo-8/topic/6150/каковы-методы-и-детали-орм-
https://riptutorial.com/ru/home 20
https://riptutorial.com/ru/odoo-8/topic/6150/%D0%BA%D0%B0%D0%BA%D0%BE%D0%B2%D1%8B-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B8-%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D0%B8-%D0%BE%D1%80%D0%BC-https://riptutorial.com/ru/odoo-8/topic/6150/%D0%BA%D0%B0%D0%BA%D0%BE%D0%B2%D1%8B-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B8-%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D0%B8-%D0%BE%D1%80%D0%BC-https://riptutorial.com/ru/odoo-8/topic/6150/%D0%BA%D0%B0%D0%BA%D0%BE%D0%B2%D1%8B-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B8-%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D0%B8-%D0%BE%D1%80%D0%BC-
-
глава 6: Настройка электронной почты - Office 365 в Odoo
Examples
Настройка электронной почты
- Первоначально проверьте настройки электронной почты
В Odoo перейдите в Настройки -> Эл. Почта.•
https://riptutorial.com/ru/home 21
http://i.stack.imgur.com/7Uy7K.png
-
Введите значения полей в параметрах «Серверы входящих сообщений» и «Серверы исходящей почты».
•
https://riptutorial.com/ru/home 22
http://i.stack.imgur.com/Ptekv.png
-
Прочитайте Настройка электронной почты - Office 365 в Odoo онлайн: https://riptutorial.com/ru/odoo-8/topic/6648/настройка-электронной-почты---office-365-в-odoo
https://riptutorial.com/ru/home 23
http://i.stack.imgur.com/wLbg4.pnghttp://i.stack.imgur.com/bqTHn.pnghttps://riptutorial.com/ru/odoo-8/topic/6648/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BE%D1%87%D1%82%D1%8B---office-365-%D0%B2-odoohttps://riptutorial.com/ru/odoo-8/topic/6648/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BE%D1%87%D1%82%D1%8B---office-365-%D0%B2-odoohttps://riptutorial.com/ru/odoo-8/topic/6648/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BE%D1%87%D1%82%D1%8B---office-365-%D0%B2-odoohttps://riptutorial.com/ru/odoo-8/topic/6648/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BE%D1%87%D1%82%D1%8B---office-365-%D0%B2-odoohttps://riptutorial.com/ru/odoo-8/topic/6648/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BE%D1%87%D1%82%D1%8B---office-365-%D0%B2-odoo
-
глава 7: Пользовательские виджеты для полей
замечания
убедитесь, что вы правильно добавили файл javascript в свой модуль•не забудьте добавить 'web' в качестве зависимости в __openerp__.py:•
'depends': ['web',....]
Examples
Пользовательский виджет для числовых полей для использования в TreeView
В приведенном ниже примере виджет демонстрирует, как отформатировать отдельные ячейки столбца TreeView условно, в зависимости от значения поля в конкретной ячейке. Если значение поля отрицательное, оно будет отображаться красным цветом, а символ минус будет скрыт, иначе он будет отображаться в обычном цвете.
Виджет должен быть написан на JavaScript, позволяет использовать custom_widget_name как имя для нового виджета, а your_module_name - это техническое имя вашего модуля (то же, что и имя корневого каталога вашего модуля)
Uunder static / src / js / folder в вашем модуле добавляет файл javascript (скажем, static / src / js / custom_widget .js) с настраиваемым виджемом :
openerp.your_module_name = function (instance) { instance.web.list.columns.add('field.custom_widget_name', 'instance.your_module_name.custom_widget_name'); instance.your_module_name.custom_widget_name = instance.web.list.Column.extend({ _format: function (row_data, options) { res = this._super.apply(this, arguments); var amount = parseFloat(res); if (amount < 0){ return ""+(-amount)+""; } return res } }); // //here you can add more widgets if you need, as above... // };
https://riptutorial.com/ru/home 24
http://www.riptutorial.com/odoo-8/topic/3401/add-css-and-javascript-files-to-odoo-modulehttp://www.riptutorial.com/odoo-8/topic/3401/add-css-and-javascript-files-to-odoo-modulehttp://www.riptutorial.com/odoo-8/topic/3401/add-css-and-javascript-files-to-odoo-module
-
приведенный выше примерный виджет может использоваться в представлении списка для поля типа float и применяется к следующим правилам:
Отрицательные числа:Показаны красным цветом.○Минус-символ (символ «-») «скрыт».○
•
Для положительных чисел используется макет по умолчанию.•
Этот примерный виджет может быть применен к полю в древовидной структуре Odoo. Вы можете использовать виджет, подобный этому, для столбца, в котором вам нужно применить специальные правила:
. . . . . . . . . . . .
Прочитайте Пользовательские виджеты для полей онлайн: https://riptutorial.com/ru/odoo-8/topic/6198/пользовательские-виджеты-для-полей
https://riptutorial.com/ru/home 25
https://riptutorial.com/ru/odoo-8/topic/6198/%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9https://riptutorial.com/ru/odoo-8/topic/6198/%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9https://riptutorial.com/ru/odoo-8/topic/6198/%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B5-%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9
-
глава 8: Поля, используемые в Odoo 8
Вступление
Это раздел, где вы можете найти информацию о полях, которые используются в Odoo 8
параметры
параметры Описание
строка = «Имя» Дополнительная метка поля
вычислим = "_ compute_name_custom"
Преобразовать поля в вычисленные поля
магазин = True Если он вычислен, он сохранит результат
выберите = True Индекс силы в поле
только для чтения = True Поле будет отображаться только в виде
инвертировать = "_ write_name" Триггер обновления
требуется = True Обязательное поле
перевод = True Разрешение перевода
помощь = 'BlaBla' Текст подсказки справки
comodel_name = "model.name" Название соответствующей модели
inverse_name = "field_name"реляционный столбец противоположной модели
отношение = 'many2many_table_name'
имя реляционной таблицы для many2many
columns1 = 'left_column_name' имя таблицы реляционных таблиц
column2 = 'right_column_name'имя правой колонки таблицы реляционных таблиц
замечания
https://riptutorial.com/ru/home 26
-
Odoo и ORM: Odoo использует метод ORM (Object Relational Mapping) для взаимодействия с базой данных. ORM поможет создать базу данных виртуальных объектов, которая может использоваться внутри Python. В методе ORM каждая модель представлена классом, который подклассы Models.model.
Models.model - это главный суперкласс для постоянных баз данных с остальными версиями Odoo. Модели Odoo создаются путем наследования этого класса.
Пример:
class Employee(Models.model): _name = 'module.employee' #Rest of the code goes here
Здесь _name является структурным атрибутом, который сообщает системе о названии создаваемой таблицы базы данных.
Каждая модель имеет ряд переменных класса, каждая из которых представляет собой поле базы данных в модели. Каждое поле представлено экземпляром класса openerp.fields.Field. Поля в Odoo перечислены ниже ..
1 Булевое поле
ex: flag = fields.Boolean()
2 Char Field
ex: flag = fields.Char()
3 Текст
ex: flag = fields.Text()
4 Html
ex: flag = fields.Html()
5 Целое число
ex: flag = fields.Integer()
6 Float
ex: flag = fields.Float()
7 Дата
https://riptutorial.com/ru/home 27
-
ex: flag = fields.Date()
8 Datetime
ex: flag = fields.Datetime()
9 Выбор
ex: flag = fields.Selection()
10 Many2one
ex: flag = fields.Many2one()
11 One2many
ex: flag = fields.One2many()
12 Many2many
ex: flag = fields.Many2many()
Examples
Примеры полей Odoo 8
Odoo использует метод ORM (Object Relational Mapping) для взаимодействия с базой данных. ORM поможет создать базу данных виртуальных объектов, которая может использоваться внутри Python. В методе ORM каждая модель представлена классом подклассов Models.model. Models.model - это главный суперкласс для постоянных баз данных с остальными версиями Odoo. Модели Odoo создаются путем наследования этого класса
name = fields.Char(string='New Value') flag = fields.Boolean(string='Flag',default=False) amount = fields.Float(string='Amount',digits=(32, 32)) code = fields.Selection(string='Code',selection=[('a', 'A'),('b','B')]) customer = fields.Many2one(comodel_name='res.users') sale_order_line = fields.One2many(comodel_name='res.users', inverse_name='rel_id') tags = fields.Many2many(comodel_name='res.users', relation='table_name', column1='col_name',
https://riptutorial.com/ru/home 28
-
column2='other_col_name')
Прочитайте Поля, используемые в Odoo 8 онлайн: https://riptutorial.com/ru/odoo-8/topic/8152/поля--используемые-в-odoo-8
https://riptutorial.com/ru/home 29
https://riptutorial.com/ru/odoo-8/topic/8152/%D0%BF%D0%BE%D0%BB%D1%8F--%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B2-odoo-8https://riptutorial.com/ru/odoo-8/topic/8152/%D0%BF%D0%BE%D0%BB%D1%8F--%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B2-odoo-8https://riptutorial.com/ru/odoo-8/topic/8152/%D0%BF%D0%BE%D0%BB%D1%8F--%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B2-odoo-8
-
глава 9: Создание автоматизированных функций для модели
Вступление
Нам часто нужно запускать некоторый код автоматически во время установки модуля. У этого есть много причин, например, настройка параметров модуля Sale для соответствия нашим требованиям проекта.
В этом разделе вы узнаете, как выполнять автоматическую функцию при установке модуля.
Examples
Прежде всего вам нужно создать xml-файл для вызова функции функции
Этот простой файл XML является называют _configure_sales функции от MODEL_NAME модели.
ПРИМЕЧАНИЕ. Этот XML-файл должен находиться в верхней части массива data , потому что Odoo является файлом processiong xml сверху вниз.
Соответствующий файл Python
class *model_name*(models.Model): _name = *model_name* @api.model def _configure_sales(self): # Do the configuration here
Каждый раз, когда модуль будет установлен, эта функция будет работать.
Примечание. Если вы удалите noupdate из xml, функция также будет запущена при обновлении.
https://riptutorial.com/ru/home 30
-
Прочитайте Создание автоматизированных функций для модели онлайн: https://riptutorial.com/ru/odoo-8/topic/10633/создание-автоматизированных-функций-для-модели
https://riptutorial.com/ru/home 31
https://riptutorial.com/ru/odoo-8/topic/10633/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8https://riptutorial.com/ru/odoo-8/topic/10633/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8https://riptutorial.com/ru/odoo-8/topic/10633/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8
-
кредиты
S. No
Главы Contributors
1Начало работы с odoo-8
4444, Community, danidee, T.V.
2
RPC с использованием API-интерфейса Odoo v8 (функция вызова Python из JavaScript)
T.V.
3Добавить файлы CSS и Javascript в модуль Odoo
George Daramouskas, T.V.
4Как активировать режим OpenERP Developer
AKHIL MATHEW, Emipro Technologies Pvt. Ltd., Gopakumar N G, Mehedi Hasan
5Каковы методы и детали ОРМ?
AKHIL MATHEW, Mani
6Настройка электронной почты - Office 365 в Odoo
Don Chakkappan
7Пользовательские виджеты для полей
T.V.
8Поля, используемые в Odoo 8
AKHIL MATHEW
9Создание автоматизированных функций для модели
Dachi Darchiashvili
https://riptutorial.com/ru/home 32
https://riptutorial.com/ru/contributor/1464444/4444https://riptutorial.com/ru/contributor/-1/communityhttps://riptutorial.com/ru/contributor/3734244/danideehttps://riptutorial.com/ru/contributor/6483386/t-v-https://riptutorial.com/ru/contributor/6483386/t-v-https://riptutorial.com/ru/contributor/2583086/george-daramouskashttps://riptutorial.com/ru/contributor/6483386/t-v-https://riptutorial.com/ru/contributor/5424153/akhil-mathewhttps://riptutorial.com/ru/contributor/4093735/emipro-technologies-pvt--ltd-https://riptutorial.com/ru/contributor/2341993/gopakumar-n-ghttps://riptutorial.com/ru/contributor/2341993/gopakumar-n-ghttps://riptutorial.com/ru/contributor/2176115/mehedi-hasanhttps://riptutorial.com/ru/contributor/5424153/akhil-mathewhttps://riptutorial.com/ru/contributor/4178767/manihttps://riptutorial.com/ru/contributor/2221895/don-chakkappanhttps://riptutorial.com/ru/contributor/6483386/t-v-https://riptutorial.com/ru/contributor/5424153/akhil-mathewhttps://riptutorial.com/ru/contributor/6048944/dachi-darchiashvili
Окологлава 1: Начало работы с odoo-8замечанияВерсииExamplesНастроить
Конфигурация:Что такое Оду?
глава 2: RPC с использованием API-интерфейса Odoo v8 (функция вызова Python из JavaScript)замечанияExamplesПример модели Odoo для вызова методов изПримеры RPC Odoo
глава 3: Добавить файлы CSS и Javascript в модуль OdooСинтаксиспараметрызамечанияExamplesХраните файлы CSS и JS правильно в модуле OdooВариант 1: [BACKEND] Добавить файлы CSS и Javascript для использования на внутренних страницахВариант 2: [FRONTEND] Добавить файлы CSS и Javascript для использования на общедоступном веб-сайтеВариант 3: [COMMON] Добавить файлы CSS и Javascript для использования на всех страницах (backend & frontend)
глава 4: Как активировать режим OpenERP DeveloperзамечанияExamplesАктивировать режим разработчикаАктивация режима разработчика в Odoo 8Активировать режим разработчика в Odoo 10
глава 5: Каковы методы и детали ОРМ?замечанияExamplesРазличные типы методов ORM
глава 6: Настройка электронной почты - Office 365 в OdooExamplesНастройка электронной почты
глава 7: Пользовательские виджеты для полейзамечанияExamplesПользовательский виджет для числовых полей для использования в TreeView
глава 8: Поля, используемые в Odoo 8ВступлениепараметрызамечанияExamplesПримеры полей Odoo 8
глава 9: Создание автоматизированных функций для моделиВступлениеExamplesПрежде всего вам нужно создать xml-файл для вызова функции функцииСоответствующий файл Python
кредиты