Package: odpm
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)Первый релиз