Skip to main content

odoo development project mananagement

Project description

odpm

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

Идея

В процессе работы с платформой odoo у меня начали появляться рутинные задачи, которые требуют большой усидчивости и внимания. Ситуацию усугбляет то, что отладка и отлов ошибок в них очень сильно затруднен. Например мне нужно создать новый проект, для этого мне нужно подготовить окружение с учетом версий не только odoo но и самого python. А если мне нужно проект сделать совместимым с несколькими версиями то совсем тяжко. И очень часто возникала ситуация когда трудоемкость самого модуля сильно меньше чем затраты не создание окружения и прочих вспомогательных операций. Со временем я осознал что действую в этих ситуациях по определенному шаблону и пришло понимание того, что эти действия необходимо автоматизировать. Вот несколько операций которые вы можете совершать с помощью данного инструмента:

  • Создать рабочее окружение для проекта
  • Создать архив базы
  • Сделать сброс базы
  • Восттановить базу из архива
  • ...

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

Работа с проектом

В связи с тем, что чаще всего мне требовалось подхватывать уже существующий проект, то на данный момент автоматизированное развертывание окружение возможно только при наличии git репозитория уже сущствующиего проекта, содержащего odoo модули. Репозиторий должен иметь ветки с именами версий аналогично проекту odoo. Инициализация проекта пока в разработке.

На данный момент работа программы протестирована только на OS GNU/Linux Debian

Установка

sudo pip3 install odpm

Выбирем или создаем каталог, где будет располагаться наш проект и создаем odpm_project.json файл со следующим содержимым:

{
    "projects_dir": "/home/my_home_dir/projects/",
    "odoo_projects_dir": "/home/www-data/odoo_projects/",
    "odoo_dir": "/home/www-data/odoo/",
    "odoo_venvs_dir": "/home/www-data/odoo_venvs/",
    "dependencies_projects_urls": [],
    "dev_project_url": "https://yartsev@bitbucket.org/yartsevco/solid_pos.git",
    "odoo_version_for_project": "11.0",
    "project_name": "oodobno",
    "modules_to_update":["solid_pos"],
    "git_servers_params":{
         "bitbucket.org":{
            "user":"your_login",
            "password":"your_password"
        }
    }
    "database_name":"new_db"
}

Каталог с проектом должен находится в месте, указанном в параметре projects_dir.

Параметры json файла:

  • projects_dir - каталог с проектами, в данном случаем проект может являть собой не только модули odoo, а нечто большее, так же у меня проект хранит файл конфигурации odoo, и файл запуска odoo в режиме разработки, для каждого проекта они уникальны. Необязательный параметр, по умолчанию будет создан каталог в домашней директории пользователя от имени которого запускается приложение. Тип - строка
  • odoo_projects_dir - каталог в который загружаются все проекты которые являют собой либо модуль odoo либо несколько модулей, эти проект должны иметь ветки с именами совподающими с версиями odoo. Необязательный параметр, по умолчанию будет создан каталог в домашней директории пользователя от имени которого запускается приложение. Тип - строка
  • odoo_dir - каталог, в который будет склонирована сама odoo из своего официального репозитория. Необязательный параметр, по умолчанию будет создан каталог в домашней директории пользователя от имени которого запускается приложение. Тип - строка
  • odoo_venvs_dir - каталог в котором содрежатся виртуальные окружения используемых разработчиком версий odoo. Необязательный параметр, по умолчанию будет создан каталог в домашней директории пользователя от имени которого запускается приложение. Тип - строка
  • dependencies_projects_urls - список проектов созданных третьими лицами (например OCA или Muk). Обязательный параметр. Тип - массив.
  • dependencies_projects_dirs - список каталогов со сторонними проектами, которые не находятся в git, но тут нет проверки версии, поэтому придется следить самостоятельно за этим. тип - массив
  • dev_project_url - ссылка на текущий разрабатываемый проект. Обязательный параметр. Тип - строка
  • odoo_version_for_project - имя версии odoo для проекта. Обязательный параметр. Тип - строка.
  • project_name - имя текущего проекта, можно не указывать. Если указываете то должно совпадать с именем каталога в котором находится проект. Обязательный параметр. Тип - строка.
  • git_servers_params - можно указать сервера и логин с паролем для него, чтобы odpm при работе с закрытыми репозиториями не спрашивал пароли, но данное решение не является безопасным, используете на свой страх и риск. Обязательный параметр. Тип - объект.
  • database_name - имя базы данных, которое будет использовано при разработке. Необязательный параметр, по умолчанию будет создана баз с именем проекта с прибавлениме версии odoo. Такой подход позволяет быстро переключаться между версий системы. Тип - строка.
  • modules_to_update - список модулей, который будет установлен при первом запуске базы или автоматически обновлен при перезапуске. Обязательный параметр. Тип - массив.

Параметры коммандной строки

  • --drop-db - укажите через пробел имя базы данных для сброса
  • --backup-db - используется совместно с параметром --arch-path, позволяет сделать архив базы данных
  • --restore-db - используется совместно с параметром --arch-path, позволяет восстановить архив базы данных
  • --arch-path - путь к архиву базы данных, используется для создания и восстановления архивов баз
  • --update - делает git pull во всех репозиториях odoo и проектах с модулями odoo
  • --project-path - данный парметр позволяет запустить odpm в контесте другого проекта
  • --dev-restart - запустит odoo с вашим проектом выводом консоли
  • --create-module - создаст заготовку модуля из шаблона, в отличии от стандартного в шаблоне присутствует часть фронтэнда
  • --change-password - замена пароля в базе, которая указана в проекте, на указанный в параметре

Примеры


Дорожная карта:

  • сброс базы +
  • бекап базы +
  • восстановление базы +
  • создание модуля odoo с файлами для фронтэнда +
  • обновить git репозитории +
  • принудительная пересборка окружения virtualenv -
  • инициализазия проекта +
  • сделать файл конфигурации для глобальных значений -
  • нужно добавить сбор ключей для git серверов - ???

История изменений


  • Release 0.0.14 (01-02-2020)

    • Добавлена команда --change-password для смены пароля администратора системы
  • Release 0.0.1 (03-01-2020)

    • Первый релиз

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odpm-0.0.18.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odpm-0.0.18-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

Details for the file odpm-0.0.18.tar.gz.

File metadata

  • Download URL: odpm-0.0.18.tar.gz
  • Upload date:
  • Size: 32.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3

File hashes

Hashes for odpm-0.0.18.tar.gz
Algorithm Hash digest
SHA256 d19f9bf1a8ddb4bb59f97e019b53b32252828c62b520b4078d12a8161fe9f0a3
MD5 fc3d2465987991e6cd23486b71238c6b
BLAKE2b-256 edfb1c20676c0b150186525d0867979fefe044ab9597a6588be517a61fdc1f31

See more details on using hashes here.

File details

Details for the file odpm-0.0.18-py3-none-any.whl.

File metadata

  • Download URL: odpm-0.0.18-py3-none-any.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3

File hashes

Hashes for odpm-0.0.18-py3-none-any.whl
Algorithm Hash digest
SHA256 0f3b790d757c930846654bfd2d89ca308af3f889cb783a824582381394968940
MD5 03240763ea4639a022a29b5ac2d8ad8d
BLAKE2b-256 59214494e8cae65e8c6b0ed5cf133ee70236234ebb05d62254acfca9ad262bd7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page