[IMP] support change odoo and python version
- Makefile show version, switch version and install different version - erplibre_version with odoo_version, poetry_version and python_version - support multiple docker version - support odoo 12, odoo 14, odoo 16 - bullseye, bookworm debian - update latest version - script update_env_version to detect actual version and refactor it - adapt file path to support multiple version - poetry with verbose by default, ignore python keyring - python script to generate image db with parallel for all odoo version - check_addons_exist before generate all image - support delay to change queue parallel - fix odoo 12 product configurator - can show demo website - swith odoo - force create addons if missing - update manifest, because gen config break with wrong manifest
This commit is contained in:
parent
4989c1edbf
commit
d91c3c2e95
62 changed files with 25704 additions and 1695 deletions
17
.gitignore
vendored
17
.gitignore
vendored
|
|
@ -3,7 +3,7 @@
|
||||||
*.tmp
|
*.tmp
|
||||||
*.bak
|
*.bak
|
||||||
.idea
|
.idea
|
||||||
.venv
|
.venv*
|
||||||
*.log
|
*.log
|
||||||
config.conf
|
config.conf
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
|
|
@ -12,9 +12,12 @@ config.conf
|
||||||
coverage*
|
coverage*
|
||||||
|
|
||||||
.repo
|
.repo
|
||||||
|
addons
|
||||||
!addons/
|
!addons/
|
||||||
addons/*
|
addons/*
|
||||||
|
addons*/*
|
||||||
!script/addons
|
!script/addons
|
||||||
|
addons.*
|
||||||
doc/itpp*
|
doc/itpp*
|
||||||
doc/odoo*
|
doc/odoo*
|
||||||
script/OCA*
|
script/OCA*
|
||||||
|
|
@ -26,3 +29,15 @@ wkhtmltox*
|
||||||
cache
|
cache
|
||||||
node_modules
|
node_modules
|
||||||
docker-compose.override.yml
|
docker-compose.override.yml
|
||||||
|
|
||||||
|
# Generated by ERPLibre
|
||||||
|
manifest/default.dev.xml
|
||||||
|
poetry.lock
|
||||||
|
pyproject.toml
|
||||||
|
.erplibre-semver-version
|
||||||
|
.erplibre-version
|
||||||
|
.odoo-version
|
||||||
|
.poetry-version
|
||||||
|
.python-version
|
||||||
|
requirements.txt
|
||||||
|
requirement/ignore_requirements.txt
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
3.7.16
|
|
||||||
352
Makefile
352
Makefile
|
|
@ -67,6 +67,13 @@ run_parallel_cg_template:
|
||||||
run_parallel_cg_migrator:
|
run_parallel_cg_migrator:
|
||||||
parallel < ./conf/list_cg_migrator_test.txt
|
parallel < ./conf/list_cg_migrator_test.txt
|
||||||
|
|
||||||
|
############
|
||||||
|
# VERSION #
|
||||||
|
############
|
||||||
|
.PHONY: version
|
||||||
|
version:
|
||||||
|
./script/version/update_env_version.py
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# INSTALL #
|
# INSTALL #
|
||||||
#############
|
#############
|
||||||
|
|
@ -75,12 +82,64 @@ install:install_os install_dev
|
||||||
|
|
||||||
.PHONY: install_dev
|
.PHONY: install_dev
|
||||||
install_dev:
|
install_dev:
|
||||||
./script/install/install_locally_dev.sh
|
# ./script/version/update_env_version.py
|
||||||
|
# ./script/install/install_locally_dev.sh
|
||||||
|
./script/version/update_env_version.py --install_dev
|
||||||
|
|
||||||
|
.PHONY: install_odoo_16
|
||||||
|
install_odoo_16:
|
||||||
|
./script/version/update_env_version.py --erplibre_version odoo16.0_python3.10.14 --install_dev
|
||||||
|
|
||||||
|
.PHONY: switch_odoo_16
|
||||||
|
switch_odoo_16:
|
||||||
|
./script/version/update_env_version.py --erplibre_version odoo16.0_python3.10.14 --switch
|
||||||
|
./script/make.sh config_gen_all
|
||||||
|
|
||||||
|
.PHONY: install_odoo_14
|
||||||
|
install_odoo_14:
|
||||||
|
./script/version/update_env_version.py --erplibre_version odoo14.0_python3.8.20 --install_dev
|
||||||
|
|
||||||
|
.PHONY: switch_odoo_14
|
||||||
|
switch_odoo_14:
|
||||||
|
./script/version/update_env_version.py --erplibre_version odoo14.0_python3.8.20 --switch
|
||||||
|
./script/make.sh config_gen_all
|
||||||
|
|
||||||
|
.PHONY: install_odoo_12
|
||||||
|
install_odoo_12:
|
||||||
|
./script/version/update_env_version.py --erplibre_version odoo12.0_python3.7.17 --install_dev
|
||||||
|
|
||||||
|
.PHONY: switch_odoo_12
|
||||||
|
switch_odoo_12:
|
||||||
|
./script/version/update_env_version.py --erplibre_version odoo12.0_python3.7.17 --switch
|
||||||
|
./script/make.sh config_gen_all
|
||||||
|
|
||||||
|
.PHONY: install_odoo_all_version
|
||||||
|
install_odoo_all_version:
|
||||||
|
./script/make.sh install_odoo_12
|
||||||
|
./script/make.sh install_odoo_14
|
||||||
|
./script/make.sh install_odoo_16
|
||||||
|
|
||||||
|
.PHONY: install_odoo_all_version_dev
|
||||||
|
install_odoo_all_version_dev:
|
||||||
|
echo "Open Pycharm, close it before install Odoo and reopen at the end"
|
||||||
|
pycharm .
|
||||||
|
./script/make.sh install_odoo_12
|
||||||
|
./script/make.sh install_odoo_14
|
||||||
|
./script/make.sh install_odoo_16
|
||||||
|
|
||||||
|
#.PHONY: install_update_odoo
|
||||||
|
#install_update_odoo:
|
||||||
|
# ./script/version/update_env_version.py --install_dev --update_addons
|
||||||
|
|
||||||
|
.PHONY: install_show_version
|
||||||
|
install_show_version:
|
||||||
|
./script/version/update_env_version.py -l
|
||||||
|
|
||||||
# Install this for the first time of dev environment
|
# Install this for the first time of dev environment
|
||||||
.PHONY: install_os
|
.PHONY: install_os
|
||||||
install_os:
|
install_os:
|
||||||
./script/install/install_dev.sh
|
#./script/install/install_dev.sh
|
||||||
|
./script/version/update_env_version.py --install
|
||||||
|
|
||||||
.PHONY: install_production
|
.PHONY: install_production
|
||||||
install_production:
|
install_production:
|
||||||
|
|
@ -95,6 +154,13 @@ install_docker_debian:
|
||||||
install_docker_ubuntu:
|
install_docker_ubuntu:
|
||||||
./script/install/install_ubuntu_docker.sh
|
./script/install/install_ubuntu_docker.sh
|
||||||
|
|
||||||
|
###################
|
||||||
|
# Environnement #
|
||||||
|
###################
|
||||||
|
.PHONY: pyenv_update
|
||||||
|
pyenv_update:
|
||||||
|
~/.pyenv/bin/pyenv update
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
# DB installation #
|
# DB installation #
|
||||||
#####################
|
#####################
|
||||||
|
|
@ -161,14 +227,6 @@ db_restore_prod_client:
|
||||||
db_restore_erplibre_base_db_test_image_test:
|
db_restore_erplibre_base_db_test_image_test:
|
||||||
./script/database/db_restore.py --database test --image test
|
./script/database/db_restore.py --database test --image test
|
||||||
|
|
||||||
.PHONY: db_restore_erplibre_base_db_test2
|
|
||||||
db_restore_erplibre_base_db_test2:
|
|
||||||
./script/database/db_restore.py --database test2
|
|
||||||
|
|
||||||
.PHONY: db_restore_erplibre_base_db_test3
|
|
||||||
db_restore_erplibre_base_db_test3:
|
|
||||||
./script/database/db_restore.py --database test3
|
|
||||||
|
|
||||||
.PHONY: db_restore_erplibre_website_db_test
|
.PHONY: db_restore_erplibre_website_db_test
|
||||||
db_restore_erplibre_website_db_test:
|
db_restore_erplibre_website_db_test:
|
||||||
./script/database/db_restore.py --database test --image erplibre_website
|
./script/database/db_restore.py --database test --image erplibre_website
|
||||||
|
|
@ -217,52 +275,6 @@ db_test_re_export_website_attachments:
|
||||||
########################
|
########################
|
||||||
# Image installation #
|
# Image installation #
|
||||||
########################
|
########################
|
||||||
.PHONY: image_db_create_erplibre_base
|
|
||||||
image_db_create_erplibre_base:
|
|
||||||
.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_base
|
|
||||||
.venv/bin/python3 ./odoo/odoo-bin db --create --database image_creation_erplibre_base
|
|
||||||
./script/addons/install_addons_from_file.sh image_creation_erplibre_base ./conf/module_list_image_erplibre_base.txt
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_base --restore_image erplibre_base
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_website
|
|
||||||
image_db_create_erplibre_website:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_website
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_website
|
|
||||||
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_website website,erplibre_website_snippets_basic_html,erplibre_website_snippets_cards,erplibre_website_snippets_structures,erplibre_website_snippets_timelines,website_form_builder,muk_website_branding,website_snippet_anchor,website_anchor_smooth_scroll,website_snippet_all
|
|
||||||
./script/addons/install_addons_theme.sh image_creation_erplibre_website theme_default
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_website
|
|
||||||
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_website crm,website_crm,crm_team_quebec
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_website_crm
|
|
||||||
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_website website_livechat
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_website_chat_crm
|
|
||||||
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_website website_sale,erplibre_base_quebec,website_snippet_product_category,website_snippet_carousel_product
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_base
|
|
||||||
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_website stock,purchase,website_sale_management
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_advance
|
|
||||||
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_website project
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_project
|
|
||||||
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_website pos_sale,muk_pos_branding
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_pos
|
|
||||||
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_website hr
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_website --restore_image erplibre_ecommerce_pos_hr
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_demo
|
|
||||||
image_db_create_erplibre_demo:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_demo
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --create --database image_creation_demo --demo
|
|
||||||
./script/addons/install_addons_from_file.sh image_creation_demo ./conf/module_list_image_erplibre_base.txt
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_demo --restore_image erplibre_demo_base
|
|
||||||
./script/addons/install_addons.sh image_creation_demo website,erplibre_website_snippets_basic_html,erplibre_website_snippets_cards,erplibre_website_snippets_structures,erplibre_website_snippets_timelines,website_form_builder,muk_website_branding,website_snippet_anchor,website_anchor_smooth_scroll,website_snippet_all,crm,website_crm,crm_team_quebec,website_livechat,website_sale,erplibre_base_quebec,website_snippet_product_category,website_snippet_carousel_product,stock,purchase,website_sale_management,project,pos_sale,muk_pos_branding,hr
|
|
||||||
./script/addons/install_addons_theme.sh image_creation_demo theme_default
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_demo --restore_image erplibre_demo_full
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_code_generator
|
.PHONY: image_db_create_erplibre_code_generator
|
||||||
image_db_create_erplibre_code_generator:
|
image_db_create_erplibre_code_generator:
|
||||||
|
|
@ -273,175 +285,25 @@ image_db_create_erplibre_code_generator:
|
||||||
./script/make.sh addons_install_code_generator_full
|
./script/make.sh addons_install_code_generator_full
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator --restore_image erplibre_code_generator_full
|
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator --restore_image erplibre_code_generator_full
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_accounting
|
|
||||||
image_db_create_erplibre_package_accounting:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_accounting
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_accounting
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_accounting erplibre_base_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_accounting account_fiscal_year_closing,account_export_csv,account_financial_report,account_tax_balance,mis_builder_cash_flow,partner_statement,account_bank_statement_import_camt_oca,account_bank_statement_import_move_line,account_bank_statement_import_ofx,account_bank_statement_import_online,account_bank_statement_import_online_paypal,account_bank_statement_import_online_transferwise,account_bank_statement_import_paypal,account_bank_statement_import_split,account_bank_statement_import_txt_xlsx,accounting_pdf_reports,om_account_accountant,om_account_asset,om_account_budget
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_accounting --restore_image erplibre_package_accounting
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_business_requirements
|
|
||||||
image_db_create_erplibre_package_business_requirements:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_business_requirements
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_business_requirements
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_business_requirements crm_team_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_business_requirements business_requirement,business_requirement_crm,business_requirement_deliverable,business_requirement_sale,business_requirement_sale_timesheet
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_business_requirements --restore_image erplibre_package_business_requirements
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_contract
|
|
||||||
image_db_create_erplibre_package_contract:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_contract
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_contract
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_contract agreement,agreement_account,agreement_legal,agreement_legal_sale,agreement_project,agreement_sale,agreement_serviceprofile,agreement_stock,contract,contract_forecast,contract_invoice_start_end_dates,contract_layout_category_hide_detail,contract_mandate,contract_payment_mode,contract_sale,contract_sale_invoicing,contract_sale_mandate,contract_sale_payment_mode,contract_transmit_method,contract_variable_qty_prorated,contract_variable_qty_timesheet,contract_variable_quantity,product_contract,product_contract_variable_quantity
|
|
||||||
# ./script/addons/install_addons.sh image_creation agreement_legal_sale_fieldservice,agreement_maintenance,agreement_mrp,agreement_repair
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_contract --restore_image erplibre_package_contract
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_crm
|
|
||||||
image_db_create_erplibre_package_crm:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_crm
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_crm
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_crm erplibre_base_quebec,crm_team_quebec,crm,crm_livechat,crm_phone_validation,crm_project,crm_reveal
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_crm --restore_image erplibre_package_crm
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_e_commerce
|
|
||||||
image_db_create_erplibre_package_e_commerce:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_e_commerce
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_e_commerce
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_e_commerce erplibre_base_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_e_commerce website_sale,website_sale_comparison,website_sale_delivery,website_sale_digital,website_sale_link_tracker,website_sale_management,website_sale_stock,website_sale_wishlist,website_sale_attribute_filter_category,website_sale_attribute_filter_order,website_sale_attribute_filter_price,website_sale_cart_selectable,website_sale_category_description,website_sale_checkout_skip_payment,website_sale_exception,website_sale_hide_empty_category,website_sale_hide_price,website_sale_product_attachment,website_sale_product_attribute_filter_visibility,website_sale_product_attribute_value_filter_existing,website_sale_product_detail_attribute_image,website_sale_product_detail_attribute_value_image,website_sale_product_minimal_price,website_sale_product_reference_displayed,website_sale_product_sort,website_sale_product_style_badge,website_sale_require_legal,website_sale_require_login,website_sale_secondary_unit,website_sale_show_company_data,website_sale_stock_available,website_sale_stock_available_display,website_sale_stock_force_block,website_sale_suggest_create_account,website_sale_wishlist_keep,website_snippet_carousel_product,website_snippet_product_category,product_rating_review,product_configurator,product_configurator_mrp,product_configurator_purchase,product_configurator_sale,product_configurator_stock,website_product_configurator
|
|
||||||
./script/addons/install_addons_theme.sh image_creation_erplibre_package_e_commerce theme_default
|
|
||||||
# ./script/addons/install_addons.sh image_creation website_sale_product_brand,website_sale_tax_toggle,website_sale_vat_required,product_configurator_sale_mrp,product_configurator_stock_lots,product_configurator_subconfig,website_product_configurator_mrp
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_e_commerce --restore_image erplibre_package_e_commerce
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_field_service
|
|
||||||
image_db_create_erplibre_package_field_service:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_field_service
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_field_service
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_field_service erplibre_base_quebec,crm_team_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_field_service fieldservice,fieldservice_account,fieldservice_account_analytic,fieldservice_account_payment,fieldservice_activity,fieldservice_agreement,fieldservice_change_management,fieldservice_crm,fieldservice_delivery,fieldservice_distribution,fieldservice_fleet,fieldservice_geoengine,fieldservice_isp_account,fieldservice_isp_flow,fieldservice_location_builder,fieldservice_maintenance,fieldservice_partner_multi_relation,fieldservice_project,fieldservice_purchase,fieldservice_recurring,fieldservice_repair,fieldservice_route,fieldservice_route_account,fieldservice_route_stock,fieldservice_route_vehicle,fieldservice_sale,fieldservice_sale_recurring,fieldservice_sale_stock,fieldservice_size,fieldservice_skill,fieldservice_stage_server_action,fieldservice_stage_validation,fieldservice_stock,fieldservice_stock_account,fieldservice_stock_account_analytic,fieldservice_substatus,fieldservice_vehicle,fieldservice_vehicle_stock
|
|
||||||
# ./script/addons/install_addons.sh image_creation fieldservice_google_map,fieldservice_google_marker_icon_picker
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_field_service --restore_image erplibre_package_field_service
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_helpdesk
|
|
||||||
image_db_create_erplibre_package_helpdesk:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_helpdesk
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_helpdesk
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_helpdesk helpdesk_mgmt,helpdesk_mgmt_project,helpdesk_motive,helpdesk_type,helpdesk_mgmt_timesheet,helpdesk_mgmt_timesheet_time_control,helpdesk_mgmt_partner_sequence,helpdesk_mgmt_sla
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_helpdesk --restore_image erplibre_package_helpdesk
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_hr
|
|
||||||
image_db_create_erplibre_package_hr:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_hr
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_hr
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_hr erplibre_base_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_hr hr,hr_expense_associate_with_customer,hr_expense_tip,res_partner_fix_group_by_company,hr_attendance,hr_contract,hr_expense,hr_expense_check,hr_gamification,hr_holidays,hr_maintenance,hr_org_chart,hr_payroll,hr_payroll_account,hr_recruitment,hr_recruitment_survey,hr_timesheet,hr_timesheet_attendance,hr_attendance_autoclose,hr_attendance_geolocation,hr_attendance_modification_tracking,hr_attendance_reason,hr_attendance_report_theoretical_time,hr_attendance_rfid,hr_calendar_rest_time,hr_contract_currency,hr_contract_document,hr_contract_multi_job,hr_contract_rate,hr_course,hr_employee_age,hr_employee_birth_name,hr_employee_calendar_planning,hr_employee_display_own_info,hr_employee_document,hr_employee_emergency_contact,hr_employee_firstname,hr_employee_health,hr_employee_id,hr_employee_language,hr_employee_medical_examination,hr_employee_partner_external,hr_employee_phone_extension,hr_employee_relative,hr_employee_service,hr_employee_service_contract,hr_employee_social_media,hr_employee_ssn,hr_expense_advance_clearing,hr_expense_cancel,hr_expense_invoice,hr_expense_payment_difference,hr_expense_petty_cash,hr_expense_sequence,hr_expense_tier_validation,hr_experience,hr_holidays_accrual_advanced,hr_holidays_credit,hr_holidays_hour,hr_holidays_leave_auto_approve,hr_holidays_leave_repeated,hr_holidays_leave_request_wizard,hr_holidays_length_validation,hr_holidays_notify_employee_manager,hr_holidays_public,hr_holidays_settings,hr_holidays_validity_date,hr_job_category,hr_payroll_cancel,hr_payslip_change_state,hr_period,hr_skill,hr_worked_days_from_timesheet,resource_hook,hr_contract_single_open,hr_contract_wage_type,hr_employee_private_wizard,hr_employee_type,hr_employee_type_private_wizard,hr_event,hr_expense_same_month,hr_working_space,muk_hr_utils
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_hr --restore_image erplibre_package_hr
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_project
|
|
||||||
image_db_create_erplibre_package_project:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_project
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_project
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_project erplibre_base_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_project project,project_chatter,project_default_task_stage,project_form_with_dates,project_hide_create_sale_order,project_iteration,project_iteration_parent_only,project_iteration_parent_type_required,project_portal_hide_timesheets,project_portal_parent_task,project_remaining_hours_update,project_stage,project_stage_allow_timesheet,project_stage_no_quick_create,project_task_date_planned,project_task_deadline_from_project,project_task_full_text_search,project_task_id_in_display_name,project_task_link,project_task_reference,project_task_resource_type,project_task_search_parent_subtask,project_task_stage_external_mail,project_task_subtask_same_project,project_task_type,project_template,project_template_numigi,project_template_timesheet,project_type,project_time_budget,project_time_range
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_project --restore_image erplibre_package_project
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_purchase
|
|
||||||
image_db_create_erplibre_package_purchase:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_purchase
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_purchase
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_purchase erplibre_base_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_purchase purchase,purchase_mrp,purchase_requisition,purchase_stock,product_supplier_info_helpers,purchase_consignment,purchase_consignment_delivery_expense,purchase_consignment_inventory,purchase_consignment_inventory_line_domain,purchase_estimated_time_arrival,purchase_invoice_empty_lines,purchase_invoice_from_picking,purchase_partner_products,purchase_warning_minimum_amount
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_purchase --restore_image erplibre_package_purchase
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_sale
|
|
||||||
image_db_create_erplibre_package_sale:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_sale
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_sale
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_sale erplibre_base_quebec,crm_team_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_sale sale,sale_crm,sale_expense,sale_management,sale_margin,sale_mrp,sale_purchase,sale_quotation_builder,sale_stock,sale_timesheet,sales_team,product_create_group,product_dimension,product_dimension_numigi,product_extra_views,product_extra_views_purchase,product_extra_views_sale,product_extra_views_stock,product_kit,product_panel_shortcut,product_reference,product_reference_list_view,product_variant_button_complete_form,sale_order_line_limit,sale_degroup_tax,payment,payment_transfer,purchase,stock
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_sale --restore_image erplibre_package_sale
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_scrummer
|
|
||||||
image_db_create_erplibre_package_scrummer:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_scrummer
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_scrummer
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_scrummer erplibre_base_quebec
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_scrummer scrummer,scrummer_git,scrummer_kanban,scrummer_scrum,scrummer_timesheet_category,scrummer_workflow_security,scrummer_workflow_transition_by_project,scrummer_workflow_transitions_by_task_type,web_diagram_position,web_syncer,web_widget_image_url,project_agile_sale_timesheet,project_agile_analytic,project_agile_scrum,project_git_github,project_git_gitlab,project_portal
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_scrummer --restore_image erplibre_package_scrummer
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_stock
|
|
||||||
image_db_create_erplibre_package_stock:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_stock
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_stock
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_stock stock,stock_account,stock_dropshipping,stock_landed_costs,stock_picking_batch,purchase_warehouse_access,stock_component,stock_component_account,stock_inventory_accounting_date_editable,stock_inventory_category_domain,stock_inventory_internal_location,stock_inventory_line_domain,stock_location_position_alphanum,stock_picking_change_destination,stock_serial_single_quant,stock_theorical_quantity_access,stock_turnover_rate,stock_warehouse_access,stock_warehouse_distance
|
|
||||||
# ./script/addons/install_addons.sh image_creation_erplibre_package_stock stock_zebra,stock_inventory_line_domain_barcode
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_stock --restore_image erplibre_package_stock
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_timesheet
|
|
||||||
image_db_create_erplibre_package_timesheet:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_timesheet
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_timesheet
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_timesheet payroll_code_on_task_type,payroll_period,payroll_preparation,payroll_preparation_export_wizard,payroll_preparation_from_timesheet,project_timesheet_time_control_enhanced,timesheet_edit_only_today,timesheet_list_description_after_task,timesheet_list_employee,timesheet_multi_line_wizard,timesheet_multi_line_wizard_security,timesheet_payroll_period,timesheet_validation_status
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_timesheet --restore_image erplibre_package_timesheet
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_website
|
|
||||||
image_db_create_erplibre_package_website:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_website
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_website
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_website portal,website,website_blog,website_crm,website_crm_partner_assign,website_crm_phone_validation,website_customer,website_event,website_event_questions,website_event_sale,website_event_track,website_form,website_form_project,website_forum,website_google_map,website_hr,website_hr_recruitment,website_links,website_livechat,website_mail,website_mail_channel,website_mass_mailing,website_membership,website_partner,website_payment,website_rating,website_slides,website_survey,website_theme_install,website_twitter,website_adv_image_optimization,website_anchor_smooth_scroll,website_blog_excerpt_img,website_breadcrumb,website_canonical_url,website_cookie_notice,website_crm_privacy_policy,website_crm_quick_answer,website_crm_recaptcha,website_form_builder,website_form_recaptcha,website_google_tag_manager,website_img_dimension,website_js_below_the_fold,website_lazy_load_image,website_legal_page,website_logo,website_media_size,website_megamenu,website_odoo_debranding,website_portal_address,website_portal_contact,website_snippet_anchor,website_snippet_big_button,website_snippet_country_dropdown,website_snippet_marginless_gallery,smile_website_login_as,website_snippet_all
|
|
||||||
./script/addons/install_addons_theme.sh image_creation_erplibre_package_website theme_default
|
|
||||||
# ./script/addons/install_addons.sh image_creation_erplibre_package_website website_no_crawler
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_website --restore_image erplibre_package_website
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_wiki
|
|
||||||
image_db_create_erplibre_package_wiki:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_wiki
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_wiki
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_wiki document_page,document_page_approval,document_page_group,document_page_project,document_page_reference,document_page_tag,document_url,knowledge,attachment_preview,document_page_procedure,document_page_quality_manual,document_page_work_instruction,mgmtsystem,mgmtsystem_action,mgmtsystem_audit,mgmtsystem_hazard,mgmtsystem_manual,mgmtsystem_nonconformity,mgmtsystem_nonconformity_hr,mgmtsystem_nonconformity_product,mgmtsystem_nonconformity_project,mgmtsystem_quality,mgmtsystem_review,mgmtsystem_survey
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_wiki --restore_image erplibre_package_wiki
|
|
||||||
|
|
||||||
.PHONY: image_db_create_erplibre_package_dms
|
|
||||||
image_db_create_erplibre_package_dms:
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database image_creation_erplibre_package_dms
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --clone --from_database image_creation_erplibre_base --database image_creation_erplibre_package_dms
|
|
||||||
./script/addons/install_addons.sh image_creation_erplibre_package_dms muk_dms,muk_dms_access,muk_dms_view,muk_web_preview,muk_web_preview_audio,muk_web_preview_csv,muk_web_preview_image,muk_web_preview_markdown,muk_web_preview_msoffice,muk_web_preview_opendocument,muk_web_preview_rst,muk_web_preview_text,muk_web_preview_video
|
|
||||||
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database image_creation_erplibre_package_dms --restore_image erplibre_package_dms
|
|
||||||
|
|
||||||
.PHONY: image_db_create_all
|
|
||||||
image_db_create_all:
|
|
||||||
# TODO remove modules from addons/addons
|
|
||||||
#./script/make.sh config_gen_image_db
|
|
||||||
./script/database/db_restore.py --clean_cache
|
|
||||||
./script/make.sh image_db_create_erplibre_base
|
|
||||||
./script/make.sh image_db_create_erplibre_website
|
|
||||||
./script/make.sh image_db_create_erplibre_code_generator
|
|
||||||
./script/make.sh image_db_create_erplibre_demo
|
|
||||||
./script/make.sh image_db_create_erplibre_package_accounting
|
|
||||||
./script/make.sh image_db_create_erplibre_package_business_requirements
|
|
||||||
./script/make.sh image_db_create_erplibre_package_contract
|
|
||||||
./script/make.sh image_db_create_erplibre_package_crm
|
|
||||||
./script/make.sh image_db_create_erplibre_package_e_commerce
|
|
||||||
./script/make.sh image_db_create_erplibre_package_field_service
|
|
||||||
./script/make.sh image_db_create_erplibre_package_helpdesk
|
|
||||||
./script/make.sh image_db_create_erplibre_package_hr
|
|
||||||
./script/make.sh image_db_create_erplibre_package_project
|
|
||||||
./script/make.sh image_db_create_erplibre_package_purchase
|
|
||||||
./script/make.sh image_db_create_erplibre_package_sale
|
|
||||||
./script/make.sh image_db_create_erplibre_package_scrummer
|
|
||||||
./script/make.sh image_db_create_erplibre_package_stock
|
|
||||||
./script/make.sh image_db_create_erplibre_package_timesheet
|
|
||||||
./script/make.sh image_db_create_erplibre_package_website
|
|
||||||
./script/make.sh image_db_create_erplibre_package_wiki
|
|
||||||
./script/make.sh image_db_create_erplibre_package_dms
|
|
||||||
./script/make.sh image_db_create_test_website_attachments
|
|
||||||
#./script/make.sh config_gen_all
|
|
||||||
|
|
||||||
.PHONY: image_db_create_all_parallel
|
.PHONY: image_db_create_all_parallel
|
||||||
image_db_create_all_parallel:
|
image_db_create_all_parallel:
|
||||||
./script/database/db_restore.py --clean_cache
|
./script/database/db_restore.py --clean_cache
|
||||||
./script/make.sh image_db_create_erplibre_base
|
echo "Search in-existing module"
|
||||||
parallel < ./conf/image_db_create.txt
|
./.venv/bin/python3 ./script/database/image_db.py --check_addons_exist
|
||||||
|
echo "Create Image DB"
|
||||||
|
./.venv/bin/python3 ./script/database/image_db.py --generate_bash_cmd_parallel | bash
|
||||||
|
./script/database/db_restore.py --clean_cache
|
||||||
|
#./script/make.sh image_db_create_test_website_attachments
|
||||||
|
|
||||||
|
.PHONY: image_db_list_data
|
||||||
|
image_db_list_data:
|
||||||
|
./.venv/bin/python3 ./script/database/image_db.py --generate_bash_cmd_parallel
|
||||||
|
#./.venv/bin/python3 ./script/database/image_db.py --generate_bash_cmd_parallel --odoo_version 12.0
|
||||||
|
|
||||||
|
.PHONY: image_db_list
|
||||||
|
image_db_list:
|
||||||
|
./.venv/bin/python3 ./script/database/image_db.py --show_list_only
|
||||||
|
#./.venv/bin/python3 ./script/database/image_db.py --generate_bash_cmd_parallel --odoo_version 12.0
|
||||||
|
|
||||||
.PHONY: image_db_create_test_website_attachments
|
.PHONY: image_db_create_test_website_attachments
|
||||||
image_db_create_test_website_attachments:
|
image_db_create_test_website_attachments:
|
||||||
|
|
@ -452,8 +314,8 @@ image_db_create_test_website_attachments:
|
||||||
|
|
||||||
.PHONY: image_diff_base_website
|
.PHONY: image_diff_base_website
|
||||||
image_diff_base_website:
|
image_diff_base_website:
|
||||||
#./script/manifest/compare_backup.py --backup_file_1 ./image_db/erplibre_base.zip --backup_file_2 ./image_db/erplibre_website.zip
|
#./script/database/compare_backup.py --backup_file_1 ./image_db/erplibre_base.zip --backup_file_2 ./image_db/erplibre_website.zip
|
||||||
./script/manifest/compare_backup.py --backup_1 erplibre_base --backup_2 erplibre_website
|
./script/database/compare_backup.py --backup_1 odoo12.0_base --backup_2 odoo12.0_website
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
# Addons installation #
|
# Addons installation #
|
||||||
|
|
@ -918,6 +780,13 @@ format_script_isort_only:
|
||||||
log_show_test:
|
log_show_test:
|
||||||
vim ${LOG_FILE}
|
vim ${LOG_FILE}
|
||||||
|
|
||||||
|
##########
|
||||||
|
# poetry #
|
||||||
|
##########
|
||||||
|
.PHONY: poetry_update
|
||||||
|
poetry_update:
|
||||||
|
./script/poetry/poetry_update.py
|
||||||
|
|
||||||
###########
|
###########
|
||||||
# clean #
|
# clean #
|
||||||
###########
|
###########
|
||||||
|
|
@ -979,9 +848,17 @@ docker_exec_erplibre_repo_show_status:
|
||||||
./script/docker/docker_repo_show_status.sh
|
./script/docker/docker_repo_show_status.sh
|
||||||
|
|
||||||
# build docker
|
# build docker
|
||||||
.PHONY: docker_build
|
.PHONY: docker_build_odoo_16
|
||||||
docker_build:
|
docker_build_odoo_16:
|
||||||
./script/docker/docker_build.sh
|
./script/docker/docker_build.sh --odoo_16
|
||||||
|
|
||||||
|
.PHONY: docker_build_odoo_14
|
||||||
|
docker_build_odoo_14:
|
||||||
|
./script/docker/docker_build.sh --odoo_14
|
||||||
|
|
||||||
|
.PHONY: docker_build_odoo_12
|
||||||
|
docker_build_odoo_12:
|
||||||
|
./script/docker/docker_build.sh --odoo_12
|
||||||
|
|
||||||
# build docker release
|
# build docker release
|
||||||
.PHONY: docker_build_release
|
.PHONY: docker_build_release
|
||||||
|
|
@ -1059,9 +936,30 @@ repo_use_all_https:
|
||||||
config_install:
|
config_install:
|
||||||
./script/generate_config.sh
|
./script/generate_config.sh
|
||||||
|
|
||||||
|
.PHONY: config_update
|
||||||
|
config_update:
|
||||||
|
./run.sh -c config.conf -s --stop-after-init
|
||||||
|
|
||||||
|
.PHONY: config_update_over_proxy
|
||||||
|
config_update_over_proxy:
|
||||||
|
./run.sh -c config.conf -s --stop-after-init --max-cron-threads 2 --workers 2 --xmlrpc-interface 127.0.0.1 --proxy-mode
|
||||||
|
|
||||||
|
.PHONY: config_update_dev
|
||||||
|
config_update_dev:
|
||||||
|
./run.sh -c config.conf -s --stop-after-init --max-cron-threads 4 --workers 4
|
||||||
|
|
||||||
|
.PHONY: config_update_dev_mono
|
||||||
|
config_update_dev_mono:
|
||||||
|
./run.sh -c config.conf -s --stop-after-init --workers 0
|
||||||
|
|
||||||
|
.PHONY: config_clear
|
||||||
|
config_clear:
|
||||||
|
rm -f ./config.conf
|
||||||
|
|
||||||
# generate config all repo
|
# generate config all repo
|
||||||
.PHONY: config_gen_all
|
.PHONY: config_gen_all
|
||||||
config_gen_all:
|
config_gen_all:
|
||||||
|
echo "config_gen_all"
|
||||||
./script/git/git_repo_update_group.py
|
./script/git/git_repo_update_group.py
|
||||||
./script/generate_config.sh
|
./script/generate_config.sh
|
||||||
|
|
||||||
|
|
|
||||||
12
README.md
12
README.md
|
|
@ -18,7 +18,7 @@ Into Ubuntu, minimal dependency:
|
||||||
sudo apt install make git curl
|
sudo apt install make git curl
|
||||||
```
|
```
|
||||||
|
|
||||||
Into Ubuntu, developper dependency:
|
Into Ubuntu, developer dependency:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install make build-essential libssl-dev zlib1g-dev libreadline-dev libsqlite3-dev curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev libbz2-dev libldap2-dev libsasl2-dev
|
sudo apt install make build-essential libssl-dev zlib1g-dev libreadline-dev libsqlite3-dev curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev libbz2-dev libldap2-dev libsasl2-dev
|
||||||
|
|
@ -31,10 +31,10 @@ git clone https://github.com/ERPLibre/ERPLibre.git
|
||||||
cd ERPLibre
|
cd ERPLibre
|
||||||
```
|
```
|
||||||
|
|
||||||
Support Ubuntu 18.04, 20.04 and OSX. The installation duration is more than 30 minutes.
|
Support Ubuntu 20.04, 22.04, 24.04 and OSX. The installation duration is more than 30 minutes.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make install
|
make install_odoo_16
|
||||||
```
|
```
|
||||||
|
|
||||||
Update your configuration if you need to run from another interface than 127.0.0.1, file `config.conf`
|
Update your configuration if you need to run from another interface than 127.0.0.1, file `config.conf`
|
||||||
|
|
@ -43,6 +43,12 @@ Update your configuration if you need to run from another interface than 127.0.0
|
||||||
xmlrpc_interface = 0.0.0.0
|
xmlrpc_interface = 0.0.0.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Show version :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make version
|
||||||
|
```
|
||||||
|
|
||||||
Ready to execute:
|
Ready to execute:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
./script/make.sh image_db_create_erplibre_package_contract
|
|
||||||
./script/make.sh image_db_create_erplibre_package_crm
|
|
||||||
./script/make.sh image_db_create_erplibre_package_e_commerce
|
|
||||||
./script/make.sh image_db_create_erplibre_package_field_service
|
|
||||||
./script/make.sh image_db_create_erplibre_package_helpdesk
|
|
||||||
./script/make.sh image_db_create_erplibre_package_hr
|
|
||||||
./script/make.sh image_db_create_erplibre_package_project
|
|
||||||
./script/make.sh image_db_create_erplibre_package_purchase
|
|
||||||
./script/make.sh image_db_create_erplibre_package_sale
|
|
||||||
./script/make.sh image_db_create_erplibre_package_scrummer
|
|
||||||
./script/make.sh image_db_create_erplibre_package_stock
|
|
||||||
./script/make.sh image_db_create_erplibre_package_timesheet
|
|
||||||
./script/make.sh image_db_create_erplibre_package_website
|
|
||||||
./script/make.sh image_db_create_erplibre_package_wiki
|
|
||||||
./script/make.sh image_db_create_erplibre_package_dms
|
|
||||||
./script/make.sh image_db_create_erplibre_package_accounting
|
|
||||||
./script/make.sh image_db_create_erplibre_package_business_requirements
|
|
||||||
./script/make.sh image_db_create_erplibre_website
|
|
||||||
./script/make.sh image_db_create_test_website_attachments
|
|
||||||
./script/make.sh image_db_create_erplibre_code_generator
|
|
||||||
./script/make.sh image_db_create_erplibre_demo
|
|
||||||
603
conf/module_list_image_db_odoo.json
Normal file
603
conf/module_list_image_db_odoo.json
Normal file
|
|
@ -0,0 +1,603 @@
|
||||||
|
{
|
||||||
|
"odoo12.0_base": {
|
||||||
|
"base": "",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"auth_user_case_insensitive",
|
||||||
|
"auto_backup",
|
||||||
|
"disable_odoo_online",
|
||||||
|
"erplibre_info",
|
||||||
|
"fetchmail_notify_error_to_sender",
|
||||||
|
"fetchmail_thread_default",
|
||||||
|
"mail_debrand",
|
||||||
|
"mail_history",
|
||||||
|
"muk_branding",
|
||||||
|
"muk_mail_branding",
|
||||||
|
"muk_utils",
|
||||||
|
"muk_web_branding",
|
||||||
|
"muk_web_theme",
|
||||||
|
"muk_web_theme_mail",
|
||||||
|
"muk_web_utils",
|
||||||
|
"partner_no_vat",
|
||||||
|
"partner_quebec_tz",
|
||||||
|
"remove_odoo_enterprise",
|
||||||
|
"web_diagram_position",
|
||||||
|
"web_responsive",
|
||||||
|
"web_timeline"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo12.0_website": {
|
||||||
|
"base": "odoo12.0_base",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"erplibre_website_snippets_basic_html",
|
||||||
|
"erplibre_website_snippets_cards",
|
||||||
|
"erplibre_website_snippets_structures",
|
||||||
|
"erplibre_website_snippets_timelines",
|
||||||
|
"muk_website_branding",
|
||||||
|
"website",
|
||||||
|
"website_anchor_smooth_scroll",
|
||||||
|
"website_form_builder",
|
||||||
|
"website_odoo_debranding",
|
||||||
|
"website_snippet_all",
|
||||||
|
"website_snippet_anchor"
|
||||||
|
],
|
||||||
|
"theme": "theme_default"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo12.0_website_crm": {
|
||||||
|
"base": "odoo12.0_website",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"crm",
|
||||||
|
"crm_team_quebec",
|
||||||
|
"website_crm"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pkg_name": "chat",
|
||||||
|
"module": [
|
||||||
|
"website_livechat"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo12.0_website_ecommerce": {
|
||||||
|
"base": "odoo12.0_website",
|
||||||
|
"disable": false,
|
||||||
|
"delay": 1,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"configure_quebec_tax",
|
||||||
|
"l10n_ca",
|
||||||
|
"website_sale"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo12.0_base_demo": {
|
||||||
|
"base": "",
|
||||||
|
"disable": false,
|
||||||
|
"with_demo": true,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"auth_user_case_insensitive",
|
||||||
|
"auto_backup",
|
||||||
|
"disable_odoo_online",
|
||||||
|
"erplibre_info",
|
||||||
|
"fetchmail_notify_error_to_sender",
|
||||||
|
"fetchmail_thread_default",
|
||||||
|
"mail_debrand",
|
||||||
|
"mail_history",
|
||||||
|
"muk_branding",
|
||||||
|
"muk_mail_branding",
|
||||||
|
"muk_utils",
|
||||||
|
"muk_web_branding",
|
||||||
|
"muk_web_theme",
|
||||||
|
"muk_web_theme_mail",
|
||||||
|
"muk_web_utils",
|
||||||
|
"partner_no_vat",
|
||||||
|
"partner_quebec_tz",
|
||||||
|
"remove_odoo_enterprise",
|
||||||
|
"web_diagram_position",
|
||||||
|
"web_responsive",
|
||||||
|
"web_timeline"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo12.0_base_demo_adv": {
|
||||||
|
"base": "odoo12.0_base_demo",
|
||||||
|
"disable": false,
|
||||||
|
"with_demo": true,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"pkg_name": "website_ecommerce",
|
||||||
|
"theme": "theme_default",
|
||||||
|
"module": [
|
||||||
|
"configure_quebec_tax",
|
||||||
|
"crm",
|
||||||
|
"crm_team_quebec",
|
||||||
|
"l10n_ca",
|
||||||
|
"purchase",
|
||||||
|
"stock",
|
||||||
|
"website_crm",
|
||||||
|
"website_livechat",
|
||||||
|
"website_sale",
|
||||||
|
"website_sale_management",
|
||||||
|
"website_snippet_carousel_product",
|
||||||
|
"website_snippet_product_category"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pkg_name": "full",
|
||||||
|
"module": [
|
||||||
|
"account_financial_report",
|
||||||
|
"account_fiscal_year_closing",
|
||||||
|
"account_tax_balance",
|
||||||
|
"accounting_pdf_reports",
|
||||||
|
"agreement",
|
||||||
|
"agreement_legal",
|
||||||
|
"business_requirement",
|
||||||
|
"document_page",
|
||||||
|
"fieldservice",
|
||||||
|
"fleet",
|
||||||
|
"geoengine_partner",
|
||||||
|
"helpdesk_mgmt",
|
||||||
|
"hr_attendance",
|
||||||
|
"hr_timesheet",
|
||||||
|
"maintenance",
|
||||||
|
"mgmtsystem",
|
||||||
|
"mis_builder_cash_flow",
|
||||||
|
"mrp",
|
||||||
|
"muk_dms",
|
||||||
|
"muk_dms_access",
|
||||||
|
"muk_dms_view",
|
||||||
|
"muk_pos_branding",
|
||||||
|
"muk_web_preview",
|
||||||
|
"muk_web_preview_audio",
|
||||||
|
"muk_web_preview_csv",
|
||||||
|
"muk_web_preview_image",
|
||||||
|
"muk_web_preview_markdown",
|
||||||
|
"muk_web_preview_msoffice",
|
||||||
|
"muk_web_preview_opendocument",
|
||||||
|
"muk_web_preview_rst",
|
||||||
|
"muk_web_preview_text",
|
||||||
|
"muk_web_preview_video",
|
||||||
|
"note",
|
||||||
|
"om_account_accountant",
|
||||||
|
"om_account_asset",
|
||||||
|
"om_account_budget",
|
||||||
|
"partner_statement",
|
||||||
|
"payment",
|
||||||
|
"payment_transfer",
|
||||||
|
"plm",
|
||||||
|
"portal",
|
||||||
|
"pos_sale",
|
||||||
|
"product_configurator",
|
||||||
|
"product_extra_views",
|
||||||
|
"product_extra_views_purchase",
|
||||||
|
"product_extra_views_sale",
|
||||||
|
"product_extra_views_stock",
|
||||||
|
"product_supplier_info_helpers",
|
||||||
|
"product_variant_button_complete_form",
|
||||||
|
"project",
|
||||||
|
"purchase_estimated_time_arrival",
|
||||||
|
"purchase_mrp",
|
||||||
|
"purchase_requisition",
|
||||||
|
"purchase_stock",
|
||||||
|
"repair",
|
||||||
|
"rma",
|
||||||
|
"sale",
|
||||||
|
"sale_crm",
|
||||||
|
"sale_expense",
|
||||||
|
"sale_management",
|
||||||
|
"sale_margin",
|
||||||
|
"sale_mrp",
|
||||||
|
"sale_purchase",
|
||||||
|
"sale_quotation_builder",
|
||||||
|
"sale_stock",
|
||||||
|
"sale_timesheet",
|
||||||
|
"sales_team",
|
||||||
|
"survey",
|
||||||
|
"website_blog",
|
||||||
|
"website_crm_privacy_policy",
|
||||||
|
"website_event",
|
||||||
|
"website_event_questions",
|
||||||
|
"website_event_sale",
|
||||||
|
"website_event_track",
|
||||||
|
"website_form",
|
||||||
|
"website_form_project",
|
||||||
|
"website_forum",
|
||||||
|
"website_hr_recruitment",
|
||||||
|
"website_legal_page",
|
||||||
|
"website_links",
|
||||||
|
"website_livechat",
|
||||||
|
"website_mail",
|
||||||
|
"website_mail_channel",
|
||||||
|
"website_mass_mailing",
|
||||||
|
"website_membership",
|
||||||
|
"website_odoo_debranding",
|
||||||
|
"website_partner",
|
||||||
|
"website_payment",
|
||||||
|
"website_product_configurator",
|
||||||
|
"website_slides",
|
||||||
|
"website_snippet_country_dropdown",
|
||||||
|
"wms"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo14.0_base": {
|
||||||
|
"base": "",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"auth_user_case_insensitive",
|
||||||
|
"auto_backup",
|
||||||
|
"disable_odoo_online",
|
||||||
|
"fetchmail_notify_error_to_sender",
|
||||||
|
"mail_debrand",
|
||||||
|
"partner_no_vat",
|
||||||
|
"remove_odoo_enterprise",
|
||||||
|
"smile_many2many_tags_clickable",
|
||||||
|
"web_responsive",
|
||||||
|
"web_timeline"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo14.0_website": {
|
||||||
|
"base": "odoo14.0_base",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"website",
|
||||||
|
"website_odoo_debranding"
|
||||||
|
],
|
||||||
|
"theme": "theme_default"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo14.0_website_crm": {
|
||||||
|
"base": "odoo14.0_website",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"crm",
|
||||||
|
"website_crm"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pkg_name": "chat",
|
||||||
|
"module": [
|
||||||
|
"website_livechat"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo14.0_website_ecommerce": {
|
||||||
|
"base": "odoo14.0_website",
|
||||||
|
"disable": false,
|
||||||
|
"delay": 1,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"l10n_ca",
|
||||||
|
"website_sale"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo14.0_base_demo": {
|
||||||
|
"base": "",
|
||||||
|
"disable": false,
|
||||||
|
"with_demo": true,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"auth_user_case_insensitive",
|
||||||
|
"auto_backup",
|
||||||
|
"disable_odoo_online",
|
||||||
|
"fetchmail_notify_error_to_sender",
|
||||||
|
"mail_debrand",
|
||||||
|
"partner_no_vat",
|
||||||
|
"remove_odoo_enterprise",
|
||||||
|
"smile_many2many_tags_clickable",
|
||||||
|
"web_responsive",
|
||||||
|
"web_timeline"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo14.0_base_demo_adv": {
|
||||||
|
"base": "odoo14.0_base_demo",
|
||||||
|
"disable": false,
|
||||||
|
"with_demo": true,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"pkg_name": "website_ecommerce",
|
||||||
|
"theme": "theme_default",
|
||||||
|
"module": [
|
||||||
|
"crm",
|
||||||
|
"l10n_ca",
|
||||||
|
"purchase",
|
||||||
|
"stock",
|
||||||
|
"website_crm",
|
||||||
|
"website_livechat",
|
||||||
|
"website_sale",
|
||||||
|
"website_sale_management"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pkg_name": "full",
|
||||||
|
"module": [
|
||||||
|
"account_financial_report",
|
||||||
|
"account_fiscal_year_closing",
|
||||||
|
"account_tax_balance",
|
||||||
|
"accounting_pdf_reports",
|
||||||
|
"agreement_legal",
|
||||||
|
"document_page",
|
||||||
|
"fieldservice",
|
||||||
|
"helpdesk_mgmt",
|
||||||
|
"hr_attendance",
|
||||||
|
"hr_holidays",
|
||||||
|
"hr_payroll_community",
|
||||||
|
"hr_timesheet",
|
||||||
|
"hr_skills",
|
||||||
|
"fleet",
|
||||||
|
"maintenance",
|
||||||
|
"mis_builder_cash_flow",
|
||||||
|
"mgmtsystem",
|
||||||
|
"mrp",
|
||||||
|
"note",
|
||||||
|
"om_account_accountant",
|
||||||
|
"om_account_asset",
|
||||||
|
"om_account_budget",
|
||||||
|
"partner_statement",
|
||||||
|
"payment",
|
||||||
|
"payment_transfer",
|
||||||
|
"plm",
|
||||||
|
"portal",
|
||||||
|
"pos_sale",
|
||||||
|
"product_extra_views",
|
||||||
|
"product_extra_views_purchase",
|
||||||
|
"product_extra_views_sale",
|
||||||
|
"product_extra_views_stock",
|
||||||
|
"product_supplier_info_helpers",
|
||||||
|
"product_variant_button_complete_form",
|
||||||
|
"project",
|
||||||
|
"purchase_estimated_time_arrival",
|
||||||
|
"purchase_mrp",
|
||||||
|
"purchase_requisition",
|
||||||
|
"purchase_stock",
|
||||||
|
"rma",
|
||||||
|
"sale",
|
||||||
|
"sale_crm",
|
||||||
|
"sale_expense",
|
||||||
|
"sale_management",
|
||||||
|
"sale_margin",
|
||||||
|
"sale_mrp",
|
||||||
|
"sale_purchase",
|
||||||
|
"sale_quotation_builder",
|
||||||
|
"sale_stock",
|
||||||
|
"sale_timesheet",
|
||||||
|
"sales_team",
|
||||||
|
"survey",
|
||||||
|
"repair",
|
||||||
|
"web_pwa_oca",
|
||||||
|
"website_blog",
|
||||||
|
"website_crm_privacy_policy",
|
||||||
|
"website_event",
|
||||||
|
"website_event_questions",
|
||||||
|
"website_event_sale",
|
||||||
|
"website_event_track",
|
||||||
|
"website_form",
|
||||||
|
"website_form_project",
|
||||||
|
"website_forum",
|
||||||
|
"website_google_tag_manager",
|
||||||
|
"website_hr_recruitment",
|
||||||
|
"website_legal_page",
|
||||||
|
"website_links",
|
||||||
|
"website_livechat",
|
||||||
|
"website_mail",
|
||||||
|
"website_mail_channel",
|
||||||
|
"website_mass_mailing",
|
||||||
|
"website_membership",
|
||||||
|
"website_odoo_debranding",
|
||||||
|
"website_partner",
|
||||||
|
"website_payment",
|
||||||
|
"website_slides",
|
||||||
|
"website_snippet_country_dropdown"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo16.0_base": {
|
||||||
|
"base": "",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"auth_user_case_insensitive",
|
||||||
|
"auto_backup",
|
||||||
|
"disable_odoo_online",
|
||||||
|
"mail_debrand",
|
||||||
|
"remove_odoo_enterprise",
|
||||||
|
"web_responsive",
|
||||||
|
"web_timeline"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo16.0_website": {
|
||||||
|
"base": "odoo16.0_base",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"website",
|
||||||
|
"website_odoo_debranding"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo16.0_website_crm": {
|
||||||
|
"base": "odoo16.0_website",
|
||||||
|
"disable": false,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"crm",
|
||||||
|
"website_crm"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pkg_name": "chat",
|
||||||
|
"module": [
|
||||||
|
"website_livechat"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo16.0_website_ecommerce": {
|
||||||
|
"base": "odoo16.0_website",
|
||||||
|
"disable": false,
|
||||||
|
"delay": 1,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"l10n_ca",
|
||||||
|
"website_sale"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo16.0_base_demo": {
|
||||||
|
"base": "",
|
||||||
|
"disable": false,
|
||||||
|
"with_demo": true,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"auth_user_case_insensitive",
|
||||||
|
"auto_backup",
|
||||||
|
"disable_odoo_online",
|
||||||
|
"mail_debrand",
|
||||||
|
"remove_odoo_enterprise",
|
||||||
|
"web_responsive",
|
||||||
|
"web_timeline"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo16.0_base_demo_adv_broke": {
|
||||||
|
"base": "odoo16.0_base_demo",
|
||||||
|
"disable": true,
|
||||||
|
"with_demo": true,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"module": [
|
||||||
|
"project_mrp",
|
||||||
|
"mrp",
|
||||||
|
"purchase_mrp",
|
||||||
|
"hr_payroll_community",
|
||||||
|
"sale_mrp"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"odoo16.0_base_demo_adv": {
|
||||||
|
"base": "odoo16.0_base_demo",
|
||||||
|
"disable": false,
|
||||||
|
"with_demo": true,
|
||||||
|
"image_list": [
|
||||||
|
{
|
||||||
|
"pkg_name": "full",
|
||||||
|
"module": [
|
||||||
|
"crm",
|
||||||
|
"l10n_ca",
|
||||||
|
"purchase",
|
||||||
|
"stock",
|
||||||
|
"website_crm",
|
||||||
|
"website_sale",
|
||||||
|
"account_financial_report",
|
||||||
|
"account_tax_balance",
|
||||||
|
"accounting_pdf_reports",
|
||||||
|
"document_page",
|
||||||
|
"fieldservice",
|
||||||
|
"helpdesk_mgmt",
|
||||||
|
"hr_attendance",
|
||||||
|
"hr_holidays",
|
||||||
|
"hr_timesheet",
|
||||||
|
"hr_skills",
|
||||||
|
"fleet",
|
||||||
|
"maintenance",
|
||||||
|
"mis_builder_cash_flow",
|
||||||
|
"mgmtsystem",
|
||||||
|
"note",
|
||||||
|
"om_account_accountant",
|
||||||
|
"om_account_asset",
|
||||||
|
"om_account_budget",
|
||||||
|
"partner_statement",
|
||||||
|
"payment",
|
||||||
|
"plm",
|
||||||
|
"portal",
|
||||||
|
"pos_sale",
|
||||||
|
"project",
|
||||||
|
"purchase_requisition",
|
||||||
|
"purchase_stock",
|
||||||
|
"rma",
|
||||||
|
"sale",
|
||||||
|
"sale_crm",
|
||||||
|
"sale_expense",
|
||||||
|
"sale_management",
|
||||||
|
"sale_margin",
|
||||||
|
"sale_purchase",
|
||||||
|
"sale_quotation_builder",
|
||||||
|
"sale_stock",
|
||||||
|
"sale_timesheet",
|
||||||
|
"sales_team",
|
||||||
|
"survey",
|
||||||
|
"repair",
|
||||||
|
"web_pwa_oca",
|
||||||
|
"website_blog",
|
||||||
|
"website_crm_privacy_policy",
|
||||||
|
"website_event",
|
||||||
|
"website_event_questions",
|
||||||
|
"website_event_sale",
|
||||||
|
"website_event_track",
|
||||||
|
"website_form_project",
|
||||||
|
"website_forum",
|
||||||
|
"website_google_tag_manager",
|
||||||
|
"website_hr_recruitment",
|
||||||
|
"website_legal_page",
|
||||||
|
"website_links",
|
||||||
|
"website_livechat",
|
||||||
|
"website_mail",
|
||||||
|
"website_mass_mailing",
|
||||||
|
"website_membership",
|
||||||
|
"website_odoo_debranding",
|
||||||
|
"website_partner",
|
||||||
|
"website_payment",
|
||||||
|
"website_slides",
|
||||||
|
"website_snippet_country_dropdown"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
web_responsive,disable_odoo_online,remove_odoo_enterprise,auth_user_case_insensitive,muk_web_theme,muk_utils,muk_branding,muk_mail_branding,muk_web_branding,muk_web_theme_mail,muk_web_utils,fetchmail_notify_error_to_sender,mail_debrand,partner_quebec_tz,erplibre_info,web_timeline,web_diagram_position,auto_backup,partner_no_vat,fetchmail_thread_default,mail_history
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
.venv
|
|
||||||
.repo
|
.repo
|
||||||
script/OCA_maintainer-tools
|
script/OCA_maintainer-tools
|
||||||
script/OCA_odoo-module-migrator
|
script/OCA_odoo-module-migrator
|
||||||
|
|
|
||||||
19
conf/supported_version_erplibre.json
Normal file
19
conf/supported_version_erplibre.json
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"odoo12.0_python3.7.17": {
|
||||||
|
"odoo_version": "12.0",
|
||||||
|
"python_version": "3.7.17",
|
||||||
|
"poetry_version": "1.5.0",
|
||||||
|
"default": true,
|
||||||
|
"note": "Official support ERPLibre 1.5.0"
|
||||||
|
},
|
||||||
|
"odoo14.0_python3.8.20": {
|
||||||
|
"odoo_version": "14.0",
|
||||||
|
"python_version": "3.8.20",
|
||||||
|
"poetry_version": "1.5.0"
|
||||||
|
},
|
||||||
|
"odoo16.0_python3.10.14": {
|
||||||
|
"odoo_version": "16.0",
|
||||||
|
"python_version": "3.10.14",
|
||||||
|
"poetry_version": "1.8.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -53,7 +53,7 @@ make doc_markdown
|
||||||
To generate a docker, run:
|
To generate a docker, run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make docker_build
|
make docker_build_odoo_16
|
||||||
```
|
```
|
||||||
|
|
||||||
### Rename old version to new version
|
### Rename old version to new version
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ RUN apt-get update \
|
||||||
python3-watchdog \
|
python3-watchdog \
|
||||||
python3-xlrd \
|
python3-xlrd \
|
||||||
python3-xlwt \
|
python3-xlwt \
|
||||||
|
cython \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
git \
|
git \
|
||||||
iproute2 \
|
iproute2 \
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
FROM python:3.7.17-slim-bullseye
|
# syntax=docker/dockerfile:1
|
||||||
MAINTAINER TechnoLibre <docker@technolibre.ca>
|
|
||||||
|
ARG PYTHON_VERSION=3.10.14
|
||||||
|
ARG DEBIAN_NAME=bookworm
|
||||||
|
FROM python:${PYTHON_VERSION}-slim-${DEBIAN_NAME}
|
||||||
|
#MAINTAINER TechnoLibre <docker@technolibre.ca>
|
||||||
|
|
||||||
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
|
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
|
||||||
|
|
||||||
|
|
@ -15,6 +19,9 @@ ENV LANG="C.UTF-8" \
|
||||||
ENV ODOO_PREFIX /ERPLibre
|
ENV ODOO_PREFIX /ERPLibre
|
||||||
ENV ODOO_EXEC_BIN $ODOO_PREFIX/odoo/odoo-bin
|
ENV ODOO_EXEC_BIN $ODOO_PREFIX/odoo/odoo-bin
|
||||||
|
|
||||||
|
ARG URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb
|
||||||
|
ARG SHA1SUM_WKTHMLTOX=e9f95436298c77cc9406bd4bbd242f4771d0a4b2
|
||||||
|
|
||||||
# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
|
# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
|
@ -65,14 +72,17 @@ RUN apt-get update \
|
||||||
libncursesw5-dev \
|
libncursesw5-dev \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
uuid-dev \
|
uuid-dev \
|
||||||
|
portaudio19-dev \
|
||||||
swig \
|
swig \
|
||||||
&& curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb \
|
&& curl -o wkhtmltox.deb -sSL https://${URL_WKHTMLTOX}/ \
|
||||||
&& echo 'd9f259a67e05e1c221d48b504453645e6c491fab wkhtmltox.deb' | sha1sum -c - \
|
&& echo "${SHA1SUM_WKTHMLTOX} wkhtmltox.deb" | sha1sum -c - \
|
||||||
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
|
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
|
||||||
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb
|
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb
|
||||||
|
|
||||||
|
ARG DEBIAN_NAME=bookworm
|
||||||
|
|
||||||
# Install latest postgresql-client
|
# Install latest postgresql-client
|
||||||
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main' > /etc/apt/sources.list.d/pgdg.list \
|
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ ${DEBIAN_NAME}-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
|
||||||
&& GNUPGHOME="$(mktemp -d)" \
|
&& GNUPGHOME="$(mktemp -d)" \
|
||||||
&& export GNUPGHOME \
|
&& export GNUPGHOME \
|
||||||
&& repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \
|
&& repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \
|
||||||
|
|
@ -88,19 +98,6 @@ RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main' > /etc/
|
||||||
RUN npm install -g rtlcss less prettier @prettier/plugin-xml \
|
RUN npm install -g rtlcss less prettier @prettier/plugin-xml \
|
||||||
&& ln -fs /usr/local/bin/lessc /usr/bin/lessc
|
&& ln -fs /usr/local/bin/lessc /usr/bin/lessc
|
||||||
|
|
||||||
# Install python with pyenv
|
|
||||||
# Reference https://github.com/bopen/docker-ubuntu-pyenv
|
|
||||||
#COPY pyenv-version.txt python-versions.txt /
|
|
||||||
|
|
||||||
#RUN git clone -b `cat /pyenv-version.txt` --single-branch --depth 1 https://github.com/pyenv/pyenv.git $PYENV_ROOT \
|
|
||||||
# && for version in `cat /python-versions.txt`; do pyenv install $version; done \
|
|
||||||
# && pyenv global `cat /python-versions.txt` \
|
|
||||||
# && find $PYENV_ROOT/versions -type d '(' -name '__pycache__' -o -name 'test' -o -name 'tests' ')' -exec rm -rf '{}' + \
|
|
||||||
# && find $PYENV_ROOT/versions -type f '(' -name '*.pyo' -o -name '*.exe' ')' -exec rm -f '{}' + \
|
|
||||||
# && rm -rf /tmp/* \
|
|
||||||
# && python --version \
|
|
||||||
# && python3 --version
|
|
||||||
|
|
||||||
# Install git-repo
|
# Install git-repo
|
||||||
RUN cd ; mkdir -p .bin/ && \
|
RUN cd ; mkdir -p .bin/ && \
|
||||||
git config --global color.ui false && \
|
git config --global color.ui false && \
|
||||||
|
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
FROM technolibre/erplibre-base:12.0
|
|
||||||
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN apt update && \
|
|
||||||
apt install -y -y --no-install-recommends \
|
|
||||||
build-essential \
|
|
||||||
wget \
|
|
||||||
python3-dev \
|
|
||||||
python3-venv \
|
|
||||||
python3-wheel \
|
|
||||||
libxslt-dev \
|
|
||||||
libzip-dev \
|
|
||||||
libldap2-dev \
|
|
||||||
libsasl2-dev \
|
|
||||||
python3-setuptools \
|
|
||||||
libpng16-16 \
|
|
||||||
gdebi \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
&& npm install -g rtlcss
|
|
||||||
|
|
||||||
# RUN pip3 install -r https://raw.githubusercontent.com/odoo/odoo/12.0/requirements.txt --ignore-installed psycopg2 && pip3a cache purge
|
|
||||||
|
|
||||||
ENV ADDONS_BASE_DIR /ERPLibre
|
|
||||||
ENV ENV=dev
|
|
||||||
|
|
||||||
# Copy entrypoint script and Odoo configuration file
|
|
||||||
COPY ./entrypoint.sh /
|
|
||||||
RUN chmod +x /entrypoint.sh
|
|
||||||
|
|
||||||
COPY repo_manifest_gen_org_prefix_path.py /usr/bin/
|
|
||||||
RUN chmod +x /usr/bin/repo_manifest_gen_org_prefix_path.py
|
|
||||||
|
|
||||||
USER odoo
|
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
|
||||||
CMD ["odoo"]
|
|
||||||
|
|
@ -1,10 +1,17 @@
|
||||||
FROM technolibre/erplibre-base:1.5.0
|
ARG ERPLIBRE_IMAGE_NAME=1.5.0
|
||||||
|
|
||||||
|
FROM technolibre/erplibre-base:${ERPLIBRE_IMAGE_NAME}
|
||||||
|
|
||||||
|
ARG ERPLIBRE_VERSION=odoo16.0_python3.10.14
|
||||||
|
ARG ODOO_VERSION=16.0
|
||||||
|
ARG POETRY_VERSION=1.8.3
|
||||||
ENV REPO_MANIFEST_URL https://github.com/ERPLibre/ERPLibre
|
ENV REPO_MANIFEST_URL https://github.com/ERPLibre/ERPLibre
|
||||||
ARG WORKING_BRANCH
|
ARG WORKING_BRANCH
|
||||||
ARG WORKING_HASH
|
ARG WORKING_HASH
|
||||||
ENV BRANCH_ERPLIBRE $WORKING_BRANCH
|
ENV BRANCH_ERPLIBRE $WORKING_BRANCH
|
||||||
ENV COMMIT_ERPLIBRE $WORKING_HASH
|
ENV COMMIT_ERPLIBRE $WORKING_HASH
|
||||||
|
ENV COMMIT_ERPLIBRE $WORKING_HASH
|
||||||
|
ENV DOCKER_BUILD=true
|
||||||
|
|
||||||
RUN cat /etc/os-release
|
RUN cat /etc/os-release
|
||||||
|
|
||||||
|
|
@ -27,27 +34,48 @@ RUN cd ; mkdir -p .bin/ && \
|
||||||
git checkout $COMMIT_ERPLIBRE
|
git checkout $COMMIT_ERPLIBRE
|
||||||
|
|
||||||
RUN cd $ODOO_PREFIX && \
|
RUN cd $ODOO_PREFIX && \
|
||||||
|
ls -lha /ERPLibre && \
|
||||||
python -m venv .venv
|
python -m venv .venv
|
||||||
|
|
||||||
RUN cd $ODOO_PREFIX && \
|
RUN cd $ODOO_PREFIX && \
|
||||||
|
ls -lha /ERPLibre && \
|
||||||
curl https://storage.googleapis.com/git-repo-downloads/repo > ./.venv/repo && \
|
curl https://storage.googleapis.com/git-repo-downloads/repo > ./.venv/repo && \
|
||||||
chmod +x ./.venv/repo
|
chmod +x ./.venv/repo
|
||||||
|
|
||||||
RUN cd $ODOO_PREFIX && \
|
RUN cd $ODOO_PREFIX && \
|
||||||
./script/manifest/update_manifest_dev.sh
|
ls -lha /ERPLibre && \
|
||||||
|
echo "${ERPLIBRE_VERSION}" && \
|
||||||
|
./script/version/update_env_version.py --erplibre_version "${ERPLIBRE_VERSION}"
|
||||||
|
|
||||||
|
RUN cd $ODOO_PREFIX && ls ./manifest -la && \
|
||||||
|
ls -lha /ERPLibre && \
|
||||||
|
./script/manifest/update_manifest_local_dev.sh
|
||||||
|
|
||||||
|
RUN apt update && \
|
||||||
|
apt install -y libgirepository1.0-dev && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Install Poetry
|
# Install Poetry
|
||||||
RUN cd $ODOO_PREFIX && \
|
RUN cd $ODOO_PREFIX && \
|
||||||
./.venv/bin/pip install --upgrade pip && \
|
ls -lha /ERPLibre && \
|
||||||
./.venv/bin/pip install poetry==1.3.1 && \
|
echo "${ERPLIBRE_VERSION}" && \
|
||||||
|
./.venv/bin/pip install --upgrade pip && git branch && ls . -lha && \
|
||||||
|
./.venv/bin/pip install "poetry==${POETRY_VERSION}" && \
|
||||||
./.venv/bin/poetry --version && \
|
./.venv/bin/poetry --version && \
|
||||||
./.venv/bin/poetry install
|
./.venv/bin/poetry install
|
||||||
|
|
||||||
# Install local npm
|
# Install local npm
|
||||||
RUN cd $ODOO_PREFIX && \
|
RUN cd $ODOO_PREFIX && \
|
||||||
|
ls -lha /ERPLibre && \
|
||||||
npm install
|
npm install
|
||||||
|
|
||||||
|
# Create link to addons
|
||||||
RUN cd $ODOO_PREFIX && \
|
RUN cd $ODOO_PREFIX && \
|
||||||
|
ls -lha /ERPLibre && \
|
||||||
|
ln -s "addons.odoo${ODOO_VERSION}" addons
|
||||||
|
|
||||||
|
RUN cd $ODOO_PREFIX && \
|
||||||
|
ls -lha /ERPLibre && \
|
||||||
head /etc/odoo/odoo.conf && \
|
head /etc/odoo/odoo.conf && \
|
||||||
./docker/repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && \
|
./docker/repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && \
|
||||||
head /etc/odoo/odoo.conf
|
head /etc/odoo/odoo.conf
|
||||||
|
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
FROM technolibre/erplibre-base:12.0
|
|
||||||
|
|
||||||
# TODO
|
|
||||||
|
|
||||||
|
|
||||||
# ENV REPO_MANIFEST_URL https://github.com/agileops/ERPLibre.git
|
|
||||||
# RUN cat /etc/os-release
|
|
||||||
|
|
||||||
# USER root
|
|
||||||
|
|
||||||
# # Install Odoo
|
|
||||||
# ENV ODOO_VERSION 12.0
|
|
||||||
# ARG ODOO_RELEASE=20200417
|
|
||||||
# ARG ODOO_SHA=ca4a7485b0b75850ffe1458a8f3266839400a501
|
|
||||||
# RUN curl -o odoo.deb -sSL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION}.${ODOO_RELEASE}_all.deb \
|
|
||||||
# && echo "${ODOO_SHA} odoo.deb" | sha1sum -c - \
|
|
||||||
# && apt-get update \
|
|
||||||
# && apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew install --no-install-recommends ./odoo.deb \
|
|
||||||
# && rm -rf /var/lib/apt/lists/* odoo.deb
|
|
||||||
|
|
||||||
|
|
||||||
# RUN mkdir ~/.ssh/ && echo "StrictHostKeyChecking no" >> ~/.ssh/config && apt update && apt install ssh-client git -y --no-install-recommends && \
|
|
||||||
# rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# RUN cd ; mkdir -p .bin/ && \
|
|
||||||
# git config --global color.ui false && \
|
|
||||||
# git config --global user.email "foo@bar.io" && \
|
|
||||||
# git config --global user.name "Foo Bar" && \
|
|
||||||
# mkdir -p $ODOO_PREFIX && cd $ODOO_PREFIX && \
|
|
||||||
# repo init -u $REPO_MANIFEST_URL -b 12.0_repo && \
|
|
||||||
# repo sync -j 4 -c
|
|
||||||
|
|
||||||
# ADD repo_manifest_gen_org_prefix_path.py /root/.bin/
|
|
||||||
# RUN chmod +x ~/.bin/repo_manifest_gen_org_prefix_path.py
|
|
||||||
|
|
||||||
# RUN head /etc/odoo/odoo.conf && /root/.bin/repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && head /etc/odoo/odoo.conf
|
|
||||||
|
|
||||||
# user odoo
|
|
||||||
|
|
||||||
# ENTRYPOINT ["/entrypoint.sh"]
|
|
||||||
# CMD ["odoo"]
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Those images are prepared to permit better portability and reproducibility of ERPLibre release.
|
Those images are prepared to permit better portability and reproducibility of ERPLibre release.
|
||||||
|
|
||||||
Due the the growing code of ERPLibre, it could also simplify development.
|
Due the growing code of ERPLibre, it could also simplify development.
|
||||||
|
|
||||||
NOTE: Those Dockerfiles themselves are in heavy development for now. Incompatibilities between releases are normal until the interface is stabilized.
|
NOTE: Those Dockerfiles themselves are in heavy development for now. Incompatibilities between releases are normal until the interface is stabilized.
|
||||||
|
|
||||||
|
|
@ -114,7 +114,7 @@ And restart docker service. You can delete or move all older locations of docker
|
||||||
|
|
||||||
# Update docker
|
# Update docker
|
||||||
When building your docker with script
|
When building your docker with script
|
||||||
> make docker_build
|
> make docker_build_odoo_16
|
||||||
|
|
||||||
List your docker version
|
List your docker version
|
||||||
> docker images
|
> docker images
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ case "$1" in
|
||||||
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
|
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
|
||||||
sleep 999999
|
sleep 999999
|
||||||
fi
|
fi
|
||||||
./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
/ERPLibre/.venv/bin/python ./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
||||||
if [[ "${UPDATE_ALL_DB}" == "True" ]] ; then
|
if [[ "${UPDATE_ALL_DB}" == "True" ]] ; then
|
||||||
# --stop-after-init
|
# --stop-after-init
|
||||||
exec ./.venv/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
|
exec ./.venv/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
|
||||||
|
|
@ -93,7 +93,7 @@ case "$1" in
|
||||||
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
|
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
|
||||||
sleep 999999
|
sleep 999999
|
||||||
fi
|
fi
|
||||||
./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
/ERPLibre/.venv/bin/python ./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
|
||||||
if [[ "${UPDATE_ALL_DB}" == "True" ]] ; then
|
if [[ "${UPDATE_ALL_DB}" == "True" ]] ; then
|
||||||
exec ./.venv/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
|
exec ./.venv/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
FROM technolibre/erplibre-base:12.0
|
|
||||||
|
|
||||||
ENV REPO_MANIFEST_URL https://github.com/agileops/ERPLibre.git
|
|
||||||
RUN cat /etc/os-release
|
|
||||||
|
|
||||||
ENV ADDONS_BASE_DIR /odoo
|
|
||||||
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN mkdir ~/.ssh/ && echo "StrictHostKeyChecking no" >> ~/.ssh/config && apt update && apt install ssh-client git -y --no-install-recommends && \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN cd ; mkdir -p .bin/ && \
|
|
||||||
git config --global color.ui false && \
|
|
||||||
git config --global user.email "foo@bar.io" && \
|
|
||||||
git config --global user.name "Foo Bar" && \
|
|
||||||
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo && \
|
|
||||||
chmod +x ~/.bin/repo && sed -i '1 s/python$/python3/' ~/.bin/repo && head ~/.bin/repo && \
|
|
||||||
export PATH="${HOME}/.bin:${PATH}" && \
|
|
||||||
mkdir -p $ADDONS_BASE_DIR && cd $ADDONS_BASE_DIR && \
|
|
||||||
repo init -u $REPO_MANIFEST_URL -b 12.0_repo && \
|
|
||||||
repo sync -j 4 -c
|
|
||||||
|
|
||||||
ADD repo_manifest_gen_org_prefix_path.py /root/.bin/ RUN chmod +x
|
|
||||||
~/.bin/repo_manifest_gen_org_prefix_path.py
|
|
||||||
|
|
||||||
RUN head /etc/odoo/odoo.conf && /root/.bin/repo_manifest_gen_org_prefix_path.py $ADDONS_BASE_DIR/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && head /etc/odoo/odoo.conf
|
|
||||||
|
|
||||||
user odoo
|
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
|
||||||
CMD ["odoo"]
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
v1.2.20
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
3.7.16
|
|
||||||
|
|
@ -6,6 +6,10 @@ EL_USER="erplibre"
|
||||||
EL_HOME="/${EL_USER}"
|
EL_HOME="/${EL_USER}"
|
||||||
EL_HOME_ERPLIBRE="${EL_HOME}/erplibre"
|
EL_HOME_ERPLIBRE="${EL_HOME}/erplibre"
|
||||||
EL_HOME_ODOO="${EL_HOME_ERPLIBRE}/odoo"
|
EL_HOME_ODOO="${EL_HOME_ERPLIBRE}/odoo"
|
||||||
|
EL_ODOO_VERSION=$(cat ".odoo-version" | xargs)
|
||||||
|
EL_POETRY_VERSION=$(cat ".poetry-version" | xargs)
|
||||||
|
EL_PYTHON_VERSION=$(cat ".python-version" | xargs)
|
||||||
|
EL_ERPLIBRE_VERSION=$(cat ".erplibre-version" | xargs)
|
||||||
# The default port where this Odoo instance will run under (provided you use the command -c in the terminal)
|
# The default port where this Odoo instance will run under (provided you use the command -c in the terminal)
|
||||||
# Set to true if you want to install it, false if you don't need it or have it already installed.
|
# Set to true if you want to install it, false if you don't need it or have it already installed.
|
||||||
EL_INSTALL_WKHTMLTOPDF="True"
|
EL_INSTALL_WKHTMLTOPDF="True"
|
||||||
|
|
|
||||||
167
manifest/default.dev.odoo12.0.xml
Normal file
167
manifest/default.dev.odoo12.0.xml
Normal file
|
|
@ -0,0 +1,167 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<manifest>
|
||||||
|
<remote name="CybroOdoo" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="MathBenTech" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="Numigi" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="OCA" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="OmniaGit" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="Smile-SA" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="TechnoLibre" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="ajepe" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="camptocamp" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="dhongu" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="it-projects-llc" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="itpp-labs" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="JayVora-SerpentCS" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="kinjal-sorathiya" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="muk-it" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="novacode-nl" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="obayit" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="odoo" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="odooaktiv" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="odoomates" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="openeducat" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="pledra" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="tegin" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
|
||||||
|
<default remote="ERPLibre" revision="12.0" sync-j="4" sync-c="true"/>
|
||||||
|
|
||||||
|
<project name="ERPLibre_image_db.git" path="image_db" remote="ERPLibre" clone-depth="1" revision="main" groups="base"/>
|
||||||
|
<project name="OpenHRMS.git" path="addons.odoo12.0/CybroOdoo_OpenHRMS" remote="CybroOdoo" revision="dev_12.0" groups="addons"/>
|
||||||
|
<project name="Property-Management_odoo.git" path="addons.odoo12.0/kinjal-sorathiya_Property-Management_odoo" remote="kinjal-sorathiya" revision="master" groups="addons"/>
|
||||||
|
<project name="QuotationRevision.git" path="addons.odoo12.0/MathBenTech_QuotationRevision" remote="MathBenTech" groups="addons"/>
|
||||||
|
<project name="access-addons.git" path="addons.odoo12.0/itpp-labs_access-addons" remote="itpp-labs" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="account-analytic.git" path="addons.odoo12.0/OCA_account-analytic" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="account-budgeting.git" path="addons.odoo12.0/OCA_account-budgeting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-closing.git" path="addons.odoo12.0/OCA_account-closing" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-consolidation.git" path="addons.odoo12.0/OCA_account-consolidation" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-financial-reporting.git" path="addons.odoo12.0/OCA_account-financial-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-financial-tools.git" path="addons.odoo12.0/OCA_account-financial-tools" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="account-fiscal-rule.git" path="addons.odoo12.0/OCA_account-fiscal-rule" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-invoice-reporting.git" path="addons.odoo12.0/OCA_account-invoice-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-invoicing.git" path="addons.odoo12.0/OCA_account-invoicing" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-payment.git" path="addons.odoo12.0/OCA_account-payment" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-reconcile.git" path="addons.odoo12.0/OCA_account-reconcile" remote="OCA" groups="addons"/>
|
||||||
|
<project name="apps-store.git" path="addons.odoo12.0/OCA_apps-store" remote="OCA" groups="addons"/>
|
||||||
|
<project name="bank-payment.git" path="addons.odoo12.0/OCA_bank-payment" remote="OCA" groups="addons"/>
|
||||||
|
<project name="bank-statement-import.git" path="addons.odoo12.0/OCA_bank-statement-import" remote="OCA" groups="addons"/>
|
||||||
|
<project name="brand.git" path="addons.odoo12.0/OCA_brand" remote="OCA" groups="addons"/>
|
||||||
|
<project name="business-requirement.git" path="addons.odoo12.0/OCA_business-requirement" remote="OCA" groups="addons"/>
|
||||||
|
<project name="commission.git" path="addons.odoo12.0/OCA_commission" remote="OCA" groups="addons"/>
|
||||||
|
<project name="community-data-files.git" path="addons.odoo12.0/OCA_community-data-files" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-ecommerce.git" path="addons.odoo12.0/OCA_connector-ecommerce" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-interfaces.git" path="addons.odoo12.0/OCA_connector-interfaces" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-jira.git" path="addons.odoo12.0/OCA_connector-jira" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-telephony.git" path="addons.odoo12.0/OCA_connector-telephony" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector.git" path="addons.odoo12.0/OCA_connector" remote="OCA" groups="addons"/>
|
||||||
|
<project name="contract.git" path="addons.odoo12.0/OCA_contract" remote="OCA" groups="addons,code_generator,image_db"/>
|
||||||
|
<project name="credit-control.git" path="addons.odoo12.0/OCA_credit-control" remote="OCA" groups="addons"/>
|
||||||
|
<project name="crm.git" path="addons.odoo12.0/OCA_crm" remote="OCA" groups="addons"/>
|
||||||
|
<project name="currency.git" path="addons.odoo12.0/OCA_currency" remote="OCA" groups="addons"/>
|
||||||
|
<project name="data-protection.git" path="addons.odoo12.0/OCA_data-protection" remote="OCA" groups="addons"/>
|
||||||
|
<project name="ddmrp.git" path="addons.odoo12.0/OCA_ddmrp" remote="OCA" groups="addons"/>
|
||||||
|
<project name="delivery-carrier.git" path="addons.odoo12.0/OCA_delivery-carrier" remote="OCA" groups="addons"/>
|
||||||
|
<project name="deltatech.git" path="addons.odoo12.0/dhongu_deltatech" remote="dhongu" groups="addons"/>
|
||||||
|
<project name="design-themes.git" path="addons.odoo12.0/odoo_design-themes" remote="odoo" groups="addons,code_generator,image_db"/>
|
||||||
|
<project name="development.git" path="addons.odoo12.0/MathBenTech_development" remote="MathBenTech" groups="addons,base"/>
|
||||||
|
<project name="documentation-user.git" path="doc/odoo_documentation-user" remote="odoo" groups="odoo"/>
|
||||||
|
<project name="donation.git" path="addons.odoo12.0/OCA_donation" remote="OCA" revision="12.0_module_donation_website" groups="addons"/>
|
||||||
|
<project name="e-commerce.git" path="addons.odoo12.0/OCA_e-commerce" remote="OCA" groups="addons"/>
|
||||||
|
<project name="edi.git" path="addons.odoo12.0/OCA_edi" remote="OCA" groups="addons"/>
|
||||||
|
<project name="erplibre-3D-printing-addons.git" path="addons.odoo12.0/ERPLibre_erplibre-3D-printing-addons" remote="ERPLibre" groups="addons"/>
|
||||||
|
<project name="erplibre-family-management.git" path="addons.odoo12.0/MathBenTech_erplibre-family-management" remote="MathBenTech" groups="addons,code_generator"/>
|
||||||
|
<project name="erplibre_addons.git" path="addons.odoo12.0/ERPLibre_erplibre_addons" remote="ERPLibre" revision="12.0_erplibre_devops" groups="addons,base"/>
|
||||||
|
<project name="erplibre_theme_addons.git" path="addons.odoo12.0/ERPLibre_erplibre_theme_addons" remote="ERPLibre" groups="addons,code_generator,image_db"/>
|
||||||
|
<project name="event.git" path="addons.odoo12.0/OCA_event" remote="OCA" groups="addons"/>
|
||||||
|
<project name="field-service.git" path="addons.odoo12.0/OCA_field-service" remote="OCA" groups="addons"/>
|
||||||
|
<project name="fleet.git" path="addons.odoo12.0/OCA_fleet" remote="OCA" groups="addons"/>
|
||||||
|
<project name="geospatial.git" path="addons.odoo12.0/OCA_geospatial" remote="OCA" groups="addons,code_generator,image_db"/>
|
||||||
|
<project name="helpdesk.git" path="addons.odoo12.0/OCA_helpdesk" remote="OCA" revision="12.0_dev" groups="addons,code_generator,image_db"/>
|
||||||
|
<project name="hr.git" path="addons.odoo12.0/OCA_hr" remote="OCA" groups="addons"/>
|
||||||
|
<project name="interface-github.git" path="addons.odoo12.0/OCA_interface-github" remote="OCA" groups="addons"/>
|
||||||
|
<project name="knowledge.git" path="addons.odoo12.0/OCA_knowledge" remote="OCA" groups="addons"/>
|
||||||
|
<project name="l10n-canada.git" path="addons.odoo12.0/OCA_l10n-canada" remote="OCA" groups="addons"/>
|
||||||
|
<project name="maintainer-tools.git" path="script/OCA_maintainer-tools" remote="OCA" revision="master" groups="odoo,code_generator"/>
|
||||||
|
<project name="maintenance.git" path="addons.odoo12.0/OCA_maintenance" remote="OCA" groups="addons"/>
|
||||||
|
<project name="management-system.git" path="addons.odoo12.0/OCA_management-system" remote="OCA" groups="addons"/>
|
||||||
|
<project name="manufacture.git" path="addons.odoo12.0/OCA_manufacture" remote="OCA" groups="addons"/>
|
||||||
|
<project name="margin-analysis.git" path="addons.odoo12.0/OCA_margin-analysis" remote="OCA" revision="12.0_sale_margin_editor" groups="addons"/>
|
||||||
|
<project name="medical-fhir.git" path="addons.odoo12.0/tegin_medical-fhir" remote="tegin" groups="addons"/>
|
||||||
|
<project name="mis-builder.git" path="addons.odoo12.0/OCA_mis-builder" remote="OCA" groups="addons"/>
|
||||||
|
<project name="muk_base.git" path="addons.odoo12.0/muk-it_muk_base" remote="muk-it" revision="12.0_dev" groups="addons,base"/>
|
||||||
|
<project name="muk_dms.git" path="addons.odoo12.0/muk-it_muk_dms" remote="muk-it" groups="addons"/>
|
||||||
|
<project name="muk_docs.git" path="addons.odoo12.0/muk-it_muk_docs" remote="muk-it" groups="addons"/>
|
||||||
|
<project name="muk_misc.git" path="addons.odoo12.0/muk-it_muk_misc" remote="muk-it" revision="12.0_dev" groups="addons,base"/>
|
||||||
|
<project name="muk_quality.git" path="addons.odoo12.0/muk-it_muk_quality" remote="muk-it" groups="addons"/>
|
||||||
|
<project name="muk_web.git" path="addons.odoo12.0/muk-it_muk_web" remote="muk-it" revision="12.0_dev" groups="addons,base,code_generator"/>
|
||||||
|
<project name="muk_website.git" path="addons.odoo12.0/muk-it_muk_website" remote="muk-it" revision="12.0_remove_autoinstall" groups="addons,base"/>
|
||||||
|
<project name="multi-company.git" path="addons.odoo12.0/OCA_multi-company" remote="OCA" groups="addons"/>
|
||||||
|
<project name="odoo-addons.git" path="addons.odoo12.0/ajepe_odoo-addons" remote="ajepe" revision="12.0_dev" groups="addons,base"/>
|
||||||
|
<project name="odoo-base-addons.git" path="addons.odoo12.0/Numigi_odoo-base-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-business-spending-management-quebec-canada.git" path="addons.odoo12.0/MathBenTech_odoo-business-spending-management-quebec-canada" remote="MathBenTech" groups="addons,base"/>
|
||||||
|
<project name="odoo-cloud-platform.git" path="addons.odoo12.0/camptocamp_odoo-cloud-platform" remote="camptocamp" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-code-generator-template.git" path="addons.odoo12.0/TechnoLibre_odoo-code-generator-template" revision="12.0_new_format" remote="TechnoLibre" groups="addons,code_generator,image_db"/>
|
||||||
|
<project name="odoo-code-generator.git" path="addons.odoo12.0/TechnoLibre_odoo-code-generator" remote="TechnoLibre" revision="12.0_support_wizard" groups="addons,code_generator,image_db"/>
|
||||||
|
<project name="odoo-development.git" path="doc/itpp-labs_odoo-development" remote="itpp-labs" revision="12.0_dev" groups="odoo"/>
|
||||||
|
<project name="odoo-entertainment-addons.git" path="addons.odoo12.0/Numigi_odoo-entertainment-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-git-addons.git" path="addons.odoo12.0/Numigi_odoo-git-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-formio.git" path="addons.odoo12.0/novacode-nl_odoo-formio" remote="novacode-nl" groups="addons"/>
|
||||||
|
<project name="odoo-hr-addons.git" path="addons.odoo12.0/Numigi_odoo-hr-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-module-migrator.git" path="script/OCA_odoo-module-migrator" remote="OCA" revision="master" groups="odoo"/>
|
||||||
|
<project name="odoo-partner-addons.git" path="addons.odoo12.0/Numigi_odoo-partner-addons" remote="Numigi" revision="12.0_dev" groups="addons,base,image_db"/>
|
||||||
|
<project name="odoo-product-addons.git" path="addons.odoo12.0/Numigi_odoo-product-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-port-docs.git" path="doc/itpp-labs_odoo-port-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||||
|
<project name="odoo-product-configurator.git" path="addons.odoo12.0/pledra_odoo-product-configurator" remote="pledra" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-project-addons.git" path="addons.odoo12.0/Numigi_odoo-project-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-purchase-addons.git" path="addons.odoo12.0/Numigi_odoo-purchase-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-stock-addons.git" path="addons.odoo12.0/Numigi_odoo-stock-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-survey-addons.git" path="addons.odoo12.0/Numigi_odoo-survey-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-test-docs.git" path="doc/itpp-labs_odoo-test-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||||
|
<project name="odoo-timesheet-addons.git" path="addons.odoo12.0/Numigi_odoo-timesheet-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo-web-addons.git" path="addons.odoo12.0/Numigi_odoo-web-addons" remote="Numigi" groups="addons,base"/>
|
||||||
|
<project name="odoo.git" path="odoo" remote="odoo" revision="ERPLibre/12.0" clone-depth="10" groups="odoo,base"/>
|
||||||
|
<project name="odoo_addons.git" path="addons.odoo12.0/Smile-SA_odoo_addons" remote="Smile-SA" revision="12.0_remote_autoinstall" groups="addons"/>
|
||||||
|
<project name="odoo_dhtmlxgantt.git" path="addons.odoo12.0/obayit_odoo_dhtmlxgantt" remote="obayit" groups="addons"/>
|
||||||
|
<project name="odooapps.git" path="addons.odoo12.0/odoomates_odooapps" remote="odoomates" groups="addons"/>
|
||||||
|
<project name="odooplm.git" path="addons.odoo12.0/OmniaGit_odooplm" remote="OmniaGit" groups="addons"/>
|
||||||
|
<project name="openeducat_erp.git" path="addons.odoo12.0/openeducat_openeducat_erp" remote="openeducat" groups="addons"/>
|
||||||
|
<project name="operating-unit.git" path="addons.odoo12.0/OCA_operating-unit" remote="OCA" groups="addons"/>
|
||||||
|
<project name="partner-contact.git" path="addons.odoo12.0/OCA_partner-contact" remote="OCA" groups="addons"/>
|
||||||
|
<project name="pos-addons.git" path="addons.odoo12.0/itpp-labs_pos-addons" remote="itpp-labs" groups="addons"/>
|
||||||
|
<project name="pos.git" path="addons.odoo12.0/OCA_pos" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-attribute.git" path="addons.odoo12.0/OCA_product-attribute" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-pack.git" path="addons.odoo12.0/OCA_product-pack" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-variant.git" path="addons.odoo12.0/OCA_product-variant" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product_rating_app.git" path="addons.odoo12.0/odooaktiv_product_rating_app" remote="odooaktiv" groups="addons"/>
|
||||||
|
<project name="project-reporting.git" path="addons.odoo12.0/OCA_project-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="project.git" path="addons.odoo12.0/OCA_project" remote="OCA" revision="12.0_fix_conflict_project_key" groups="addons"/>
|
||||||
|
<project name="purchase-workflow.git" path="addons.odoo12.0/OCA_purchase-workflow" remote="OCA" groups="addons"/>
|
||||||
|
<project name="queue.git" path="addons.odoo12.0/OCA_queue" remote="OCA" groups="addons"/>
|
||||||
|
<project name="reporting-engine.git" path="addons.odoo12.0/OCA_reporting-engine" remote="OCA" groups="addons"/>
|
||||||
|
<project name="rma.git" path="addons.odoo12.0/OCA_rma" remote="OCA" groups="addons"/>
|
||||||
|
<project name="saas-addons.git" path="addons.odoo12.0/it-projects-llc_saas-addons" remote="it-projects-llc" groups="addons"/>
|
||||||
|
<project name="sale-reporting.git" path="addons.odoo12.0/OCA_sale-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="sale-workflow.git" path="addons.odoo12.0/OCA_sale-workflow" remote="OCA" revision="12.0_modules_sale_order_line" groups="addons"/>
|
||||||
|
<project name="scrummer.git" path="addons.odoo12.0/MathBenTech_scrummer" remote="MathBenTech" revision="12.0_dev" groups="addons,base"/>
|
||||||
|
<project name="SerpentCS_Contributions.git" path="addons.odoo12.0/JayVora-SerpentCS_SerpentCS_Contributions" remote="JayVora-SerpentCS" groups="addons,code_generator,base"/>
|
||||||
|
<project name="server-auth.git" path="addons.odoo12.0/OCA_server-auth" remote="OCA" groups="addons,base,image_db"/>
|
||||||
|
<project name="server-backend.git" path="addons.odoo12.0/OCA_server-backend" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="server-brand.git" path="addons.odoo12.0/OCA_server-brand" remote="OCA" groups="addons,base"/>
|
||||||
|
<project name="server-env.git" path="addons.odoo12.0/OCA_server-env" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-tools.git" path="addons.odoo12.0/OCA_server-tools" remote="OCA" revision="12.0_dev" groups="addons,base"/>
|
||||||
|
<project name="server-ux.git" path="addons.odoo12.0/OCA_server-ux" remote="OCA" groups="addons,base"/>
|
||||||
|
<project name="social.git" path="addons.odoo12.0/OCA_social" remote="OCA" groups="addons,base"/>
|
||||||
|
<project name="stock-logistics-warehouse.git" path="addons.odoo12.0/OCA_stock-logistics-warehouse" remote="OCA" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="storage.git" path="addons.odoo12.0/OCA_storage" remote="OCA" groups="addons"/>
|
||||||
|
<project name="timesheet.git" path="addons.odoo12.0/OCA_timesheet" remote="OCA" revision="12.0_support_project_agile_timesheet" groups="addons"/>
|
||||||
|
<project name="vertical-association.git" path="addons.odoo12.0/OCA_vertical-association" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-hotel.git" path="addons.odoo12.0/OCA_vertical-hotel" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-isp.git" path="addons.odoo12.0/OCA_vertical-isp" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-travel.git" path="addons.odoo12.0/OCA_vertical-travel" remote="OCA" groups="addons"/>
|
||||||
|
<project name="web.git" path="addons.odoo12.0/OCA_web" remote="OCA" revision="12.0_dev" groups="addons,base"/>
|
||||||
|
<project name="website-addons.git" path="addons.odoo12.0/itpp-labs_website-addons" remote="itpp-labs" revision="12.0_dev" groups="addons"/>
|
||||||
|
<project name="website-cms.git" path="addons.odoo12.0/OCA_website-cms" remote="OCA" groups="addons"/>
|
||||||
|
<project name="website.git" path="addons.odoo12.0/OCA_website" remote="OCA" revision="12.0_dev" groups="addons,code_generator,image_db"/>
|
||||||
|
<project name="wms.git" path="addons.odoo12.0/OCA_wms" remote="OCA" groups="addons"/>
|
||||||
|
</manifest>
|
||||||
148
manifest/default.dev.odoo14.0.xml
Normal file
148
manifest/default.dev.odoo14.0.xml
Normal file
|
|
@ -0,0 +1,148 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<manifest>
|
||||||
|
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/"/>
|
||||||
|
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="MathBenTech" fetch="https://github.com/MathBenTech/"/>
|
||||||
|
<remote name="Numigi" fetch="https://github.com/Numigi/"/>
|
||||||
|
<remote name="OCA" fetch="https://github.com/OCA/"/>
|
||||||
|
<remote name="OmniaGit" fetch="https://github.com/OmniaGit/"/>
|
||||||
|
<remote name="Smile-SA" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="TechnoLibre" fetch="https://github.com/TechnoLibre/"/>
|
||||||
|
<remote name="ajepe" fetch="https://github.com/ajepe/"/>
|
||||||
|
<remote name="camptocamp" fetch="https://github.com/camptocamp/"/>
|
||||||
|
<remote name="dhongu" fetch="https://github.com/dhongu/"/>
|
||||||
|
<remote name="it-projects-llc" fetch="https://github.com/it-projects-llc/"/>
|
||||||
|
<remote name="itpp-labs" fetch="https://github.com/itpp-labs/"/>
|
||||||
|
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/"/>
|
||||||
|
<remote name="muk-it" fetch="https://github.com/muk-it/"/>
|
||||||
|
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/"/>
|
||||||
|
<remote name="obayit" fetch="https://github.com/obayit/"/>
|
||||||
|
<remote name="odoo" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/"/>
|
||||||
|
<remote name="odoomates" fetch="https://github.com/odoomates/"/>
|
||||||
|
<remote name="openeducat" fetch="https://github.com/openeducat/"/>
|
||||||
|
<remote name="pledra" fetch="https://github.com/pledra/"/>
|
||||||
|
<remote name="tegin" fetch="https://github.com/tegin/"/>
|
||||||
|
|
||||||
|
<default remote="ERPLibre" revision="14.0" sync-j="4" sync-c="true"/>
|
||||||
|
|
||||||
|
<project name="ERPLibre_image_db.git" path="image_db" remote="ERPLibre" clone-depth="1" revision="main" groups="base"/>
|
||||||
|
<project name="OpenHRMS.git" path="addons.odoo14.0/CybroOdoo_OpenHRMS" remote="CybroOdoo" groups="addons"/>
|
||||||
|
<project name="access-addons.git" path="addons.odoo14.0/itpp-labs_access-addons" remote="itpp-labs" groups="addons"/>
|
||||||
|
<project name="account-analytic.git" path="addons.odoo14.0/OCA_account-analytic" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-budgeting.git" path="addons.odoo14.0/OCA_account-budgeting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-closing.git" path="addons.odoo14.0/OCA_account-closing" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-consolidation.git" path="addons.odoo14.0/OCA_account-consolidation" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-financial-reporting.git" path="addons.odoo14.0/OCA_account-financial-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-financial-tools.git" path="addons.odoo14.0/OCA_account-financial-tools" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-fiscal-rule.git" path="addons.odoo14.0/OCA_account-fiscal-rule" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-invoice-reporting.git" path="addons.odoo14.0/OCA_account-invoice-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-invoicing.git" path="addons.odoo14.0/OCA_account-invoicing" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-payment.git" path="addons.odoo14.0/OCA_account-payment" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-reconcile.git" path="addons.odoo14.0/OCA_account-reconcile" remote="OCA" groups="addons"/>
|
||||||
|
<project name="apps-store.git" path="addons.odoo14.0/OCA_apps-store" remote="OCA" groups="addons"/>
|
||||||
|
<project name="bank-payment.git" path="addons.odoo14.0/OCA_bank-payment" remote="OCA" groups="addons"/>
|
||||||
|
<project name="bank-statement-import.git" path="addons.odoo14.0/OCA_bank-statement-import" remote="OCA" groups="addons"/>
|
||||||
|
<project name="brand.git" path="addons.odoo14.0/OCA_brand" remote="OCA" groups="addons"/>
|
||||||
|
<project name="business-requirement.git" path="addons.odoo14.0/OCA_business-requirement" remote="OCA" groups="addons"/>
|
||||||
|
<project name="commission.git" path="addons.odoo14.0/OCA_commission" remote="OCA" groups="addons"/>
|
||||||
|
<project name="community-data-files.git" path="addons.odoo14.0/OCA_community-data-files" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-ecommerce.git" path="addons.odoo14.0/OCA_connector-ecommerce" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-interfaces.git" path="addons.odoo14.0/OCA_connector-interfaces" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-jira.git" path="addons.odoo14.0/OCA_connector-jira" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-telephony.git" path="addons.odoo14.0/OCA_connector-telephony" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector.git" path="addons.odoo14.0/OCA_connector" remote="OCA" groups="addons"/>
|
||||||
|
<project name="contract.git" path="addons.odoo14.0/OCA_contract" remote="OCA" groups="addons"/>
|
||||||
|
<project name="credit-control.git" path="addons.odoo14.0/OCA_credit-control" remote="OCA" groups="addons"/>
|
||||||
|
<project name="crm.git" path="addons.odoo14.0/OCA_crm" remote="OCA" groups="addons"/>
|
||||||
|
<project name="currency.git" path="addons.odoo14.0/OCA_currency" remote="OCA" groups="addons"/>
|
||||||
|
<project name="data-protection.git" path="addons.odoo14.0/OCA_data-protection" remote="OCA" groups="addons"/>
|
||||||
|
<project name="ddmrp.git" path="addons.odoo14.0/OCA_ddmrp" remote="OCA" groups="addons"/>
|
||||||
|
<project name="delivery-carrier.git" path="addons.odoo14.0/OCA_delivery-carrier" remote="OCA" groups="addons"/>
|
||||||
|
<project name="deltatech.git" path="addons.odoo14.0/dhongu_deltatech" remote="dhongu" groups="addons"/>
|
||||||
|
<project name="design-themes.git" path="addons.odoo14.0/odoo_design-themes" remote="odoo" groups="addons"/>
|
||||||
|
<project name="donation.git" path="addons.odoo14.0/OCA_donation" remote="OCA" groups="addons"/>
|
||||||
|
<project name="e-commerce.git" path="addons.odoo14.0/OCA_e-commerce" remote="OCA" groups="addons"/>
|
||||||
|
<project name="edi.git" path="addons.odoo14.0/OCA_edi" remote="OCA" groups="addons"/>
|
||||||
|
<project name="event.git" path="addons.odoo14.0/OCA_event" remote="OCA" groups="addons"/>
|
||||||
|
<project name="field-service.git" path="addons.odoo14.0/OCA_field-service" remote="OCA" groups="addons"/>
|
||||||
|
<project name="fleet.git" path="addons.odoo14.0/OCA_fleet" remote="OCA" groups="addons"/>
|
||||||
|
<project name="geospatial.git" path="addons.odoo14.0/OCA_geospatial" remote="OCA" groups="addons"/>
|
||||||
|
<project name="helpdesk.git" path="addons.odoo14.0/OCA_helpdesk" remote="ERPLibre" revision="14.0_dev" groups="addons"/>
|
||||||
|
<project name="hr.git" path="addons.odoo14.0/OCA_hr" remote="OCA" groups="addons"/>
|
||||||
|
<project name="interface-github.git" path="addons.odoo14.0/OCA_interface-github" remote="OCA" groups="addons"/>
|
||||||
|
<project name="knowledge.git" path="addons.odoo14.0/OCA_knowledge" remote="OCA" groups="addons"/>
|
||||||
|
<project name="l10n-canada.git" path="addons.odoo14.0/OCA_l10n-canada" remote="OCA" groups="addons"/>
|
||||||
|
<project name="maintainer-tools.git" path="script/OCA_maintainer-tools" remote="OCA" revision="master" groups="odoo"/>
|
||||||
|
<project name="maintenance.git" path="addons.odoo14.0/OCA_maintenance" remote="OCA" groups="addons"/>
|
||||||
|
<project name="management-system.git" path="addons.odoo14.0/OCA_management-system" remote="OCA" groups="addons"/>
|
||||||
|
<project name="manufacture.git" path="addons.odoo14.0/OCA_manufacture" remote="OCA" groups="addons"/>
|
||||||
|
<project name="margin-analysis.git" path="addons.odoo14.0/OCA_margin-analysis" remote="OCA" groups="addons"/>
|
||||||
|
<project name="medical-fhir.git" path="addons.odoo14.0/tegin_medical-fhir" remote="tegin" groups="addons"/>
|
||||||
|
<project name="mis-builder.git" path="addons.odoo14.0/OCA_mis-builder" remote="OCA" groups="addons"/>
|
||||||
|
<project name="multi-company.git" path="addons.odoo14.0/OCA_multi-company" remote="OCA" groups="addons"/>
|
||||||
|
<project name="muk_web.git" path="addons.odoo14.0/muk-it_muk_web" remote="muk-it" groups="addons"/>
|
||||||
|
<project name="odoo-addons.git" path="addons.odoo14.0/ajepe_odoo-addons" remote="ajepe" groups="addons"/>
|
||||||
|
<project name="odoo-base-addons.git" path="addons.odoo14.0/Numigi_odoo-base-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-cloud-platform.git" path="addons.odoo14.0/camptocamp_odoo-cloud-platform" remote="camptocamp" groups="addons"/>
|
||||||
|
<project name="odoo-development.git" path="doc/itpp-labs_odoo-development" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||||
|
<project name="odoo-entertainment-addons.git" path="addons.odoo14.0/Numigi_odoo-entertainment-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-formio.git" path="addons.odoo14.0/novacode-nl_odoo-formio" remote="novacode-nl" groups="addons"/>
|
||||||
|
<project name="odoo-git-addons.git" path="addons.odoo14.0/Numigi_odoo-git-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-hr-addons.git" path="addons.odoo14.0/Numigi_odoo-hr-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-module-migrator.git" path="script/OCA_odoo-module-migrator" remote="OCA" revision="master" groups="odoo"/>
|
||||||
|
<project name="odoo-partner-addons.git" path="addons.odoo14.0/Numigi_odoo-partner-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-port-docs.git" path="doc/itpp-labs_odoo-port-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||||
|
<project name="odoo-product-addons.git" path="addons.odoo14.0/Numigi_odoo-product-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-project-addons.git" path="addons.odoo14.0/Numigi_odoo-project-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-purchase-addons.git" path="addons.odoo14.0/Numigi_odoo-purchase-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-stock-addons.git" path="addons.odoo14.0/Numigi_odoo-stock-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-survey-addons.git" path="addons.odoo14.0/Numigi_odoo-survey-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-test-docs.git" path="doc/itpp-labs_odoo-test-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
||||||
|
<project name="odoo-timesheet-addons.git" path="addons.odoo14.0/Numigi_odoo-timesheet-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo-web-addons.git" path="addons.odoo14.0/Numigi_odoo-web-addons" remote="Numigi" groups="addons"/>
|
||||||
|
<project name="odoo.git" path="odoo" remote="odoo" clone-depth="10" revision="ERPLibre/14.0" groups="odoo"/>
|
||||||
|
<project name="odoo_addons.git" path="addons.odoo14.0/Smile-SA_odoo_addons" remote="Smile-SA" revision="14.0_dev" groups="addons"/>
|
||||||
|
<project name="odoo_dhtmlxgantt.git" path="addons.odoo14.0/obayit_odoo_dhtmlxgantt" remote="obayit" groups="addons"/>
|
||||||
|
<project name="odooapps.git" path="addons.odoo14.0/odoomates_odooapps" remote="odoomates" groups="addons"/>
|
||||||
|
<project name="odooplm.git" path="addons.odoo14.0/OmniaGit_odooplm" remote="OmniaGit" groups="addons"/>
|
||||||
|
<project name="openeducat_erp.git" path="addons.odoo14.0/openeducat_openeducat_erp" remote="openeducat" groups="addons"/>
|
||||||
|
<project name="OpenUpgrade.git" path="script/OCA_OpenUpgrade" remote="OCA" clone-depth="10" groups="migration"/>
|
||||||
|
<project name="operating-unit.git" path="addons.odoo14.0/OCA_operating-unit" remote="OCA" groups="addons"/>
|
||||||
|
<project name="partner-contact.git" path="addons.odoo14.0/OCA_partner-contact" remote="OCA" groups="addons"/>
|
||||||
|
<project name="pos-addons.git" path="addons.odoo14.0/itpp-labs_pos-addons" remote="itpp-labs" groups="addons"/>
|
||||||
|
<project name="pos.git" path="addons.odoo14.0/OCA_pos" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-attribute.git" path="addons.odoo14.0/OCA_product-attribute" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-configurator.git" path="addons.odoo14.0/OCA_product-configurator" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-pack.git" path="addons.odoo14.0/OCA_product-pack" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-variant.git" path="addons.odoo14.0/OCA_product-variant" remote="OCA" groups="addons"/>
|
||||||
|
<project name="project-reporting.git" path="addons.odoo14.0/OCA_project-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="project-agile.git" path="addons.odoo14.0/OCA_project-agile" remote="OCA" groups="addons"/>
|
||||||
|
<project name="project.git" path="addons.odoo14.0/OCA_project" remote="OCA" groups="addons"/>
|
||||||
|
<project name="purchase-workflow.git" path="addons.odoo14.0/OCA_purchase-workflow" remote="OCA" groups="addons"/>
|
||||||
|
<project name="queue.git" path="addons.odoo14.0/OCA_queue" remote="OCA" groups="addons"/>
|
||||||
|
<project name="reporting-engine.git" path="addons.odoo14.0/OCA_reporting-engine" remote="OCA" groups="addons"/>
|
||||||
|
<project name="rma.git" path="addons.odoo14.0/OCA_rma" remote="OCA" groups="addons"/>
|
||||||
|
<project name="saas-addons.git" path="addons.odoo14.0/it-projects-llc_saas-addons" remote="it-projects-llc" groups="addons"/>
|
||||||
|
<project name="sale-reporting.git" path="addons.odoo14.0/OCA_sale-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="sale-workflow.git" path="addons.odoo14.0/OCA_sale-workflow" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-auth.git" path="addons.odoo14.0/OCA_server-auth" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-backend.git" path="addons.odoo14.0/OCA_server-backend" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-brand.git" path="addons.odoo14.0/OCA_server-brand" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-env.git" path="addons.odoo14.0/OCA_server-env" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-tools.git" path="addons.odoo14.0/OCA_server-tools" remote="ERPLibre" revision="14.0_dev" groups="addons"/>
|
||||||
|
<project name="server-ux.git" path="addons.odoo14.0/OCA_server-ux" remote="OCA" groups="addons"/>
|
||||||
|
<project name="social.git" path="addons.odoo14.0/OCA_social" remote="ERPLibre" revision="14.0_dev" groups="addons"/>
|
||||||
|
<project name="stock-logistics-warehouse.git" path="addons.odoo14.0/OCA_stock-logistics-warehouse" remote="OCA" groups="addons"/>
|
||||||
|
<project name="storage.git" path="addons.odoo14.0/OCA_storage" remote="OCA" groups="addons"/>
|
||||||
|
<project name="timesheet.git" path="addons.odoo14.0/OCA_timesheet" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-association.git" path="addons.odoo14.0/OCA_vertical-association" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-hotel.git" path="addons.odoo14.0/OCA_vertical-hotel" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-isp.git" path="addons.odoo14.0/OCA_vertical-isp" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-travel.git" path="addons.odoo14.0/OCA_vertical-travel" remote="OCA" groups="addons"/>
|
||||||
|
<project name="web.git" path="addons.odoo14.0/OCA_web" remote="OCA" groups="addons"/>
|
||||||
|
<project name="website-addons.git" path="addons.odoo14.0/itpp-labs_website-addons" remote="itpp-labs" groups="addons"/>
|
||||||
|
<project name="website-cms.git" path="addons.odoo14.0/OCA_website-cms" remote="OCA" groups="addons"/>
|
||||||
|
<project name="website.git" path="addons.odoo14.0/OCA_website" remote="OCA" groups="addons"/>
|
||||||
|
<project name="wms.git" path="addons.odoo14.0/OCA_wms" remote="OCA" groups="addons"/>
|
||||||
|
</manifest>
|
||||||
129
manifest/default.dev.odoo16.0.xml
Normal file
129
manifest/default.dev.odoo16.0.xml
Normal file
|
|
@ -0,0 +1,129 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<manifest>
|
||||||
|
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/"/>
|
||||||
|
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="MathBenTech" fetch="https://github.com/MathBenTech/"/>
|
||||||
|
<remote name="Numigi" fetch="https://github.com/Numigi/"/>
|
||||||
|
<remote name="OCA" fetch="https://github.com/OCA/"/>
|
||||||
|
<remote name="OmniaGit" fetch="https://github.com/OmniaGit/"/>
|
||||||
|
<remote name="Smile-SA" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="TechnoLibre" fetch="https://github.com/TechnoLibre/"/>
|
||||||
|
<remote name="ajepe" fetch="https://github.com/ajepe/"/>
|
||||||
|
<remote name="camptocamp" fetch="https://github.com/camptocamp/"/>
|
||||||
|
<remote name="dhongu" fetch="https://github.com/dhongu/"/>
|
||||||
|
<remote name="it-projects-llc" fetch="https://github.com/it-projects-llc/"/>
|
||||||
|
<remote name="itpp-labs" fetch="https://github.com/itpp-labs/"/>
|
||||||
|
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/"/>
|
||||||
|
<remote name="muk-it" fetch="https://github.com/muk-it/"/>
|
||||||
|
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/"/>
|
||||||
|
<remote name="obayit" fetch="https://github.com/obayit/"/>
|
||||||
|
<remote name="odoo" fetch="https://github.com/ERPLibre/"/>
|
||||||
|
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/"/>
|
||||||
|
<remote name="odoomates" fetch="https://github.com/odoomates/"/>
|
||||||
|
<remote name="openeducat" fetch="https://github.com/openeducat/"/>
|
||||||
|
<remote name="pledra" fetch="https://github.com/pledra/"/>
|
||||||
|
<remote name="tegin" fetch="https://github.com/tegin/"/>
|
||||||
|
|
||||||
|
<default remote="ERPLibre" revision="16.0" sync-j="4" sync-c="true"/>
|
||||||
|
|
||||||
|
<project name="ERPLibre_image_db.git" path="image_db" remote="ERPLibre" clone-depth="1" revision="main" groups="base"/>
|
||||||
|
<project name="OpenHRMS.git" path="addons.odoo16.0/CybroOdoo_OpenHRMS" remote="CybroOdoo" groups="addons"/>
|
||||||
|
<project name="CybroAddons.git" path="addons.odoo16.0/CybroOdoo_CybroAddons" remote="ERPLibre" revision="16.0_dev" groups="addons"/>
|
||||||
|
<project name="account-analytic.git" path="addons.odoo16.0/OCA_account-analytic" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-budgeting.git" path="addons.odoo16.0/OCA_account-budgeting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-closing.git" path="addons.odoo16.0/OCA_account-closing" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-consolidation.git" path="addons.odoo16.0/OCA_account-consolidation" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-financial-reporting.git" path="addons.odoo16.0/OCA_account-financial-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-financial-tools.git" path="addons.odoo16.0/OCA_account-financial-tools" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-fiscal-rule.git" path="addons.odoo16.0/OCA_account-fiscal-rule" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-invoice-reporting.git" path="addons.odoo16.0/OCA_account-invoice-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-invoicing.git" path="addons.odoo16.0/OCA_account-invoicing" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-payment.git" path="addons.odoo16.0/OCA_account-payment" remote="OCA" groups="addons"/>
|
||||||
|
<project name="account-reconcile.git" path="addons.odoo16.0/OCA_account-reconcile" remote="OCA" groups="addons"/>
|
||||||
|
<project name="apps-store.git" path="addons.odoo16.0/OCA_apps-store" remote="OCA" groups="addons"/>
|
||||||
|
<project name="bank-payment.git" path="addons.odoo16.0/OCA_bank-payment" remote="OCA" groups="addons"/>
|
||||||
|
<project name="bank-statement-import.git" path="addons.odoo16.0/OCA_bank-statement-import" remote="OCA" groups="addons"/>
|
||||||
|
<project name="brand.git" path="addons.odoo16.0/OCA_brand" remote="OCA" groups="addons"/>
|
||||||
|
<project name="business-requirement.git" path="addons.odoo16.0/OCA_business-requirement" remote="OCA" groups="addons"/>
|
||||||
|
<project name="commission.git" path="addons.odoo16.0/OCA_commission" remote="OCA" groups="addons"/>
|
||||||
|
<project name="community-data-files.git" path="addons.odoo16.0/OCA_community-data-files" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-ecommerce.git" path="addons.odoo16.0/OCA_connector-ecommerce" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-interfaces.git" path="addons.odoo16.0/OCA_connector-interfaces" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-jira.git" path="addons.odoo16.0/OCA_connector-jira" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector-telephony.git" path="addons.odoo16.0/OCA_connector-telephony" remote="OCA" groups="addons"/>
|
||||||
|
<project name="connector.git" path="addons.odoo16.0/OCA_connector" remote="OCA" groups="addons"/>
|
||||||
|
<project name="contract.git" path="addons.odoo16.0/OCA_contract" remote="OCA" groups="addons"/>
|
||||||
|
<project name="credit-control.git" path="addons.odoo16.0/OCA_credit-control" remote="OCA" groups="addons"/>
|
||||||
|
<project name="crm.git" path="addons.odoo16.0/OCA_crm" remote="OCA" groups="addons"/>
|
||||||
|
<project name="currency.git" path="addons.odoo16.0/OCA_currency" remote="OCA" groups="addons"/>
|
||||||
|
<project name="data-protection.git" path="addons.odoo16.0/OCA_data-protection" remote="OCA" groups="addons"/>
|
||||||
|
<project name="ddmrp.git" path="addons.odoo16.0/OCA_ddmrp" remote="OCA" groups="addons"/>
|
||||||
|
<project name="delivery-carrier.git" path="addons.odoo16.0/OCA_delivery-carrier" remote="OCA" groups="addons"/>
|
||||||
|
<project name="deltatech.git" path="addons.odoo16.0/dhongu_deltatech" remote="dhongu" groups="addons"/>
|
||||||
|
<project name="donation.git" path="addons.odoo16.0/OCA_donation" remote="OCA" groups="addons"/>
|
||||||
|
<project name="e-commerce.git" path="addons.odoo16.0/OCA_e-commerce" remote="OCA" groups="addons"/>
|
||||||
|
<project name="edi.git" path="addons.odoo16.0/OCA_edi" remote="OCA" groups="addons"/>
|
||||||
|
<project name="erplibre_addons.git" path="addons.odoo16.0/ERPLibre_erplibre_addons" remote="ERPLibre" groups="addons,base"/>
|
||||||
|
<project name="event.git" path="addons.odoo16.0/OCA_event" remote="OCA" groups="addons"/>
|
||||||
|
<project name="field-service.git" path="addons.odoo16.0/OCA_field-service" remote="OCA" groups="addons"/>
|
||||||
|
<project name="fleet.git" path="addons.odoo16.0/OCA_fleet" remote="OCA" groups="addons"/>
|
||||||
|
<project name="geospatial.git" path="addons.odoo16.0/OCA_geospatial" remote="OCA" groups="addons"/>
|
||||||
|
<project name="helpdesk.git" path="addons.odoo16.0/OCA_helpdesk" remote="OCA" groups="addons"/>
|
||||||
|
<project name="hr.git" path="addons.odoo16.0/OCA_hr" remote="OCA" groups="addons"/>
|
||||||
|
<project name="interface-github.git" path="addons.odoo16.0/OCA_interface-github" remote="OCA" groups="addons"/>
|
||||||
|
<project name="knowledge.git" path="addons.odoo16.0/OCA_knowledge" remote="OCA" groups="addons"/>
|
||||||
|
<project name="l10n-canada.git" path="addons.odoo16.0/OCA_l10n-canada" remote="OCA" groups="addons"/>
|
||||||
|
<project name="maintainer-tools.git" path="script/OCA_maintainer-tools" remote="OCA" revision="master" groups="odoo"/>
|
||||||
|
<project name="maintenance.git" path="addons.odoo16.0/OCA_maintenance" remote="OCA" groups="addons"/>
|
||||||
|
<project name="management-system.git" path="addons.odoo16.0/OCA_management-system" remote="OCA" groups="addons"/>
|
||||||
|
<project name="manufacture.git" path="addons.odoo16.0/OCA_manufacture" remote="OCA" groups="addons"/>
|
||||||
|
<project name="margin-analysis.git" path="addons.odoo16.0/OCA_margin-analysis" remote="OCA" groups="addons"/>
|
||||||
|
<project name="medical-fhir.git" path="addons.odoo16.0/tegin_medical-fhir" remote="tegin" groups="addons"/>
|
||||||
|
<project name="mis-builder.git" path="addons.odoo16.0/OCA_mis-builder" remote="OCA" groups="addons"/>
|
||||||
|
<project name="multi-company.git" path="addons.odoo16.0/OCA_multi-company" remote="OCA" groups="addons"/>
|
||||||
|
<project name="muk_web.git" path="addons.odoo16.0/muk-it_muk_web" remote="muk-it" groups="addons"/>
|
||||||
|
<project name="odoo-cloud-platform.git" path="addons.odoo16.0/camptocamp_odoo-cloud-platform" remote="camptocamp" groups="addons"/>
|
||||||
|
<project name="odoo-formio.git" path="addons.odoo16.0/novacode-nl_odoo-formio" remote="novacode-nl" groups="addons"/>
|
||||||
|
<project name="odoo-module-migrator.git" path="script/OCA_odoo-module-migrator" remote="OCA" revision="master" groups="odoo"/>
|
||||||
|
<project name="odoo.git" path="odoo" remote="odoo" clone-depth="10" revision="ERPLibre/16.0" groups="odoo"/>
|
||||||
|
<project name="odooapps.git" path="addons.odoo16.0/odoomates_odooapps" remote="odoomates" groups="addons"/>
|
||||||
|
<project name="odooplm.git" path="addons.odoo16.0/OmniaGit_odooplm" remote="OmniaGit" groups="addons"/>
|
||||||
|
<project name="openeducat_erp.git" path="addons.odoo16.0/openeducat_openeducat_erp" remote="openeducat" groups="addons"/>
|
||||||
|
<project name="OpenUpgrade.git" path="script/OCA_OpenUpgrade" remote="OCA" clone-depth="10" groups="migration"/>
|
||||||
|
<project name="operating-unit.git" path="addons.odoo16.0/OCA_operating-unit" remote="OCA" groups="addons"/>
|
||||||
|
<project name="partner-contact.git" path="addons.odoo16.0/OCA_partner-contact" remote="OCA" groups="addons"/>
|
||||||
|
<project name="pos.git" path="addons.odoo16.0/OCA_pos" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-attribute.git" path="addons.odoo16.0/OCA_product-attribute" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-configurator.git" path="addons.odoo16.0/OCA_product-configurator" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-pack.git" path="addons.odoo16.0/OCA_product-pack" remote="OCA" groups="addons"/>
|
||||||
|
<project name="product-variant.git" path="addons.odoo16.0/OCA_product-variant" remote="OCA" groups="addons"/>
|
||||||
|
<project name="project-reporting.git" path="addons.odoo16.0/OCA_project-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="project-agile.git" path="addons.odoo16.0/OCA_project-agile" remote="OCA" groups="addons"/>
|
||||||
|
<project name="project.git" path="addons.odoo16.0/OCA_project" remote="OCA" groups="addons"/>
|
||||||
|
<project name="purchase-workflow.git" path="addons.odoo16.0/OCA_purchase-workflow" remote="OCA" groups="addons"/>
|
||||||
|
<project name="queue.git" path="addons.odoo16.0/OCA_queue" remote="OCA" groups="addons"/>
|
||||||
|
<project name="reporting-engine.git" path="addons.odoo16.0/OCA_reporting-engine" remote="OCA" groups="addons"/>
|
||||||
|
<project name="rma.git" path="addons.odoo16.0/OCA_rma" remote="OCA" groups="addons"/>
|
||||||
|
<project name="saas-addons.git" path="addons.odoo16.0/it-projects-llc_saas-addons" remote="it-projects-llc" groups="addons"/>
|
||||||
|
<project name="sale-reporting.git" path="addons.odoo16.0/OCA_sale-reporting" remote="OCA" groups="addons"/>
|
||||||
|
<project name="sale-workflow.git" path="addons.odoo16.0/OCA_sale-workflow" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-auth.git" path="addons.odoo16.0/OCA_server-auth" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-backend.git" path="addons.odoo16.0/OCA_server-backend" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-brand.git" path="addons.odoo16.0/OCA_server-brand" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-env.git" path="addons.odoo16.0/OCA_server-env" remote="OCA" groups="addons"/>
|
||||||
|
<project name="server-tools.git" path="addons.odoo16.0/OCA_server-tools" remote="ERPLibre" revision="ERPLibre/16.0" groups="addons"/>
|
||||||
|
<project name="server-ux.git" path="addons.odoo16.0/OCA_server-ux" remote="OCA" groups="addons"/>
|
||||||
|
<project name="social.git" path="addons.odoo16.0/OCA_social" remote="OCA" groups="addons"/>
|
||||||
|
<project name="survey.git" path="addons.odoo16.0/OCA_survey" remote="ERPLibre" revision="16.0_survey_odoo_debranding" groups="addons"/>
|
||||||
|
<project name="stock-logistics-warehouse.git" path="addons.odoo16.0/OCA_stock-logistics-warehouse" remote="OCA" groups="addons"/>
|
||||||
|
<project name="storage.git" path="addons.odoo16.0/OCA_storage" remote="OCA" groups="addons"/>
|
||||||
|
<project name="timesheet.git" path="addons.odoo16.0/OCA_timesheet" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-association.git" path="addons.odoo16.0/OCA_vertical-association" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-hotel.git" path="addons.odoo16.0/OCA_vertical-hotel" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-isp.git" path="addons.odoo16.0/OCA_vertical-isp" remote="OCA" groups="addons"/>
|
||||||
|
<project name="vertical-travel.git" path="addons.odoo16.0/OCA_vertical-travel" remote="OCA" groups="addons"/>
|
||||||
|
<project name="web.git" path="addons.odoo16.0/OCA_web" remote="OCA" groups="addons"/>
|
||||||
|
<project name="website-cms.git" path="addons.odoo16.0/OCA_website-cms" remote="OCA" groups="addons"/>
|
||||||
|
<project name="website.git" path="addons.odoo16.0/OCA_website" remote="OCA" groups="addons"/>
|
||||||
|
<project name="wms.git" path="addons.odoo16.0/OCA_wms" remote="OCA" groups="addons"/>
|
||||||
|
</manifest>
|
||||||
|
|
@ -1,167 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<manifest>
|
|
||||||
<remote name="CybroOdoo" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="MathBenTech" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="Numigi" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="OCA" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="OmniaGit" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="Smile-SA" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="TechnoLibre" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="ajepe" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="camptocamp" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="dhongu" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="it-projects-llc" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="itpp-labs" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="JayVora-SerpentCS" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="kinjal-sorathiya" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="muk-it" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="novacode-nl" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="obayit" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="odoo" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="odooaktiv" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="odoomates" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="openeducat" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="pledra" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
<remote name="tegin" fetch="https://github.com/ERPLibre/"/>
|
|
||||||
|
|
||||||
<default remote="ERPLibre" revision="12.0" sync-j="4" sync-c="true"/>
|
|
||||||
|
|
||||||
<project name="ERPLibre_image_db.git" path="image_db" remote="ERPLibre" clone-depth="1" groups="base"/>
|
|
||||||
<project name="OpenHRMS.git" path="addons/CybroOdoo_OpenHRMS" remote="CybroOdoo" revision="dev_12.0" groups="addons"/>
|
|
||||||
<project name="Property-Management_odoo.git" path="addons/kinjal-sorathiya_Property-Management_odoo" remote="kinjal-sorathiya" revision="master" groups="addons"/>
|
|
||||||
<project name="QuotationRevision.git" path="addons/MathBenTech_QuotationRevision" remote="MathBenTech" groups="addons"/>
|
|
||||||
<project name="access-addons.git" path="addons/itpp-labs_access-addons" remote="itpp-labs" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="account-analytic.git" path="addons/OCA_account-analytic" remote="OCA" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="account-budgeting.git" path="addons/OCA_account-budgeting" remote="OCA" groups="addons"/>
|
|
||||||
<project name="account-closing.git" path="addons/OCA_account-closing" remote="OCA" groups="addons"/>
|
|
||||||
<project name="account-consolidation.git" path="addons/OCA_account-consolidation" remote="OCA" groups="addons"/>
|
|
||||||
<project name="account-financial-reporting.git" path="addons/OCA_account-financial-reporting" remote="OCA" groups="addons"/>
|
|
||||||
<project name="account-financial-tools.git" path="addons/OCA_account-financial-tools" remote="OCA" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="account-fiscal-rule.git" path="addons/OCA_account-fiscal-rule" remote="OCA" groups="addons"/>
|
|
||||||
<project name="account-invoice-reporting.git" path="addons/OCA_account-invoice-reporting" remote="OCA" groups="addons"/>
|
|
||||||
<project name="account-invoicing.git" path="addons/OCA_account-invoicing" remote="OCA" groups="addons"/>
|
|
||||||
<project name="account-payment.git" path="addons/OCA_account-payment" remote="OCA" groups="addons"/>
|
|
||||||
<project name="account-reconcile.git" path="addons/OCA_account-reconcile" remote="OCA" groups="addons"/>
|
|
||||||
<project name="apps-store.git" path="addons/OCA_apps-store" remote="OCA" groups="addons"/>
|
|
||||||
<project name="bank-payment.git" path="addons/OCA_bank-payment" remote="OCA" groups="addons"/>
|
|
||||||
<project name="bank-statement-import.git" path="addons/OCA_bank-statement-import" remote="OCA" groups="addons"/>
|
|
||||||
<project name="brand.git" path="addons/OCA_brand" remote="OCA" groups="addons"/>
|
|
||||||
<project name="business-requirement.git" path="addons/OCA_business-requirement" remote="OCA" groups="addons"/>
|
|
||||||
<project name="commission.git" path="addons/OCA_commission" remote="OCA" groups="addons"/>
|
|
||||||
<project name="community-data-files.git" path="addons/OCA_community-data-files" remote="OCA" groups="addons"/>
|
|
||||||
<project name="connector-ecommerce.git" path="addons/OCA_connector-ecommerce" remote="OCA" groups="addons"/>
|
|
||||||
<project name="connector-interfaces.git" path="addons/OCA_connector-interfaces" remote="OCA" groups="addons"/>
|
|
||||||
<project name="connector-jira.git" path="addons/OCA_connector-jira" remote="OCA" groups="addons"/>
|
|
||||||
<project name="connector-telephony.git" path="addons/OCA_connector-telephony" remote="OCA" groups="addons"/>
|
|
||||||
<project name="connector.git" path="addons/OCA_connector" remote="OCA" groups="addons"/>
|
|
||||||
<project name="contract.git" path="addons/OCA_contract" remote="OCA" groups="addons,code_generator,image_db"/>
|
|
||||||
<project name="credit-control.git" path="addons/OCA_credit-control" remote="OCA" groups="addons"/>
|
|
||||||
<project name="crm.git" path="addons/OCA_crm" remote="OCA" groups="addons"/>
|
|
||||||
<project name="currency.git" path="addons/OCA_currency" remote="OCA" groups="addons"/>
|
|
||||||
<project name="data-protection.git" path="addons/OCA_data-protection" remote="OCA" groups="addons"/>
|
|
||||||
<project name="ddmrp.git" path="addons/OCA_ddmrp" remote="OCA" groups="addons"/>
|
|
||||||
<project name="delivery-carrier.git" path="addons/OCA_delivery-carrier" remote="OCA" groups="addons"/>
|
|
||||||
<project name="deltatech.git" path="addons/dhongu_deltatech" remote="dhongu" groups="addons"/>
|
|
||||||
<project name="design-themes.git" path="addons/odoo_design-themes" remote="odoo" groups="addons,code_generator,image_db"/>
|
|
||||||
<project name="development.git" path="addons/MathBenTech_development" remote="MathBenTech" groups="addons,base"/>
|
|
||||||
<project name="documentation-user.git" path="doc/odoo_documentation-user" remote="odoo" groups="odoo"/>
|
|
||||||
<project name="donation.git" path="addons/OCA_donation" remote="OCA" revision="12.0_module_donation_website" groups="addons"/>
|
|
||||||
<project name="e-commerce.git" path="addons/OCA_e-commerce" remote="OCA" groups="addons"/>
|
|
||||||
<project name="edi.git" path="addons/OCA_edi" remote="OCA" groups="addons"/>
|
|
||||||
<project name="erplibre-3D-printing-addons.git" path="addons/ERPLibre_erplibre-3D-printing-addons" remote="ERPLibre" groups="addons"/>
|
|
||||||
<project name="erplibre-family-management.git" path="addons/MathBenTech_erplibre-family-management" remote="MathBenTech" groups="addons,code_generator"/>
|
|
||||||
<project name="erplibre_addons.git" path="addons/ERPLibre_erplibre_addons" remote="ERPLibre" groups="addons,base"/>
|
|
||||||
<project name="erplibre_theme_addons.git" path="addons/ERPLibre_erplibre_theme_addons" remote="ERPLibre" groups="addons,code_generator,image_db"/>
|
|
||||||
<project name="event.git" path="addons/OCA_event" remote="OCA" groups="addons"/>
|
|
||||||
<project name="field-service.git" path="addons/OCA_field-service" remote="OCA" groups="addons"/>
|
|
||||||
<project name="fleet.git" path="addons/OCA_fleet" remote="OCA" groups="addons"/>
|
|
||||||
<project name="geospatial.git" path="addons/OCA_geospatial" remote="OCA" groups="addons,code_generator,image_db"/>
|
|
||||||
<project name="helpdesk.git" path="addons/OCA_helpdesk" remote="OCA" revision="12.0_dev" groups="addons,code_generator,image_db"/>
|
|
||||||
<project name="hr.git" path="addons/OCA_hr" remote="OCA" groups="addons"/>
|
|
||||||
<project name="interface-github.git" path="addons/OCA_interface-github" remote="OCA" groups="addons"/>
|
|
||||||
<project name="knowledge.git" path="addons/OCA_knowledge" remote="OCA" groups="addons"/>
|
|
||||||
<project name="l10n-canada.git" path="addons/OCA_l10n-canada" remote="OCA" groups="addons"/>
|
|
||||||
<project name="maintainer-tools.git" path="script/OCA_maintainer-tools" remote="OCA" revision="master" groups="odoo,code_generator"/>
|
|
||||||
<project name="maintenance.git" path="addons/OCA_maintenance" remote="OCA" groups="addons"/>
|
|
||||||
<project name="management-system.git" path="addons/OCA_management-system" remote="OCA" groups="addons"/>
|
|
||||||
<project name="manufacture.git" path="addons/OCA_manufacture" remote="OCA" groups="addons"/>
|
|
||||||
<project name="margin-analysis.git" path="addons/OCA_margin-analysis" remote="OCA" revision="12.0_sale_margin_editor" groups="addons"/>
|
|
||||||
<project name="medical-fhir.git" path="addons/tegin_medical-fhir" remote="tegin" groups="addons"/>
|
|
||||||
<project name="mis-builder.git" path="addons/OCA_mis-builder" remote="OCA" groups="addons"/>
|
|
||||||
<project name="muk_base.git" path="addons/muk-it_muk_base" remote="muk-it" revision="12.0_dev" groups="addons,base"/>
|
|
||||||
<project name="muk_dms.git" path="addons/muk-it_muk_dms" remote="muk-it" groups="addons"/>
|
|
||||||
<project name="muk_docs.git" path="addons/muk-it_muk_docs" remote="muk-it" groups="addons"/>
|
|
||||||
<project name="muk_misc.git" path="addons/muk-it_muk_misc" remote="muk-it" revision="12.0_dev" groups="addons,base"/>
|
|
||||||
<project name="muk_quality.git" path="addons/muk-it_muk_quality" remote="muk-it" groups="addons"/>
|
|
||||||
<project name="muk_web.git" path="addons/muk-it_muk_web" remote="muk-it" revision="12.0_dev" groups="addons,base,code_generator"/>
|
|
||||||
<project name="muk_website.git" path="addons/muk-it_muk_website" remote="muk-it" revision="12.0_remove_autoinstall" groups="addons,base"/>
|
|
||||||
<project name="multi-company.git" path="addons/OCA_multi-company" remote="OCA" groups="addons"/>
|
|
||||||
<project name="odoo-addons.git" path="addons/ajepe_odoo-addons" remote="ajepe" revision="12.0_dev" groups="addons,base"/>
|
|
||||||
<project name="odoo-base-addons.git" path="addons/Numigi_odoo-base-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-business-spending-management-quebec-canada.git" path="addons/MathBenTech_odoo-business-spending-management-quebec-canada" remote="MathBenTech" groups="addons,base"/>
|
|
||||||
<project name="odoo-cloud-platform.git" path="addons/camptocamp_odoo-cloud-platform" remote="camptocamp" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-code-generator-template.git" path="addons/TechnoLibre_odoo-code-generator-template" revision="12.0" remote="TechnoLibre" groups="addons,code_generator,image_db"/>
|
|
||||||
<project name="odoo-code-generator.git" path="addons/TechnoLibre_odoo-code-generator" remote="TechnoLibre" revision="12.0" groups="addons,code_generator,image_db"/>
|
|
||||||
<project name="odoo-development.git" path="doc/itpp-labs_odoo-development" remote="itpp-labs" revision="12.0_dev" groups="odoo"/>
|
|
||||||
<project name="odoo-entertainment-addons.git" path="addons/Numigi_odoo-entertainment-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-git-addons.git" path="addons/Numigi_odoo-git-addons" remote="Numigi" groups="addons"/>
|
|
||||||
<project name="odoo-formio.git" path="addons/novacode-nl_odoo-formio" remote="novacode-nl" groups="addons"/>
|
|
||||||
<project name="odoo-hr-addons.git" path="addons/Numigi_odoo-hr-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-module-migrator.git" path="script/OCA_odoo-module-migrator" remote="OCA" revision="master" groups="odoo"/>
|
|
||||||
<project name="odoo-partner-addons.git" path="addons/Numigi_odoo-partner-addons" remote="Numigi" revision="12.0_dev" groups="addons,base,image_db"/>
|
|
||||||
<project name="odoo-product-addons.git" path="addons/Numigi_odoo-product-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-port-docs.git" path="doc/itpp-labs_odoo-port-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
|
||||||
<project name="odoo-product-configurator.git" path="addons/pledra_odoo-product-configurator" remote="pledra" groups="addons"/>
|
|
||||||
<project name="odoo-project-addons.git" path="addons/Numigi_odoo-project-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-purchase-addons.git" path="addons/Numigi_odoo-purchase-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-stock-addons.git" path="addons/Numigi_odoo-stock-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-survey-addons.git" path="addons/Numigi_odoo-survey-addons" remote="Numigi" groups="addons"/>
|
|
||||||
<project name="odoo-test-docs.git" path="doc/itpp-labs_odoo-test-docs" remote="itpp-labs" revision="master" groups="odoo"/>
|
|
||||||
<project name="odoo-timesheet-addons.git" path="addons/Numigi_odoo-timesheet-addons" remote="Numigi" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="odoo-web-addons.git" path="addons/Numigi_odoo-web-addons" remote="Numigi" groups="addons,base"/>
|
|
||||||
<project name="odoo.git" path="odoo" remote="odoo" revision="ERPLibre/12.0" clone-depth="10" groups="odoo,base"/>
|
|
||||||
<project name="odoo_addons.git" path="addons/Smile-SA_odoo_addons" remote="Smile-SA" revision="12.0_remote_autoinstall" groups="addons"/>
|
|
||||||
<project name="odoo_dhtmlxgantt.git" path="addons/obayit_odoo_dhtmlxgantt" remote="obayit" groups="addons"/>
|
|
||||||
<project name="odooapps.git" path="addons/odoomates_odooapps" remote="odoomates" groups="addons"/>
|
|
||||||
<project name="odooplm.git" path="addons/OmniaGit_odooplm" remote="OmniaGit" groups="addons"/>
|
|
||||||
<project name="openeducat_erp.git" path="addons/openeducat_openeducat_erp" remote="openeducat" groups="addons"/>
|
|
||||||
<project name="operating-unit.git" path="addons/OCA_operating-unit" remote="OCA" groups="addons"/>
|
|
||||||
<project name="partner-contact.git" path="addons/OCA_partner-contact" remote="OCA" groups="addons"/>
|
|
||||||
<project name="pos-addons.git" path="addons/itpp-labs_pos-addons" remote="itpp-labs" groups="addons"/>
|
|
||||||
<project name="pos.git" path="addons/OCA_pos" remote="OCA" groups="addons"/>
|
|
||||||
<project name="product-attribute.git" path="addons/OCA_product-attribute" remote="OCA" groups="addons"/>
|
|
||||||
<project name="product-pack.git" path="addons/OCA_product-pack" remote="OCA" groups="addons"/>
|
|
||||||
<project name="product-variant.git" path="addons/OCA_product-variant" remote="OCA" groups="addons"/>
|
|
||||||
<project name="product_rating_app.git" path="addons/odooaktiv_product_rating_app" remote="odooaktiv" groups="addons"/>
|
|
||||||
<project name="project-reporting.git" path="addons/OCA_project-reporting" remote="OCA" groups="addons"/>
|
|
||||||
<project name="project.git" path="addons/OCA_project" remote="OCA" revision="12.0_fix_conflict_project_key" groups="addons"/>
|
|
||||||
<project name="purchase-workflow.git" path="addons/OCA_purchase-workflow" remote="OCA" groups="addons"/>
|
|
||||||
<project name="queue.git" path="addons/OCA_queue" remote="OCA" groups="addons"/>
|
|
||||||
<project name="reporting-engine.git" path="addons/OCA_reporting-engine" remote="OCA" groups="addons"/>
|
|
||||||
<project name="rma.git" path="addons/OCA_rma" remote="OCA" groups="addons"/>
|
|
||||||
<project name="saas-addons.git" path="addons/it-projects-llc_saas-addons" remote="it-projects-llc" groups="addons"/>
|
|
||||||
<project name="sale-reporting.git" path="addons/OCA_sale-reporting" remote="OCA" groups="addons"/>
|
|
||||||
<project name="sale-workflow.git" path="addons/OCA_sale-workflow" remote="OCA" revision="12.0_modules_sale_order_line" groups="addons"/>
|
|
||||||
<project name="scrummer.git" path="addons/MathBenTech_scrummer" remote="MathBenTech" revision="12.0_dev" groups="addons,base"/>
|
|
||||||
<project name="SerpentCS_Contributions.git" path="addons/JayVora-SerpentCS_SerpentCS_Contributions" remote="JayVora-SerpentCS" groups="addons,code_generator,base"/>
|
|
||||||
<project name="server-auth.git" path="addons/OCA_server-auth" remote="OCA" groups="addons,base,image_db"/>
|
|
||||||
<project name="server-backend.git" path="addons/OCA_server-backend" remote="OCA" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="server-brand.git" path="addons/OCA_server-brand" remote="OCA" groups="addons,base"/>
|
|
||||||
<project name="server-env.git" path="addons/OCA_server-env" remote="OCA" groups="addons"/>
|
|
||||||
<project name="server-tools.git" path="addons/OCA_server-tools" remote="OCA" revision="12.0_dev" groups="addons,base"/>
|
|
||||||
<project name="server-ux.git" path="addons/OCA_server-ux" remote="OCA" groups="addons,base"/>
|
|
||||||
<project name="social.git" path="addons/OCA_social" remote="OCA" groups="addons,base"/>
|
|
||||||
<project name="stock-logistics-warehouse.git" path="addons/OCA_stock-logistics-warehouse" remote="OCA" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="storage.git" path="addons/OCA_storage" remote="OCA" groups="addons"/>
|
|
||||||
<project name="timesheet.git" path="addons/OCA_timesheet" remote="OCA" revision="12.0_support_project_agile_timesheet" groups="addons"/>
|
|
||||||
<project name="vertical-association.git" path="addons/OCA_vertical-association" remote="OCA" groups="addons"/>
|
|
||||||
<project name="vertical-hotel.git" path="addons/OCA_vertical-hotel" remote="OCA" groups="addons"/>
|
|
||||||
<project name="vertical-isp.git" path="addons/OCA_vertical-isp" remote="OCA" groups="addons"/>
|
|
||||||
<project name="vertical-travel.git" path="addons/OCA_vertical-travel" remote="OCA" groups="addons"/>
|
|
||||||
<project name="web.git" path="addons/OCA_web" remote="OCA" revision="12.0_dev" groups="addons,base"/>
|
|
||||||
<project name="website-addons.git" path="addons/itpp-labs_website-addons" remote="itpp-labs" revision="12.0_dev" groups="addons"/>
|
|
||||||
<project name="website-cms.git" path="addons/OCA_website-cms" remote="OCA" groups="addons"/>
|
|
||||||
<project name="website.git" path="addons/OCA_website" remote="OCA" revision="12.0_dev" groups="addons,code_generator,image_db"/>
|
|
||||||
<project name="wms.git" path="addons/OCA_wms" remote="OCA" groups="addons"/>
|
|
||||||
</manifest>
|
|
||||||
|
|
@ -20,3 +20,4 @@ xlsxwriter
|
||||||
suds-jurko
|
suds-jurko
|
||||||
vatnumber
|
vatnumber
|
||||||
dns
|
dns
|
||||||
|
pypiwin32
|
||||||
25
requirement/ignore_requirements.odoo14.0_python3.8.10.txt
Normal file
25
requirement/ignore_requirements.odoo14.0_python3.8.10.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
chess
|
||||||
|
csv
|
||||||
|
dateutil
|
||||||
|
facturx
|
||||||
|
formiodata
|
||||||
|
git
|
||||||
|
keystoneclient
|
||||||
|
ldap
|
||||||
|
mercurial
|
||||||
|
MySQLdb
|
||||||
|
paho
|
||||||
|
pyrfc
|
||||||
|
python-alipay-sdk
|
||||||
|
pythonjsonlogger
|
||||||
|
stdnum
|
||||||
|
swiftclient
|
||||||
|
u2flib_server
|
||||||
|
voicent
|
||||||
|
xlsxwriter
|
||||||
|
suds-jurko
|
||||||
|
vatnumber
|
||||||
|
dns
|
||||||
|
dataclasses
|
||||||
|
extract_msg
|
||||||
|
pypiwin32
|
||||||
25
requirement/ignore_requirements.odoo14.0_python3.8.20.txt
Normal file
25
requirement/ignore_requirements.odoo14.0_python3.8.20.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
chess
|
||||||
|
csv
|
||||||
|
dateutil
|
||||||
|
facturx
|
||||||
|
formiodata
|
||||||
|
git
|
||||||
|
keystoneclient
|
||||||
|
ldap
|
||||||
|
mercurial
|
||||||
|
MySQLdb
|
||||||
|
paho
|
||||||
|
pyrfc
|
||||||
|
python-alipay-sdk
|
||||||
|
pythonjsonlogger
|
||||||
|
stdnum
|
||||||
|
swiftclient
|
||||||
|
u2flib_server
|
||||||
|
voicent
|
||||||
|
xlsxwriter
|
||||||
|
suds-jurko
|
||||||
|
vatnumber
|
||||||
|
dns
|
||||||
|
dataclasses
|
||||||
|
extract_msg
|
||||||
|
pypiwin32
|
||||||
16
requirement/ignore_requirements.odoo16.0_python3.10.14.txt
Normal file
16
requirement/ignore_requirements.odoo16.0_python3.10.14.txt
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
dateutil
|
||||||
|
keystoneclient
|
||||||
|
ldap
|
||||||
|
swiftclient
|
||||||
|
cv2
|
||||||
|
speech_recognition
|
||||||
|
PIL
|
||||||
|
en_core_web_sm
|
||||||
|
googletrans
|
||||||
|
infobip-api-python-sdk
|
||||||
|
pygount
|
||||||
|
dataclasses
|
||||||
|
|
||||||
|
pypiwin32
|
||||||
|
|
||||||
|
cadquery
|
||||||
File diff suppressed because it is too large
Load diff
6374
requirement/poetry.odoo14.0_python3.8.10.lock
Normal file
6374
requirement/poetry.odoo14.0_python3.8.10.lock
Normal file
File diff suppressed because it is too large
Load diff
6567
requirement/poetry.odoo14.0_python3.8.20.lock
Normal file
6567
requirement/poetry.odoo14.0_python3.8.20.lock
Normal file
File diff suppressed because it is too large
Load diff
7901
requirement/poetry.odoo16.0_python3.10.14.lock
Normal file
7901
requirement/poetry.odoo16.0_python3.10.14.lock
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,5 @@
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = [ "poetry>=1.1.14",]
|
requires = [ "poetry>=1.5.0",]
|
||||||
build-backend = "poetry.masonry.api"
|
build-backend = "poetry.masonry.api"
|
||||||
|
|
||||||
[tool.isort]
|
[tool.isort]
|
||||||
|
|
@ -36,27 +36,28 @@ cachetools = ">=2.0.1"
|
||||||
cerberus = "^1.3.5"
|
cerberus = "^1.3.5"
|
||||||
chardet = "5.0.0"
|
chardet = "5.0.0"
|
||||||
click = "^8.1.7"
|
click = "^8.1.7"
|
||||||
cloudflare = "^3.0.1"
|
cloudflare = "3.0.1"
|
||||||
code-writer = "1.1.1"
|
code-writer = "1.1.1"
|
||||||
colorama = "^0.4.6"
|
colorama = "^0.4.6"
|
||||||
configparser = "5.0.2"
|
configparser = "5.0.2"
|
||||||
coverage = "7.2.7"
|
coverage = "7.2.7"
|
||||||
cryptography = "39.0.1"
|
cryptography = "39.0.1"
|
||||||
css-html-prettify = "^2.5.5"
|
css-html-prettify = "^2.5.5"
|
||||||
cython = "^3.0.10"
|
cython = "3.0.10"
|
||||||
ddt = "1.2.0"
|
ddt = "1.2.0"
|
||||||
decorator = "4.0.10"
|
decorator = "4.0.10"
|
||||||
dnspython = "2.3.0"
|
dnspython = "2.3.0"
|
||||||
docutils = "0.17.1"
|
docutils = "0.17.1"
|
||||||
ebaysdk = "2.1.5"
|
ebaysdk = "2.1.5"
|
||||||
email-validator = "2.0.0"
|
email-validator = "2.0.0"
|
||||||
emoji = "^2.12.1"
|
emoji = "^2.14.0"
|
||||||
extract-msg = "0.36.1"
|
extract-msg = "0.36.1"
|
||||||
factur-x = "^3.1"
|
factur-x = "^3.1"
|
||||||
feedparser = "6.0.10"
|
feedparser = "6.0.10"
|
||||||
flake8 = "<6.0.0"
|
flake8 = "<6.0.0"
|
||||||
formio-data = "^2.0.3"
|
formio-data = "^2.1.0"
|
||||||
freezegun = "1.2.2"
|
freezegun = "1.2.2"
|
||||||
|
furo = "2021.2.21b25"
|
||||||
future = "0.18.3"
|
future = "0.18.3"
|
||||||
geojson = "<3.0.0"
|
geojson = "<3.0.0"
|
||||||
gevent = "1.5.0"
|
gevent = "1.5.0"
|
||||||
|
|
@ -90,18 +91,19 @@ oauthlib = "2.1.0"
|
||||||
oca-decorators = "^0.0.1"
|
oca-decorators = "^0.0.1"
|
||||||
odoorpc = "^0.10.1"
|
odoorpc = "^0.10.1"
|
||||||
ofxparse = "0.16"
|
ofxparse = "0.16"
|
||||||
|
olefile = "0.47"
|
||||||
openpyxl = "3.1.3"
|
openpyxl = "3.1.3"
|
||||||
openupgradelib = "^3.6.1"
|
openupgradelib = "^3.7.1"
|
||||||
orjson = "3.6.0"
|
orjson = "3.6.0"
|
||||||
ovh = "^1.1.2"
|
ovh = "1.1.2"
|
||||||
paho-mqtt = "^2.1.0"
|
paho-mqtt = "^2.1.0"
|
||||||
pandas = "1.3.5"
|
pandas = "1.3.5"
|
||||||
paramiko = "^3.4.0"
|
paramiko = "^3.5.0"
|
||||||
passlib = "1.6.5"
|
passlib = "1.6.5"
|
||||||
pdf2image = "^1.17.0"
|
pdf2image = "^1.17.0"
|
||||||
pdfminer = "^20191125"
|
pdfminer = "^20191125"
|
||||||
pexpect = "^4.9.0"
|
pexpect = "^4.9.0"
|
||||||
phonenumbers = "^8.13.40"
|
phonenumbers = "^8.13.47"
|
||||||
pillow = "9.3.0"
|
pillow = "9.3.0"
|
||||||
plotly = "4.1.0"
|
plotly = "4.1.0"
|
||||||
portalocker = "1.7.1"
|
portalocker = "1.7.1"
|
||||||
|
|
@ -122,7 +124,7 @@ pyjsparser = "^2.7.1"
|
||||||
pyjwt = "2.5.0"
|
pyjwt = "2.5.0"
|
||||||
pyldap = "2.4.28"
|
pyldap = "2.4.28"
|
||||||
pylint-odoo = "8.0.19"
|
pylint-odoo = "8.0.19"
|
||||||
pymssql = "^2.3.0"
|
pymssql = "2.3.0"
|
||||||
pymysql = "^1.1.1"
|
pymysql = "^1.1.1"
|
||||||
pyotp = "^2.9.0"
|
pyotp = "^2.9.0"
|
||||||
pyparsing = "2.1.10"
|
pyparsing = "2.1.10"
|
||||||
|
|
@ -138,7 +140,7 @@ python-jose = "^3.3.0"
|
||||||
python-json-logger = "0.1.5"
|
python-json-logger = "0.1.5"
|
||||||
python-keystoneclient = "3.22.0"
|
python-keystoneclient = "3.22.0"
|
||||||
python-ldap = "^3.4.4"
|
python-ldap = "^3.4.4"
|
||||||
python-pptx = "^0.6.23"
|
python-pptx = "0.6.23"
|
||||||
python-randomword-fr = "^1.0.0"
|
python-randomword-fr = "^1.0.0"
|
||||||
python-slugify = ">=3.0.2"
|
python-slugify = ">=3.0.2"
|
||||||
python-stdnum = "^1.20"
|
python-stdnum = "^1.20"
|
||||||
|
|
@ -158,7 +160,8 @@ requests-oauthlib = "1.1.0"
|
||||||
requests-toolbelt = "0.9.1"
|
requests-toolbelt = "0.9.1"
|
||||||
responses = "0.23.1"
|
responses = "0.23.1"
|
||||||
retrying = "^1.3.4"
|
retrying = "^1.3.4"
|
||||||
sentry-sdk = "^2.8.0"
|
selenium = "4.11.2"
|
||||||
|
sentry-sdk = "^2.17.0"
|
||||||
serial = "^0.0.97"
|
serial = "^0.0.97"
|
||||||
setuptools = "65.5.1"
|
setuptools = "65.5.1"
|
||||||
shapely = "1.8.5"
|
shapely = "1.8.5"
|
||||||
|
|
@ -168,12 +171,12 @@ soappy = "^0.12.22"
|
||||||
sphinx = "3.0"
|
sphinx = "3.0"
|
||||||
sphinx-intl = "^2.2.0"
|
sphinx-intl = "^2.2.0"
|
||||||
sphinx-rtd-theme = "1.2.2"
|
sphinx-rtd-theme = "1.2.2"
|
||||||
sqlalchemy = "^2.0.31"
|
sqlalchemy = "^2.0.36"
|
||||||
sqlparse = "0.4.4"
|
sqlparse = "0.4.4"
|
||||||
statsd = "3.2.1"
|
statsd = "3.2.1"
|
||||||
toml = "^0.10.2"
|
toml = "^0.10.2"
|
||||||
tornado = "6.1"
|
tornado = "6.1"
|
||||||
tqdm = "^4.66.4"
|
tqdm = "^4.66.5"
|
||||||
unidecode = "1.0.22"
|
unidecode = "1.0.22"
|
||||||
unidiff = "^0.7.5"
|
unidiff = "^0.7.5"
|
||||||
urllib3 = ">=1.26.13"
|
urllib3 = ">=1.26.13"
|
||||||
|
|
@ -193,8 +196,8 @@ xlrd = "1.0.0"
|
||||||
xlsxwriter = "0.9.3"
|
xlsxwriter = "0.9.3"
|
||||||
xlwt = "1.3"
|
xlwt = "1.3"
|
||||||
xmlformatter = "^0.2.6"
|
xmlformatter = "^0.2.6"
|
||||||
xmltodict = "^0.13.0"
|
xmltodict = "^0.14.2"
|
||||||
zeep = "^4.2.1"
|
zeep = "4.2.1"
|
||||||
zipp = ">=3.6.0"
|
zipp = ">=3.6.0"
|
||||||
zxcvbn = "^4.4.28"
|
zxcvbn = "^4.4.28"
|
||||||
|
|
||||||
197
requirement/pyproject.odoo14.0_python3.8.10.toml
Normal file
197
requirement/pyproject.odoo14.0_python3.8.10.toml
Normal file
|
|
@ -0,0 +1,197 @@
|
||||||
|
[build-system]
|
||||||
|
requires = [ "poetry>=1.5.0",]
|
||||||
|
build-backend = "poetry.masonry.api"
|
||||||
|
|
||||||
|
[tool.isort]
|
||||||
|
profile = "black"
|
||||||
|
py_version = 37
|
||||||
|
|
||||||
|
[tool.black]
|
||||||
|
line-length = 79
|
||||||
|
target-version = [ "py37",]
|
||||||
|
|
||||||
|
[tool.poetry]
|
||||||
|
name = "ERPLibre"
|
||||||
|
version = "1.5.0"
|
||||||
|
description = "Easy way to configure Odoo community"
|
||||||
|
license = "AGPL-3.0-or-later"
|
||||||
|
authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.8.10"
|
||||||
|
acme = "^2.11.0"
|
||||||
|
agithub = "^2.2.2"
|
||||||
|
aiohttp = "^3.10.5"
|
||||||
|
aioshutil = "<1.2"
|
||||||
|
argcomplete = "^3.5.0"
|
||||||
|
astor = "0.8.1"
|
||||||
|
avalara = "^24.8.2"
|
||||||
|
azure-identity = "1.13.0"
|
||||||
|
azure-storage-blob = "12.16.0"
|
||||||
|
babel = "2.9.1"
|
||||||
|
beautifulsoup4 = "^4.12.3"
|
||||||
|
bokeh = "2.3.1"
|
||||||
|
boto3 = ">=1.20.41"
|
||||||
|
cachetools = "^5.5.0"
|
||||||
|
chardet = "5.0.0"
|
||||||
|
chromedriver-binary = "^130.0.6710.0.0"
|
||||||
|
click = "^8.1.7"
|
||||||
|
cloudflare = "2.20.0"
|
||||||
|
colorama = "^0.4.6"
|
||||||
|
contextvars = "^2.4"
|
||||||
|
coverage = "^7.6.1"
|
||||||
|
cryptography = "39.0.1"
|
||||||
|
css-html-prettify = "^2.5.5"
|
||||||
|
cython = "^3.0.11"
|
||||||
|
dateparser = "^1.2.0"
|
||||||
|
ddt = "1.2.1"
|
||||||
|
decorator = "4.3.0"
|
||||||
|
dicttoxml = "^1.7.16"
|
||||||
|
dnspython = "^2.6.1"
|
||||||
|
docutils = "0.16.0"
|
||||||
|
ebaysdk = "2.1.5"
|
||||||
|
email-validator = "^2.2.0"
|
||||||
|
emoji = "^2.12.1"
|
||||||
|
endesive = "^2.17.2"
|
||||||
|
extract-msg = "0.36.1"
|
||||||
|
factur-x = "^3.1"
|
||||||
|
fdfgen = "^0.16.1"
|
||||||
|
feedparser = "6.0.10"
|
||||||
|
flake8 = "<6.0.0"
|
||||||
|
formio-data = "^2.1.0"
|
||||||
|
freezegun = "0.3.15"
|
||||||
|
future = "0.18.3"
|
||||||
|
geojson = "<3.0.0"
|
||||||
|
gevent = "20.9.0"
|
||||||
|
gitpython = "3.1.30"
|
||||||
|
giturlparse = "^0.12.0"
|
||||||
|
google-api-python-client = "^2.145.0"
|
||||||
|
google-auth-httplib2 = "^0.2.0"
|
||||||
|
google-auth-oauthlib = "^1.2.1"
|
||||||
|
greenlet = "0.4.17"
|
||||||
|
gst = "^0.1.0"
|
||||||
|
html2text = "^2024.2.26"
|
||||||
|
idna = "2.6"
|
||||||
|
img2pdf = "^0.5.1"
|
||||||
|
invoice2data = "^0.4.5"
|
||||||
|
iscompatible = "^0.1.1"
|
||||||
|
isort = "<5.12.0"
|
||||||
|
jinja2 = "2.11.3"
|
||||||
|
josepy = "^1.14.0"
|
||||||
|
keystoneauth1 = "3.14.0"
|
||||||
|
libsass = "0.17.0"
|
||||||
|
lxml = "4.9.1"
|
||||||
|
mako = "1.2.2"
|
||||||
|
markupsafe = "1.1.0"
|
||||||
|
mmg = "1.0.3"
|
||||||
|
mpld3 = "^0.5.10"
|
||||||
|
mysqlclient = "2.1.1"
|
||||||
|
num2words = "0.5.6"
|
||||||
|
numpy = "1.21.1"
|
||||||
|
numpy-financial = "<=1.0.0"
|
||||||
|
odoo-test-helper = "^2.1.1"
|
||||||
|
odoorpc = "^0.10.1"
|
||||||
|
ofxparse = "0.19"
|
||||||
|
openpyxl = "^3.1.5"
|
||||||
|
openupgradelib = "^3.7.0"
|
||||||
|
ovh = "1.1.2"
|
||||||
|
packaging = "21.3"
|
||||||
|
pandas = "1.3.5"
|
||||||
|
paramiko = "^3.4.1"
|
||||||
|
passlib = "1.7.1"
|
||||||
|
pathspec = "0.12.1"
|
||||||
|
pdf2image = "^1.17.0"
|
||||||
|
phonenumbers = "^8.13.45"
|
||||||
|
pillow = "9.3.0"
|
||||||
|
plotly = "5.4.0"
|
||||||
|
polib = "1.1.0"
|
||||||
|
premailer = "^3.10.0"
|
||||||
|
prometheus-client = "0.11.0"
|
||||||
|
psutil = "5.9.0"
|
||||||
|
psycopg2 = "2.9.5"
|
||||||
|
py-asterisk = "^0.5.18"
|
||||||
|
py3o-formats = "^0.3"
|
||||||
|
py3o-template = "^0.10.0"
|
||||||
|
pycountry = "^24.6.1"
|
||||||
|
pydot = "1.4.1"
|
||||||
|
pyftpdlib = "^2.0.0"
|
||||||
|
pygithub = "2.3.0"
|
||||||
|
pygments = "2.7.4"
|
||||||
|
pygobject = "3.44.1"
|
||||||
|
pygount = "1.5.1"
|
||||||
|
pyjwt = "2.5.0"
|
||||||
|
pyopenssl = "21.0.0"
|
||||||
|
pypdf = ">=3.1.0"
|
||||||
|
pypdf2 = "1.27.9"
|
||||||
|
pyproj = "3.2.1"
|
||||||
|
pysaml2 = "7.2.1"
|
||||||
|
pyserial = "3.4"
|
||||||
|
pysftp = "^0.2.9"
|
||||||
|
python-chess = "^1.999"
|
||||||
|
python-dateutil = "2.7.3"
|
||||||
|
python-git = "^2018.2.1"
|
||||||
|
python-jose = "^3.3.0"
|
||||||
|
python-json-logger = "0.1.5"
|
||||||
|
python-keystoneclient = "3.22.0"
|
||||||
|
python-ldap = "3.1.0"
|
||||||
|
python-magic = "^0.4.27"
|
||||||
|
python-randomword-fr = "^1.0.0"
|
||||||
|
python-slugify = "^8.0.4"
|
||||||
|
python-stdnum = "1.8"
|
||||||
|
python-swiftclient = "3.9.0"
|
||||||
|
python-u2flib-server = "^5.0.1"
|
||||||
|
pytz = ">=2022.7"
|
||||||
|
pyusb = "1.0.2"
|
||||||
|
pyyaml = "6.0"
|
||||||
|
pyzbar = "^0.1.9"
|
||||||
|
qrcode = "6.1"
|
||||||
|
redis = "3.2.1"
|
||||||
|
regex = "2022.3.2"
|
||||||
|
reportlab = "3.6.5"
|
||||||
|
requests = "2.28.1"
|
||||||
|
retrying = "^1.3.4"
|
||||||
|
roulier = "^1.1.1"
|
||||||
|
selenium = "^4.24.0"
|
||||||
|
sentry-sdk = "<=1.9.0"
|
||||||
|
setuptools = "65.5.1"
|
||||||
|
shapely = "1.8.5"
|
||||||
|
simplejson = "3.16.0"
|
||||||
|
sphinx = "4.3.2"
|
||||||
|
sphinx-intl = "^2.2.0"
|
||||||
|
sphinx-rtd-theme = "1.3.0"
|
||||||
|
statsd = "3.2.1"
|
||||||
|
toml = "^0.10.2"
|
||||||
|
tqdm = "^4.66.5"
|
||||||
|
unicodecsv = "^0.14.1"
|
||||||
|
unidecode = "1.0.23"
|
||||||
|
unidiff = "^0.7.5"
|
||||||
|
urllib3 = ">=1.26.13"
|
||||||
|
uvloop = "^0.20.0"
|
||||||
|
validators = "0.24.0"
|
||||||
|
vobject = "0.9.6.1"
|
||||||
|
voicent-python = "^1.0"
|
||||||
|
webcolors = "^24.8.0"
|
||||||
|
websocket-client = "^1.8.0"
|
||||||
|
werkzeug = "0.16.1"
|
||||||
|
wheel = "^0.44.0"
|
||||||
|
win-unicode-console = "^0.5"
|
||||||
|
xlrd = "1.2.0"
|
||||||
|
xlsxwriter = "1.1.2"
|
||||||
|
xlwt = "1.3"
|
||||||
|
xmlformatter = "^0.2.6"
|
||||||
|
xmlrunner = "^1.7.7"
|
||||||
|
xmlschema = "^3.4.0"
|
||||||
|
xmltodict = "^0.13.0"
|
||||||
|
zeep = "3.2.0"
|
||||||
|
zipp = ">=3.6.0"
|
||||||
|
zxcvbn = "^4.4.28"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
websocket_client = "^1.1.0"
|
||||||
|
|
||||||
|
[tool.poetry.dependencies.black]
|
||||||
|
git = "https://github.com/psf/black.git"
|
||||||
|
rev = "22.3.0"
|
||||||
|
|
||||||
|
[tool.poetry.dependencies.pylint-odoo]
|
||||||
|
git = "https://github.com/oca/pylint-odoo.git"
|
||||||
197
requirement/pyproject.odoo14.0_python3.8.20.toml
Normal file
197
requirement/pyproject.odoo14.0_python3.8.20.toml
Normal file
|
|
@ -0,0 +1,197 @@
|
||||||
|
[build-system]
|
||||||
|
requires = [ "poetry>=1.5.0",]
|
||||||
|
build-backend = "poetry.masonry.api"
|
||||||
|
|
||||||
|
[tool.isort]
|
||||||
|
profile = "black"
|
||||||
|
py_version = 37
|
||||||
|
|
||||||
|
[tool.black]
|
||||||
|
line-length = 79
|
||||||
|
target-version = [ "py37",]
|
||||||
|
|
||||||
|
[tool.poetry]
|
||||||
|
name = "ERPLibre"
|
||||||
|
version = "1.5.0"
|
||||||
|
description = "Easy way to configure Odoo community"
|
||||||
|
license = "AGPL-3.0-or-later"
|
||||||
|
authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.8.20"
|
||||||
|
acme = "^2.11.0"
|
||||||
|
agithub = "^2.2.2"
|
||||||
|
aiohttp = "^3.10.10"
|
||||||
|
aioshutil = "<1.2"
|
||||||
|
argcomplete = "^3.5.1"
|
||||||
|
astor = "0.8.1"
|
||||||
|
avalara = "^24.10.0"
|
||||||
|
azure-identity = "1.13.0"
|
||||||
|
azure-storage-blob = "12.16.0"
|
||||||
|
babel = "2.9.1"
|
||||||
|
beautifulsoup4 = "^4.12.3"
|
||||||
|
bokeh = "2.3.1"
|
||||||
|
boto3 = ">=1.20.41"
|
||||||
|
cachetools = "^5.5.0"
|
||||||
|
chardet = "5.0.0"
|
||||||
|
chromedriver-binary = "^132.0.6786.0.0"
|
||||||
|
click = "^8.1.7"
|
||||||
|
cloudflare = "2.20.0"
|
||||||
|
colorama = "^0.4.6"
|
||||||
|
contextvars = "^2.4"
|
||||||
|
coverage = "7.6.1"
|
||||||
|
cryptography = "39.0.1"
|
||||||
|
css-html-prettify = "^2.5.5"
|
||||||
|
cython = "^3.0.11"
|
||||||
|
dateparser = "^1.2.0"
|
||||||
|
ddt = "1.2.1"
|
||||||
|
decorator = "4.3.0"
|
||||||
|
dicttoxml = "^1.7.16"
|
||||||
|
dnspython = "2.6.1"
|
||||||
|
docutils = "0.16.0"
|
||||||
|
ebaysdk = "2.1.5"
|
||||||
|
email-validator = "^2.2.0"
|
||||||
|
emoji = "^2.14.0"
|
||||||
|
endesive = "^2.17.3"
|
||||||
|
extract-msg = "0.36.1"
|
||||||
|
factur-x = "^3.1"
|
||||||
|
fdfgen = "^0.16.1"
|
||||||
|
feedparser = "6.0.10"
|
||||||
|
flake8 = "<6.0.0"
|
||||||
|
formio-data = "^2.1.0"
|
||||||
|
freezegun = "0.3.15"
|
||||||
|
future = "0.18.3"
|
||||||
|
geojson = "<3.0.0"
|
||||||
|
gevent = "20.9.0"
|
||||||
|
gitpython = "3.1.30"
|
||||||
|
giturlparse = "^0.12.0"
|
||||||
|
google-api-python-client = "^2.149.0"
|
||||||
|
google-auth-httplib2 = "^0.2.0"
|
||||||
|
google-auth-oauthlib = "^1.2.1"
|
||||||
|
greenlet = "0.4.17"
|
||||||
|
gst = "^0.1.0"
|
||||||
|
html2text = "^2024.2.26"
|
||||||
|
idna = "2.6"
|
||||||
|
img2pdf = "^0.5.1"
|
||||||
|
invoice2data = "^0.4.5"
|
||||||
|
iscompatible = "^0.1.1"
|
||||||
|
isort = "<5.12.0"
|
||||||
|
jinja2 = "2.11.3"
|
||||||
|
josepy = "^1.14.0"
|
||||||
|
keystoneauth1 = "3.14.0"
|
||||||
|
libsass = "0.17.0"
|
||||||
|
lxml = "4.9.1"
|
||||||
|
mako = "1.2.2"
|
||||||
|
markupsafe = "1.1.0"
|
||||||
|
mmg = "1.0.3"
|
||||||
|
mpld3 = "^0.5.10"
|
||||||
|
mysqlclient = "2.1.1"
|
||||||
|
num2words = "0.5.6"
|
||||||
|
numpy = "1.21.1"
|
||||||
|
numpy-financial = "<=1.0.0"
|
||||||
|
odoo-test-helper = "^2.1.1"
|
||||||
|
odoorpc = "^0.10.1"
|
||||||
|
ofxparse = "0.19"
|
||||||
|
openpyxl = "^3.1.5"
|
||||||
|
openupgradelib = "^3.7.1"
|
||||||
|
ovh = "1.1.2"
|
||||||
|
packaging = "21.3"
|
||||||
|
pandas = "1.3.5"
|
||||||
|
paramiko = "^3.5.0"
|
||||||
|
passlib = "1.7.1"
|
||||||
|
pathspec = "0.12.1"
|
||||||
|
pdf2image = "^1.17.0"
|
||||||
|
phonenumbers = "^8.13.47"
|
||||||
|
pillow = "9.3.0"
|
||||||
|
plotly = "5.4.0"
|
||||||
|
polib = "1.1.0"
|
||||||
|
premailer = "^3.10.0"
|
||||||
|
prometheus-client = "0.11.0"
|
||||||
|
psutil = "5.9.0"
|
||||||
|
psycopg2 = "2.9.5"
|
||||||
|
py-asterisk = "^0.5.18"
|
||||||
|
py3o-formats = "^0.3"
|
||||||
|
py3o-template = "^0.10.0"
|
||||||
|
pycountry = "^24.6.1"
|
||||||
|
pydot = "1.4.1"
|
||||||
|
pyftpdlib = "^2.0.0"
|
||||||
|
pygithub = "2.3.0"
|
||||||
|
pygments = "2.7.4"
|
||||||
|
pygobject = "3.44.1"
|
||||||
|
pygount = "1.5.1"
|
||||||
|
pyjwt = "2.5.0"
|
||||||
|
pyopenssl = "21.0.0"
|
||||||
|
pypdf = ">=3.1.0,<5.0"
|
||||||
|
pypdf2 = "1.27.9"
|
||||||
|
pyproj = "3.2.1"
|
||||||
|
pysaml2 = "7.2.1"
|
||||||
|
pyserial = "3.4"
|
||||||
|
pysftp = "^0.2.9"
|
||||||
|
python-chess = "^1.999"
|
||||||
|
python-dateutil = "2.7.3"
|
||||||
|
python-git = "^2018.2.1"
|
||||||
|
python-jose = "^3.3.0"
|
||||||
|
python-json-logger = "0.1.5"
|
||||||
|
python-keystoneclient = "3.22.0"
|
||||||
|
python-ldap = "3.1.0"
|
||||||
|
python-magic = "^0.4.27"
|
||||||
|
python-randomword-fr = "^1.0.0"
|
||||||
|
python-slugify = "^8.0.4"
|
||||||
|
python-stdnum = "1.8"
|
||||||
|
python-swiftclient = "3.9.0"
|
||||||
|
python-u2flib-server = "^5.0.1"
|
||||||
|
pytz = ">=2022.7"
|
||||||
|
pyusb = "1.0.2"
|
||||||
|
pyyaml = "6.0"
|
||||||
|
pyzbar = "^0.1.9"
|
||||||
|
qrcode = "6.1"
|
||||||
|
redis = "3.2.1"
|
||||||
|
regex = "2022.3.2"
|
||||||
|
reportlab = "3.6.5"
|
||||||
|
requests = "2.28.1"
|
||||||
|
retrying = "^1.3.4"
|
||||||
|
roulier = "^1.1.1"
|
||||||
|
selenium = "^4.25.0"
|
||||||
|
sentry-sdk = "<=1.9.0"
|
||||||
|
setuptools = "65.5.1"
|
||||||
|
shapely = "1.8.5"
|
||||||
|
simplejson = "3.16.0"
|
||||||
|
sphinx = "4.3.2"
|
||||||
|
sphinx-intl = "^2.2.0"
|
||||||
|
sphinx-rtd-theme = "1.3.0"
|
||||||
|
statsd = "3.2.1"
|
||||||
|
toml = "^0.10.2"
|
||||||
|
tqdm = "^4.66.5"
|
||||||
|
unicodecsv = "^0.14.1"
|
||||||
|
unidecode = "1.0.23"
|
||||||
|
unidiff = "^0.7.5"
|
||||||
|
urllib3 = ">=1.26.13"
|
||||||
|
uvloop = "^0.21.0"
|
||||||
|
validators = "0.24.0"
|
||||||
|
vobject = "0.9.6.1"
|
||||||
|
voicent-python = "^1.0"
|
||||||
|
webcolors = "^24.8.0"
|
||||||
|
websocket-client = "^1.8.0"
|
||||||
|
werkzeug = "0.16.1"
|
||||||
|
wheel = "^0.44.0"
|
||||||
|
win-unicode-console = "^0.5"
|
||||||
|
xlrd = "1.1.0"
|
||||||
|
xlsxwriter = "1.1.2"
|
||||||
|
xlwt = "1.3"
|
||||||
|
xmlformatter = "^0.2.6"
|
||||||
|
xmlrunner = "^1.7.7"
|
||||||
|
xmlschema = "^3.4.2"
|
||||||
|
xmltodict = "^0.14.2"
|
||||||
|
zeep = "3.2.0"
|
||||||
|
zipp = ">=3.6.0"
|
||||||
|
zxcvbn = "^4.4.28"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
websocket_client = "^1.1.0"
|
||||||
|
|
||||||
|
[tool.poetry.dependencies.black]
|
||||||
|
git = "https://github.com/psf/black.git"
|
||||||
|
rev = "22.3.0"
|
||||||
|
|
||||||
|
[tool.poetry.dependencies.pylint-odoo]
|
||||||
|
git = "https://github.com/oca/pylint-odoo.git"
|
||||||
205
requirement/pyproject.odoo16.0_python3.10.14.toml
Normal file
205
requirement/pyproject.odoo16.0_python3.10.14.toml
Normal file
|
|
@ -0,0 +1,205 @@
|
||||||
|
[build-system]
|
||||||
|
requires = [ "poetry>=1.8.3",]
|
||||||
|
build-backend = "poetry.masonry.api"
|
||||||
|
|
||||||
|
[tool.isort]
|
||||||
|
profile = "black"
|
||||||
|
py_version = 37
|
||||||
|
|
||||||
|
[tool.black]
|
||||||
|
line-length = 79
|
||||||
|
target-version = [ "py37",]
|
||||||
|
|
||||||
|
[tool.poetry]
|
||||||
|
name = "ERPLibre"
|
||||||
|
version = "1.5.0"
|
||||||
|
description = "Easy way to configure Odoo community"
|
||||||
|
license = "AGPL-3.0-or-later"
|
||||||
|
authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.10.14"
|
||||||
|
agithub = "^2.2.2"
|
||||||
|
argcomplete = "^3.5.1"
|
||||||
|
asana = "^5.0.10"
|
||||||
|
asn1crypto = "^1.5.1"
|
||||||
|
astor = "^0.8.1"
|
||||||
|
avalara = "^24.10.0"
|
||||||
|
azure-identity = "1.13.0"
|
||||||
|
azure-storage-blob = "12.16.0"
|
||||||
|
babel = "2.9.1"
|
||||||
|
base64io = "^1.0.3"
|
||||||
|
beautifulsoup4 = "^4.12.3"
|
||||||
|
bokeh = "3.1.1"
|
||||||
|
boto3 = "1.26.7"
|
||||||
|
bs4 = "^0.0.2"
|
||||||
|
cachetools = "^5.5.0"
|
||||||
|
cairosvg = "^2.7.1"
|
||||||
|
chardet = "4.0.0"
|
||||||
|
clicksend-client = "^5.0.78"
|
||||||
|
cloudflare = "^3.1.0"
|
||||||
|
cmake = "^3.30.5"
|
||||||
|
colorama = "^0.4.6"
|
||||||
|
countryinfo = "^0.1.2"
|
||||||
|
cryptography = "3.4.8"
|
||||||
|
cybersource-rest-client-python = "0.0.56"
|
||||||
|
cython = "^3.0.11"
|
||||||
|
decorator = "4.4.2"
|
||||||
|
dlib = "^19.24.6"
|
||||||
|
docutils = "0.16"
|
||||||
|
dotty-dict = "^1.3.1"
|
||||||
|
dropbox = "^12.0.2"
|
||||||
|
ebaysdk = "2.1.5"
|
||||||
|
email-validator = "^2.2.0"
|
||||||
|
endesive = "^2.17.3"
|
||||||
|
extract-msg = "^0.51.1"
|
||||||
|
ezdxf = "^1.3.4"
|
||||||
|
face-recognition = "^1.3.0"
|
||||||
|
factur-x = "^3.1"
|
||||||
|
filetype = "^1.2.0"
|
||||||
|
formio-data = "^2.1.0"
|
||||||
|
freezegun = "0.3.15"
|
||||||
|
fsspec = ">=2024.5.0"
|
||||||
|
gdown = "^5.2.0"
|
||||||
|
geocoder = "^1.38.1"
|
||||||
|
geojson = "^3.1.0"
|
||||||
|
geopy = "^2.4.1"
|
||||||
|
gevent = "21.8.0"
|
||||||
|
gitpython = "3.1.30"
|
||||||
|
giturlparse = "^0.12.0"
|
||||||
|
googletrans-py = "4.0.0"
|
||||||
|
greenlet = "1.1.2"
|
||||||
|
gst = "^0.1.0"
|
||||||
|
httpagentparser = "1.8.1"
|
||||||
|
hubspot-api-client = "^10.0.0"
|
||||||
|
idna = "2.10"
|
||||||
|
iscompatible = "^0.1.1"
|
||||||
|
jinja2 = "2.11.3"
|
||||||
|
keystoneauth1 = "5.0.0"
|
||||||
|
libsass = "0.20.1"
|
||||||
|
linkedin = "^0.1.5"
|
||||||
|
lottie = "^0.7.1"
|
||||||
|
lxml = "4.6.5"
|
||||||
|
lxml-html-clean = "^0.3.1"
|
||||||
|
mako = "^1.3.5"
|
||||||
|
markupsafe = "1.1.1"
|
||||||
|
matplotlib = "^3.9.2"
|
||||||
|
mechanize = "^0.4.10"
|
||||||
|
messagebird = "^2.2.0"
|
||||||
|
mock = "^5.1.0"
|
||||||
|
mpld3 = "0.5.9"
|
||||||
|
mysqlclient = "^2.2.5"
|
||||||
|
nextcloud-api-wrapper = "^0.2.3"
|
||||||
|
num2words = "0.5.13"
|
||||||
|
numpy = ">=1.15"
|
||||||
|
numpy-financial = "<=1.0.0"
|
||||||
|
numpy-stl = "^3.1.2"
|
||||||
|
odoo-test-helper = "^2.1.1"
|
||||||
|
odoorpc = "^0.10.1"
|
||||||
|
ofxparse = "0.21"
|
||||||
|
ofxtools = "^0.9.5"
|
||||||
|
openai = "^1.52.0"
|
||||||
|
opencv-python = "^4.10.0.84"
|
||||||
|
openpyxl = "^3.1.5"
|
||||||
|
pandas = ">=0.25.3"
|
||||||
|
paramiko = "^3.5.0"
|
||||||
|
passlib = "1.7.4"
|
||||||
|
pathspec = "^0.12.1"
|
||||||
|
pay-ccavenue = "^1.0.0"
|
||||||
|
pdf2image = "^1.17.0"
|
||||||
|
phonenumbers = "^8.13.47"
|
||||||
|
pillow = "9.0.1"
|
||||||
|
plotly = "5.13.1"
|
||||||
|
polib = "1.1.0"
|
||||||
|
premailer = "^3.10.0"
|
||||||
|
printnodeapi = "^0.2.0"
|
||||||
|
prometheus-client = "0.15.0"
|
||||||
|
psutil = "5.8.0"
|
||||||
|
psycopg2 = "2.9.2"
|
||||||
|
py-asterisk = "^0.5.18"
|
||||||
|
py3dns = "^4.0.2"
|
||||||
|
py3o-formats = "^0.3"
|
||||||
|
py3o-template = "^0.10.0"
|
||||||
|
pyaudio = "^0.2.14"
|
||||||
|
pycountry = "^24.6.1"
|
||||||
|
pydifact = "^0.1.7"
|
||||||
|
pydot = "1.4.2"
|
||||||
|
pyfcm = "^2.0.7"
|
||||||
|
pygithub = "^2.4.0"
|
||||||
|
pygobject = "3.44.1"
|
||||||
|
pyjwt = "^2.9.0"
|
||||||
|
pymssql = "<=2.2.5"
|
||||||
|
pyncclient = "^0.7"
|
||||||
|
pyopenssl = "20.0.1"
|
||||||
|
pypdf2 = "1.26.0"
|
||||||
|
pyrfc6266 = "^1.0.2"
|
||||||
|
pysaml2 = "^7.5.0"
|
||||||
|
pyserial = "3.5"
|
||||||
|
pysftp = "^0.2.9"
|
||||||
|
pytesseract = "^0.3.13"
|
||||||
|
python-barcode = "^0.15.1"
|
||||||
|
python-dateutil = "2.8.1"
|
||||||
|
python-jose = "^3.3.0"
|
||||||
|
python-json-logger = "2.0.4"
|
||||||
|
python-keystoneclient = "5.0.0"
|
||||||
|
python-ldap = "3.4.0"
|
||||||
|
python-randomword-fr = "^1.0.0"
|
||||||
|
python-resize-image = "^1.1.20"
|
||||||
|
python-slugify = "^8.0.4"
|
||||||
|
python-stdnum = "1.16"
|
||||||
|
python-swiftclient = "4.1.0"
|
||||||
|
python-telegram-bot = "^21.6"
|
||||||
|
pytz = "^2024.2"
|
||||||
|
pyusb = "1.0.2"
|
||||||
|
pyyaml = "6.0"
|
||||||
|
pyzbar = "^0.1.9"
|
||||||
|
pyzk = "^0.9"
|
||||||
|
qrcode = "6.1"
|
||||||
|
redis = "4.3.4"
|
||||||
|
reportlab = "3.5.59"
|
||||||
|
requests = "2.30.0"
|
||||||
|
requests-toolbelt = "^1.0.0"
|
||||||
|
responses = "^0.25.3"
|
||||||
|
retrying = "^1.3.4"
|
||||||
|
rl-renderpm = "4.0.3"
|
||||||
|
roulier = "^1.1.1"
|
||||||
|
schwifty = "2024.4.0"
|
||||||
|
selenium = "^4.25.0"
|
||||||
|
sentry-sdk = "<=1.9.0"
|
||||||
|
shapely = "^2.0.6"
|
||||||
|
simplejson = "^3.19.3"
|
||||||
|
spacy = "^3.8.2"
|
||||||
|
speechrecognition = "3.10.0"
|
||||||
|
sqlalchemy = "^2.0.36"
|
||||||
|
statsd = "4.0.1"
|
||||||
|
telesign = "^2.2.3"
|
||||||
|
telnyx = "^2.1.3"
|
||||||
|
todoist-python = "^8.1.4"
|
||||||
|
toml = "^0.10.2"
|
||||||
|
tweepy = "^4.14.0"
|
||||||
|
twilio = "^9.3.4"
|
||||||
|
unidecode = "^1.3.8"
|
||||||
|
unidiff = "^0.7.5"
|
||||||
|
urllib3 = "1.26.5"
|
||||||
|
uvloop = "^0.21.0"
|
||||||
|
validate-email = "^1.3"
|
||||||
|
vobject = "0.9.6.1"
|
||||||
|
vonage = "^3.17.1"
|
||||||
|
werkzeug = "2.0.2"
|
||||||
|
wheel = "^0.44.0"
|
||||||
|
xlrd = "1.2.0"
|
||||||
|
xlsxwriter = "1.4.5"
|
||||||
|
xlwt = "1.3.0"
|
||||||
|
xmltodict = "0.13.0"
|
||||||
|
zeep = "4.0.0"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
websocket_client = "^1.1.0"
|
||||||
|
|
||||||
|
[tool.poetry.dependencies.black]
|
||||||
|
git = "https://github.com/psf/black.git"
|
||||||
|
rev = "24.8.0"
|
||||||
|
|
||||||
|
[tool.poetry.dependencies.openupgradelib]
|
||||||
|
git = "https://github.com/OCA/openupgradelib"
|
||||||
|
rev = "master"
|
||||||
|
|
@ -24,6 +24,7 @@ factur-x
|
||||||
|
|
||||||
# For ERPLibre project
|
# For ERPLibre project
|
||||||
RandomWords
|
RandomWords
|
||||||
|
selenium==4.11.2
|
||||||
|
|
||||||
# For testing
|
# For testing
|
||||||
websocket-client
|
websocket-client
|
||||||
|
|
@ -59,7 +60,11 @@ webcolors==1.13
|
||||||
openpyxl==3.1.3
|
openpyxl==3.1.3
|
||||||
|
|
||||||
# For deployment
|
# For deployment
|
||||||
cloudflare
|
cloudflare==3.0.1
|
||||||
|
|
||||||
|
# Fix build
|
||||||
|
pymssql==2.3.0
|
||||||
|
cython==3.0.10
|
||||||
|
|
||||||
# For multilang_md.py
|
# For multilang_md.py
|
||||||
click
|
click
|
||||||
|
|
@ -71,7 +76,7 @@ shapely==1.8.5
|
||||||
|
|
||||||
# Code generator
|
# Code generator
|
||||||
mysqlclient==2.1.1
|
mysqlclient==2.1.1
|
||||||
python-pptx
|
python-pptx==0.6.23
|
||||||
humanize==4.6.0
|
humanize==4.6.0
|
||||||
|
|
||||||
# pyproj >=3.3.0 is not compatible with python 3.7
|
# pyproj >=3.3.0 is not compatible with python 3.7
|
||||||
|
|
@ -89,6 +94,9 @@ numpy==1.21.1
|
||||||
feedparser==6.0.10
|
feedparser==6.0.10
|
||||||
geojson<3.0.0
|
geojson<3.0.0
|
||||||
|
|
||||||
|
# Fix poetry
|
||||||
|
olefile==0.47
|
||||||
|
|
||||||
# asyncio
|
# asyncio
|
||||||
aioshutil<1.2
|
aioshutil<1.2
|
||||||
tqdm
|
tqdm
|
||||||
|
|
@ -103,6 +111,11 @@ extract-msg==0.36.1
|
||||||
extract_msg==0.36.1
|
extract_msg==0.36.1
|
||||||
|
|
||||||
# Limitation because python3.7
|
# Limitation because python3.7
|
||||||
|
furo==2021.2.21b25
|
||||||
|
ovh==1.1.2
|
||||||
|
#requests-oauthlib==1.3.1
|
||||||
|
greenlet==0.4.14
|
||||||
|
gevent==1.5.0
|
||||||
argcomplete==3.1.1
|
argcomplete==3.1.1
|
||||||
responses==0.23.1
|
responses==0.23.1
|
||||||
dnspython==2.3.0
|
dnspython==2.3.0
|
||||||
|
|
@ -129,6 +142,7 @@ azure.identity==1.15.0
|
||||||
azure-storage-blob==12.19.0
|
azure-storage-blob==12.19.0
|
||||||
azure.storage.blob==12.19.0
|
azure.storage.blob==12.19.0
|
||||||
sqlparse==0.4.4
|
sqlparse==0.4.4
|
||||||
|
zeep==4.2.1
|
||||||
|
|
||||||
# Force version for security update
|
# Force version for security update
|
||||||
pyyaml==6.0
|
pyyaml==6.0
|
||||||
139
requirement/requirements.odoo14.0_python3.8.20.txt
Normal file
139
requirement/requirements.odoo14.0_python3.8.20.txt
Normal file
|
|
@ -0,0 +1,139 @@
|
||||||
|
# For script
|
||||||
|
giturlparse
|
||||||
|
agithub
|
||||||
|
GitPython==3.1.30
|
||||||
|
retrying
|
||||||
|
xmltodict
|
||||||
|
openupgradelib
|
||||||
|
unidiff
|
||||||
|
colorama
|
||||||
|
wheel
|
||||||
|
mmg==1.0.3
|
||||||
|
selenium
|
||||||
|
|
||||||
|
# For OSX
|
||||||
|
cython
|
||||||
|
|
||||||
|
# For Odoo
|
||||||
|
wheel
|
||||||
|
phonenumbers
|
||||||
|
# Force update version to latest, no break update
|
||||||
|
pytz>=2022.7
|
||||||
|
|
||||||
|
# For OCA
|
||||||
|
factur-x
|
||||||
|
|
||||||
|
# For smile
|
||||||
|
xmlrunner
|
||||||
|
|
||||||
|
# For testing
|
||||||
|
websocket-client
|
||||||
|
python-stdnum
|
||||||
|
python-u2flib_server
|
||||||
|
python-chess
|
||||||
|
python-git
|
||||||
|
voicent-python
|
||||||
|
python-swiftclient
|
||||||
|
python-keystoneclient
|
||||||
|
coverage
|
||||||
|
|
||||||
|
# For logical test
|
||||||
|
docutils==0.16.0
|
||||||
|
flake8<6.0.0
|
||||||
|
git+https://github.com/oca/pylint-odoo.git
|
||||||
|
# oca-maintainers-tools
|
||||||
|
# git+https://github.com/OCA/maintainer-tools.git#egg=oca-maintainers-tools
|
||||||
|
xmlformatter
|
||||||
|
css-html-prettify
|
||||||
|
BeautifulSoup4
|
||||||
|
git+https://github.com/psf/black.git@22.3.0
|
||||||
|
isort<5.12.0
|
||||||
|
|
||||||
|
# For updating poetry
|
||||||
|
toml
|
||||||
|
iscompatible
|
||||||
|
pandas==1.3.5
|
||||||
|
Jinja2==2.11.3
|
||||||
|
python-keystoneclient==3.22.0
|
||||||
|
|
||||||
|
# For deployment
|
||||||
|
cloudflare==2.20.0
|
||||||
|
|
||||||
|
# For multilang_md.py
|
||||||
|
click
|
||||||
|
emoji
|
||||||
|
|
||||||
|
# Fix bug geoengine
|
||||||
|
# https://github.com/OCA/geospatial/issues/318
|
||||||
|
shapely==1.8.5
|
||||||
|
|
||||||
|
# Code generator
|
||||||
|
mysqlclient==2.1.1
|
||||||
|
|
||||||
|
# pyproj >=3.3.0 is not compatible with python 3.7
|
||||||
|
pyproj==3.2.1
|
||||||
|
|
||||||
|
# to fix build
|
||||||
|
validators==0.24.0
|
||||||
|
sphinx==4.3.2
|
||||||
|
|
||||||
|
# Fix error
|
||||||
|
greenlet==0.4.17
|
||||||
|
gevent==20.9.0
|
||||||
|
|
||||||
|
# For some module
|
||||||
|
img2pdf
|
||||||
|
|
||||||
|
# fix zipp depend on importlib-metadata
|
||||||
|
zipp>=3.6.0
|
||||||
|
|
||||||
|
# Upgrade psycopg for better support python3
|
||||||
|
psycopg2==2.9.5
|
||||||
|
|
||||||
|
# Force update dependency to fix poetry
|
||||||
|
# numpy >=1.22 is not compatible with python 3.7
|
||||||
|
numpy==1.21.1
|
||||||
|
feedparser==6.0.10
|
||||||
|
geojson<3.0.0
|
||||||
|
regex==2022.3.2
|
||||||
|
pygount==1.5.1
|
||||||
|
pysaml2==7.2.1
|
||||||
|
gevent==1.5.0
|
||||||
|
freezegun==0.3.15
|
||||||
|
pyopenssl==21.0.0
|
||||||
|
ovh==1.1.2
|
||||||
|
sphinx-rtd-theme==1.3.0
|
||||||
|
sphinx_rtd_theme==1.3.0
|
||||||
|
dnspython==2.6.1
|
||||||
|
coverage==7.6.1
|
||||||
|
|
||||||
|
# asyncio
|
||||||
|
aioshutil<1.2
|
||||||
|
tqdm
|
||||||
|
uvloop
|
||||||
|
|
||||||
|
# Solve pcodedmp, oletools, rtfde and extract-msg
|
||||||
|
win_unicode_console
|
||||||
|
|
||||||
|
# Security issue, depend on extract-msg 0.36.1
|
||||||
|
chardet==5.0.0
|
||||||
|
extract-msg==0.36.1
|
||||||
|
|
||||||
|
# Force version for security update
|
||||||
|
pyyaml==6.0
|
||||||
|
lxml==4.9.1
|
||||||
|
cryptography==39.0.1
|
||||||
|
psutil==5.9.0
|
||||||
|
Pillow==9.3.0
|
||||||
|
Babel==2.9.1
|
||||||
|
reportlab==3.6.5
|
||||||
|
urllib3>=1.26.13
|
||||||
|
requests==2.28.1
|
||||||
|
boto3>=1.20.41
|
||||||
|
PyPDF2==1.27.9
|
||||||
|
mako==1.2.2
|
||||||
|
pyjwt==2.5.0
|
||||||
|
pygments==2.7.4
|
||||||
|
setuptools==65.5.1
|
||||||
|
Werkzeug==0.16.1
|
||||||
|
future==0.18.3
|
||||||
74
requirement/requirements.odoo16.0_python3.10.14.txt
Normal file
74
requirement/requirements.odoo16.0_python3.10.14.txt
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
# ERPLibre Poetry requirement
|
||||||
|
iscompatible
|
||||||
|
toml
|
||||||
|
|
||||||
|
# ERPLibre script
|
||||||
|
giturlparse
|
||||||
|
agithub
|
||||||
|
GitPython==3.1.30
|
||||||
|
retrying
|
||||||
|
xmltodict
|
||||||
|
openupgradelib
|
||||||
|
unidiff
|
||||||
|
colorama
|
||||||
|
wheel
|
||||||
|
cloudflare
|
||||||
|
selenium
|
||||||
|
# mmg # depend on weasyprint 59.0 and depend on old version pillow 9.0.1
|
||||||
|
uvloop
|
||||||
|
|
||||||
|
# For OSX
|
||||||
|
cython
|
||||||
|
|
||||||
|
# Module voice_to_text
|
||||||
|
SpeechRecognition==3.10.0
|
||||||
|
|
||||||
|
# Module detect_unauthorized_login
|
||||||
|
opencv-python
|
||||||
|
|
||||||
|
# Module advanced_payment_cybersource
|
||||||
|
cybersource-rest-client-python==0.0.56
|
||||||
|
|
||||||
|
# Module translation_helper
|
||||||
|
googletrans-py==4.0.0
|
||||||
|
#googletrans==4.0.0-rc1
|
||||||
|
#chardet==3.0.4
|
||||||
|
#openai==1.20.0
|
||||||
|
|
||||||
|
# Module infobip_whatsapp_integration
|
||||||
|
# Ignore it, need another version of requests
|
||||||
|
# infobip-api-python-sdk==5.0.0
|
||||||
|
|
||||||
|
# Module extra unknown name
|
||||||
|
filetype
|
||||||
|
PyPDF2
|
||||||
|
|
||||||
|
# For logical test and quality
|
||||||
|
git+https://github.com/psf/black.git@24.8.0
|
||||||
|
|
||||||
|
# For python 3.10 from odoo/requirements.txt, poetry_update.py cannot support python_version
|
||||||
|
cryptography==3.4.8
|
||||||
|
freezegun==0.3.15
|
||||||
|
gevent==21.8.0
|
||||||
|
greenlet==1.1.2
|
||||||
|
Jinja2==2.11.3
|
||||||
|
libsass==0.20.1
|
||||||
|
lxml==4.6.5
|
||||||
|
MarkupSafe==1.1.1
|
||||||
|
ofxparse==0.21
|
||||||
|
Pillow==9.0.1
|
||||||
|
psutil==5.8.0
|
||||||
|
psycopg2==2.9.2
|
||||||
|
pyopenssl==20.0.1
|
||||||
|
PyPDF2==1.26.0
|
||||||
|
python-ldap==3.4.0
|
||||||
|
pyusb==1.0.2
|
||||||
|
requests==2.30.0
|
||||||
|
reportlab==3.5.59
|
||||||
|
urllib3==1.26.5
|
||||||
|
Werkzeug==2.0.2
|
||||||
|
xlrd==1.2.0
|
||||||
|
|
||||||
|
# Force python 3.10 over odoo/requirements.txt to remove warning
|
||||||
|
num2words==0.5.13
|
||||||
|
xlsxwriter==1.4.5
|
||||||
|
|
@ -4,9 +4,18 @@ Color_Off='\033[0m' # Text Reset
|
||||||
|
|
||||||
# $1 BD NAME
|
# $1 BD NAME
|
||||||
# $2 file_path
|
# $2 file_path
|
||||||
./script/addons/install_addons.sh "$1" "$(<$2)"
|
|
||||||
|
# If addons is separate by ,
|
||||||
|
# ./script/addons/install_addons.sh "$1" "$(<$2)"
|
||||||
|
|
||||||
|
# If addons is separate by endline
|
||||||
|
# Read the file, put all line into string separate by ,
|
||||||
|
resultat=$(grep -v '^$' $2 | tr '\n' ',' | sed 's/,$//')
|
||||||
|
|
||||||
|
echo "Install modules ${resultat}"
|
||||||
|
./script/addons/install_addons.sh "$1" "$resultat"
|
||||||
retVal=$?
|
retVal=$?
|
||||||
if [[ $retVal -ne 0 ]]; then
|
if [[ $retVal -ne 0 ]]; then
|
||||||
echo -e "${Red}Error${Color_Off} ./script/addons/install_addons.sh into install_addons_from_file.sh"
|
echo -e "${Red}Error${Color_Off} ./script/addons/install_addons.sh into install_addons_from_file.sh"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ SUGGESTION
|
||||||
parser.add_argument("-d", "--database", help="Database to manipulate.")
|
parser.add_argument("-d", "--database", help="Database to manipulate.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--image",
|
"--image",
|
||||||
default="erplibre_base",
|
|
||||||
help=(
|
help=(
|
||||||
"Image name to restore, from directory image_db, filename without"
|
"Image name to restore, from directory image_db, filename without"
|
||||||
" '.zip'. Example, use erplibre_base to use image"
|
" '.zip'. Example, use erplibre_base to use image"
|
||||||
|
|
@ -77,6 +76,11 @@ def main():
|
||||||
|
|
||||||
arg_base = "./.venv/bin/python3 ./odoo/odoo-bin db"
|
arg_base = "./.venv/bin/python3 ./odoo/odoo-bin db"
|
||||||
|
|
||||||
|
if not config.image:
|
||||||
|
with open(".odoo-version", "r") as f:
|
||||||
|
odoo_version = f.readline()
|
||||||
|
config.image = f"odoo{odoo_version}_base"
|
||||||
|
|
||||||
# check if it needs master password from config file
|
# check if it needs master password from config file
|
||||||
has_config_file = True
|
has_config_file = True
|
||||||
config_path = "./config.conf"
|
config_path = "./config.conf"
|
||||||
|
|
|
||||||
390
script/database/image_db.py
Executable file
390
script/database/image_db.py
Executable file
|
|
@ -0,0 +1,390 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
from collections import defaultdict
|
||||||
|
import uuid
|
||||||
|
import time
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
||||||
|
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
PYTHON_BIN = ".venv/bin/python3"
|
||||||
|
IMAGE_DB_BIN = f"{PYTHON_BIN} ./script/database/image_db.py"
|
||||||
|
|
||||||
|
|
||||||
|
def get_config():
|
||||||
|
"""Parse command line arguments, extracting the config file name,
|
||||||
|
returning the union of config file and command line arguments
|
||||||
|
|
||||||
|
:return: dict of config file settings and command line arguments
|
||||||
|
"""
|
||||||
|
# TODO update description
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
|
description="""\
|
||||||
|
DESCRIPTION
|
||||||
|
Create image for database restoration to increase speed. Check file
|
||||||
|
|
||||||
|
SUGGESTION
|
||||||
|
./script/database/image_db.py --image erplibre_base --odoo_version 16.0
|
||||||
|
""",
|
||||||
|
epilog="""\
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--image",
|
||||||
|
help=(
|
||||||
|
"Image name to restore, from directory image_db, filename without"
|
||||||
|
" '.zip'. Example, use erplibre_base to use image"
|
||||||
|
" erplibre_base.zip. Default value is erplibre_base"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--odoo_version",
|
||||||
|
help=(
|
||||||
|
"Force Odoo version, example 12.0 or 16.0, if empty, use from"
|
||||||
|
" .odoo-version file"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--generate_list_only",
|
||||||
|
action="store_true",
|
||||||
|
help=(
|
||||||
|
"Generate list command in bash to run all package from"
|
||||||
|
" odoo_version"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--generate_bash_cmd_parallel",
|
||||||
|
action="store_true",
|
||||||
|
help=(
|
||||||
|
"Generate list with parallel command in bash to run all package"
|
||||||
|
" from odoo_version"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--show_list_only",
|
||||||
|
action="store_true",
|
||||||
|
help="Show list of all package about Odoo version",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--check_addons_exist",
|
||||||
|
action="store_true",
|
||||||
|
help=(
|
||||||
|
"Will return an error and stop execution if detect a non existing"
|
||||||
|
" addons from actual odoo version."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--keep_database",
|
||||||
|
action="store_true",
|
||||||
|
help="Keep temporary database",
|
||||||
|
)
|
||||||
|
args = parser.parse_args()
|
||||||
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
config = get_config()
|
||||||
|
if not config.odoo_version:
|
||||||
|
# Fill it from system
|
||||||
|
filename_odoo_version = ".odoo-version"
|
||||||
|
if not os.path.isfile(filename_odoo_version):
|
||||||
|
_logger.error(f"Missing file {filename_odoo_version}")
|
||||||
|
sys.exit(1)
|
||||||
|
with open(".odoo-version", "r") as f:
|
||||||
|
config.odoo_version = f.readline()
|
||||||
|
|
||||||
|
# Open configuration file
|
||||||
|
config_file = os.path.join("conf", f"module_list_image_db_odoo.json")
|
||||||
|
if not os.path.exists(config_file):
|
||||||
|
_logger.error(f"Configuration file {config_file} does not exist.")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
with open(config_file, "r") as f:
|
||||||
|
dct_config_all_image = json.load(f)
|
||||||
|
|
||||||
|
odoo_prefix_version = f"odoo{config.odoo_version}"
|
||||||
|
|
||||||
|
if config.show_list_only:
|
||||||
|
lst_image_to_show = set()
|
||||||
|
for image_db_name, dct_image_db in dct_config_all_image.items():
|
||||||
|
if not image_db_name.startswith(
|
||||||
|
odoo_prefix_version
|
||||||
|
) or dct_image_db.get("disable"):
|
||||||
|
continue
|
||||||
|
# First always need to be a base
|
||||||
|
image_list = dct_image_db.get("image_list")
|
||||||
|
for dct_image in image_list:
|
||||||
|
pkg_name = dct_image.get("pkg_name")
|
||||||
|
if pkg_name:
|
||||||
|
sub_image_db_name = f"{image_db_name}_{pkg_name}"
|
||||||
|
else:
|
||||||
|
sub_image_db_name = image_db_name
|
||||||
|
lst_image_to_show.add(sub_image_db_name)
|
||||||
|
|
||||||
|
lst_to_show = sorted(lst_image_to_show)
|
||||||
|
for image_to_show in lst_to_show:
|
||||||
|
print(image_to_show)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
if config.generate_list_only:
|
||||||
|
for image_db_name, dct_image_db in dct_config_all_image.items():
|
||||||
|
if not image_db_name.startswith(
|
||||||
|
odoo_prefix_version
|
||||||
|
) or dct_image_db.get("disable"):
|
||||||
|
continue
|
||||||
|
# First always need to be a base
|
||||||
|
print(
|
||||||
|
f"{IMAGE_DB_BIN} --odoo_version"
|
||||||
|
f" {config.odoo_version} --image {image_db_name}"
|
||||||
|
)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
if config.check_addons_exist:
|
||||||
|
lst_module_to_check = set()
|
||||||
|
for image_db_name, dct_image_db in dct_config_all_image.items():
|
||||||
|
if not image_db_name.startswith(
|
||||||
|
odoo_prefix_version
|
||||||
|
) or dct_image_db.get("disable"):
|
||||||
|
continue
|
||||||
|
lst_image_list = dct_image_db.get("image_list")
|
||||||
|
for dct_image_config in lst_image_list:
|
||||||
|
lst_module = dct_image_config.get("module")
|
||||||
|
lst_module_to_check.update(lst_module)
|
||||||
|
lst_module_missing = []
|
||||||
|
for module_to_check in lst_module_to_check:
|
||||||
|
cmd_check = (
|
||||||
|
f"{PYTHON_BIN} ./script/addons/check_addons_exist.py -m"
|
||||||
|
f" {module_to_check}"
|
||||||
|
)
|
||||||
|
status = run_cmd(cmd_check, quiet=True, sys_exit=False)
|
||||||
|
if status:
|
||||||
|
lst_module_missing.append(module_to_check)
|
||||||
|
if lst_module_missing:
|
||||||
|
print(f"Missing module :")
|
||||||
|
print(sorted(lst_module_missing))
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
print("No module missing")
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
if config.generate_bash_cmd_parallel:
|
||||||
|
dct_depend_image = defaultdict(list)
|
||||||
|
lst_total_image = []
|
||||||
|
|
||||||
|
lst_distribute_image = []
|
||||||
|
lst_queue_parallel = []
|
||||||
|
dct_image_delay = defaultdict(int)
|
||||||
|
# Search dependency
|
||||||
|
for image_db_name, dct_image_db in dct_config_all_image.items():
|
||||||
|
if not image_db_name.startswith(
|
||||||
|
odoo_prefix_version
|
||||||
|
) or dct_image_db.get("disable"):
|
||||||
|
continue
|
||||||
|
if image_db_name in lst_total_image:
|
||||||
|
_logger.error(f"Duplicate image_db_name: {image_db_name}")
|
||||||
|
sys.exit(1)
|
||||||
|
base_name = dct_image_db.get("base", "")
|
||||||
|
dct_depend_image[base_name].append(image_db_name)
|
||||||
|
lst_total_image.append(image_db_name)
|
||||||
|
dct_image_delay[image_db_name] = dct_image_db.get("delay", 0)
|
||||||
|
|
||||||
|
# Reorder it
|
||||||
|
max_iter = 1000
|
||||||
|
i = 0
|
||||||
|
while dct_depend_image and i < max_iter:
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
if "" in dct_depend_image.keys():
|
||||||
|
# Get from empty key for root dependency
|
||||||
|
lst_module = dct_depend_image.get("")
|
||||||
|
lst_queue_parallel.append(lst_module)
|
||||||
|
lst_distribute_image = lst_module[:]
|
||||||
|
del dct_depend_image[""]
|
||||||
|
else:
|
||||||
|
# Search if dependency already into list
|
||||||
|
lst_module = []
|
||||||
|
lst_key_to_delete = []
|
||||||
|
lst_distribute_image_to_append = []
|
||||||
|
for key_to_check, lst_value in dct_depend_image.items():
|
||||||
|
if key_to_check in lst_distribute_image:
|
||||||
|
# Dependency find
|
||||||
|
# Search for delay
|
||||||
|
has_delay = False
|
||||||
|
for value_module in lst_value:
|
||||||
|
delay = dct_image_delay.get(value_module)
|
||||||
|
if delay:
|
||||||
|
has_delay = True
|
||||||
|
dct_image_delay[value_module] = delay - 1
|
||||||
|
elif value_module not in lst_distribute_image:
|
||||||
|
lst_distribute_image_to_append.append(
|
||||||
|
value_module
|
||||||
|
)
|
||||||
|
lst_module.append(value_module)
|
||||||
|
if not has_delay:
|
||||||
|
lst_key_to_delete.append(key_to_check)
|
||||||
|
lst_distribute_image.extend(lst_distribute_image_to_append)
|
||||||
|
if lst_module:
|
||||||
|
lst_queue_parallel.append(lst_module)
|
||||||
|
for key_to_delete in lst_key_to_delete:
|
||||||
|
del dct_depend_image[key_to_delete]
|
||||||
|
|
||||||
|
# not finish to empty the queue
|
||||||
|
if dct_depend_image:
|
||||||
|
_logger.info("Missing dependencies, auto-run all image generation for last execution")
|
||||||
|
for depend_image, lst_module in dct_depend_image.items():
|
||||||
|
lst_queue_parallel.append(lst_module)
|
||||||
|
# print command to execute
|
||||||
|
lst_cmd = []
|
||||||
|
for lst_mod in lst_queue_parallel:
|
||||||
|
if not lst_mod:
|
||||||
|
continue
|
||||||
|
str_module = " ".join(lst_mod)
|
||||||
|
cmd = f"echo 'Generate imageDB : [{str_module}]'\n"
|
||||||
|
if len(lst_mod) > 1:
|
||||||
|
cmd += "parallel ::: " + " ".join(
|
||||||
|
[
|
||||||
|
f'"{IMAGE_DB_BIN} --odoo_version'
|
||||||
|
f' {config.odoo_version} --image {a}"'
|
||||||
|
for a in lst_mod
|
||||||
|
]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
cmd += (
|
||||||
|
f"{IMAGE_DB_BIN} --odoo_version"
|
||||||
|
f" {config.odoo_version} --image {lst_mod[0]}"
|
||||||
|
)
|
||||||
|
cmd += "\nstatus=$?; [ $status -ne 0 ] && exit $status"
|
||||||
|
|
||||||
|
lst_cmd.append(cmd)
|
||||||
|
print("\n".join(lst_cmd))
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
image_name_to_generate = (
|
||||||
|
config.image if config.image else f"{odoo_prefix_version}_base"
|
||||||
|
)
|
||||||
|
dct_config_image = dct_config_all_image.get(image_name_to_generate)
|
||||||
|
|
||||||
|
if not dct_config_image:
|
||||||
|
_logger.error(f"Cannot retrieve image name '{image_name_to_generate}'")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if dct_config_image.get("disable"):
|
||||||
|
_logger.info("Ignore this image DB generation, because it's disabled.")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
bd_temp_name = (
|
||||||
|
f"temp_img_create_{image_name_to_generate}_{uuid.uuid4().hex[:6]}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
# Step 0, drop and restore
|
||||||
|
# Step 1, install addons
|
||||||
|
# Step 2, uninstall if need it
|
||||||
|
# Step 3, install theme
|
||||||
|
# Step 4, create image_db by backup
|
||||||
|
# Step 5, loop to 1 with same bd name
|
||||||
|
|
||||||
|
base_image_name = dct_config_image.get("base")
|
||||||
|
all_temp_bd = []
|
||||||
|
|
||||||
|
# Step 0, drop and restore
|
||||||
|
cmd_drop_db = (
|
||||||
|
f"{PYTHON_BIN} ./odoo/odoo-bin db --drop --database {bd_temp_name}"
|
||||||
|
)
|
||||||
|
all_temp_bd.append(bd_temp_name)
|
||||||
|
run_cmd(cmd_drop_db)
|
||||||
|
if not base_image_name or base_image_name == image_name_to_generate:
|
||||||
|
with_demo = dct_config_image.get("with_demo")
|
||||||
|
# Create a new one
|
||||||
|
cmd = (
|
||||||
|
f"{PYTHON_BIN} ./odoo/odoo-bin db --create --database"
|
||||||
|
f" {bd_temp_name}"
|
||||||
|
)
|
||||||
|
if with_demo:
|
||||||
|
cmd += " --demo"
|
||||||
|
else:
|
||||||
|
cmd = (
|
||||||
|
"./script/database/db_restore.py --database"
|
||||||
|
f" {bd_temp_name} --image {base_image_name}"
|
||||||
|
)
|
||||||
|
run_cmd(cmd)
|
||||||
|
for dct_value in dct_config_image.get("image_list"):
|
||||||
|
pkg_name = dct_value.get("pkg_name", "")
|
||||||
|
# Step 1, install addons
|
||||||
|
lst_module = ",".join(dct_value.get("module"))
|
||||||
|
cmd = f"./script/addons/install_addons.sh {bd_temp_name} {lst_module}"
|
||||||
|
run_cmd(cmd)
|
||||||
|
# Step 2, uninstall if need it
|
||||||
|
# Step 3, install theme
|
||||||
|
module_theme = dct_value.get("theme")
|
||||||
|
if module_theme:
|
||||||
|
cmd = (
|
||||||
|
"./script/addons/install_addons_theme.sh"
|
||||||
|
f" {bd_temp_name} {module_theme}"
|
||||||
|
)
|
||||||
|
run_cmd(cmd)
|
||||||
|
# Step 4, create image_db by backup
|
||||||
|
module_image_name = (
|
||||||
|
image_name_to_generate
|
||||||
|
if not pkg_name
|
||||||
|
else f"{image_name_to_generate}_{pkg_name}"
|
||||||
|
)
|
||||||
|
cmd = (
|
||||||
|
f"{PYTHON_BIN} ./odoo/odoo-bin db --backup --database"
|
||||||
|
f" {bd_temp_name} --restore_image {module_image_name}"
|
||||||
|
)
|
||||||
|
run_cmd(cmd)
|
||||||
|
# Step 5, loop to 1 with same bd name for next package
|
||||||
|
|
||||||
|
# Step 6, clean if ask
|
||||||
|
if not config.keep_database:
|
||||||
|
for db_name in all_temp_bd:
|
||||||
|
cmd_drop_db = (
|
||||||
|
f"{PYTHON_BIN} ./odoo/odoo-bin db --drop --database {db_name}"
|
||||||
|
)
|
||||||
|
run_cmd(cmd_drop_db)
|
||||||
|
|
||||||
|
|
||||||
|
def run_cmd(cmd, quiet=False, sys_exit=True):
|
||||||
|
# status = os.system(cmd)
|
||||||
|
# if status != 0:
|
||||||
|
# _logger.error(f"Command failed : '{cmd}'")
|
||||||
|
# sys.exit(status)
|
||||||
|
if not quiet:
|
||||||
|
_logger.info(f"Run cmd: {cmd}")
|
||||||
|
debut = time.time()
|
||||||
|
process = subprocess.Popen(
|
||||||
|
cmd,
|
||||||
|
shell=True,
|
||||||
|
text=True,
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.PIPE,
|
||||||
|
)
|
||||||
|
stdout, stderr = process.communicate()
|
||||||
|
fin = time.time()
|
||||||
|
status_code = process.returncode
|
||||||
|
if stderr and not quiet:
|
||||||
|
_logger.error(stderr)
|
||||||
|
execution_time = fin - debut
|
||||||
|
if not quiet:
|
||||||
|
_logger.info(f"Time execution: {execution_time:.2f} seconds\n")
|
||||||
|
if status_code != 0:
|
||||||
|
if not quiet:
|
||||||
|
_logger.error(f"Command failed : '{cmd}'")
|
||||||
|
if sys_exit:
|
||||||
|
sys.exit(status_code)
|
||||||
|
return status_code
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
@ -3,6 +3,15 @@
|
||||||
Red='\033[0;31m' # Red
|
Red='\033[0;31m' # Red
|
||||||
Color_Off='\033[0m' # Text Reset
|
Color_Off='\033[0m' # Text Reset
|
||||||
|
|
||||||
|
ERPLIBRE_IMAGE_NAME=$(cat .erplibre-semver-version|xargs)
|
||||||
|
ERPLIBRE_VERSION_MAIN=$(cat .erplibre-version|xargs)
|
||||||
|
ODOO_VERSION=$(cat .odoo-version|xargs)
|
||||||
|
PYTHON_VERSION=$(cat .python-version|xargs)
|
||||||
|
POETRY_VERSION=$(cat .poetry-version|xargs)
|
||||||
|
|
||||||
|
IS_DEBIAN_BOOKWORM=true
|
||||||
|
IS_DEBIAN_BULLSEYE=true
|
||||||
|
# or IS_DEBIAN_BUSTER
|
||||||
ARGS=""
|
ARGS=""
|
||||||
IS_RELEASE=false
|
IS_RELEASE=false
|
||||||
IS_RELEASE_ALPHA=false
|
IS_RELEASE_ALPHA=false
|
||||||
|
|
@ -10,6 +19,8 @@ IS_RELEASE_BETA=false
|
||||||
ERPLIBRE_DOCKER_BASE="technolibre/erplibre-base"
|
ERPLIBRE_DOCKER_BASE="technolibre/erplibre-base"
|
||||||
ERPLIBRE_DOCKER_PROD="technolibre/erplibre"
|
ERPLIBRE_DOCKER_PROD="technolibre/erplibre"
|
||||||
|
|
||||||
|
output_version=""
|
||||||
|
|
||||||
for arg in "$@"
|
for arg in "$@"
|
||||||
do
|
do
|
||||||
if [ "$arg" == "--no-cache" ]
|
if [ "$arg" == "--no-cache" ]
|
||||||
|
|
@ -24,9 +35,35 @@ do
|
||||||
elif [ "$arg" == "--release_beta" ]
|
elif [ "$arg" == "--release_beta" ]
|
||||||
then
|
then
|
||||||
IS_RELEASE_BETA=true
|
IS_RELEASE_BETA=true
|
||||||
|
elif [ "$arg" == "--odoo_16" ]
|
||||||
|
then
|
||||||
|
output_version=$(python ./script/version/get_version.py --odoo_version 16.0)
|
||||||
|
elif [ "$arg" == "--odoo_14" ]
|
||||||
|
then
|
||||||
|
IS_DEBIAN_BOOKWORM=false
|
||||||
|
IS_DEBIAN_BULLSEYE=false
|
||||||
|
output_version=$(python ./script/version/get_version.py --odoo_version 14.0)
|
||||||
|
elif [ "$arg" == "--odoo_12" ]
|
||||||
|
then
|
||||||
|
IS_DEBIAN_BOOKWORM=false
|
||||||
|
IS_DEBIAN_BULLSEYE=false
|
||||||
|
output_version=$(python ./script/version/get_version.py --odoo_version 12.0)
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ "$output_version" != "" ]; then
|
||||||
|
ODOO_VERSION=$(echo "$output_version" | awk 'NR==1')
|
||||||
|
POETRY_VERSION=$(echo "$output_version" | awk 'NR==2')
|
||||||
|
PYTHON_VERSION=$(echo "$output_version" | awk 'NR==3')
|
||||||
|
ERPLIBRE_VERSION_MAIN=$(echo "$output_version" | awk 'NR==4')
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Build with"
|
||||||
|
echo $ERPLIBRE_VERSION_MAIN
|
||||||
|
echo $ODOO_VERSION
|
||||||
|
echo $PYTHON_VERSION
|
||||||
|
echo $POETRY_VERSION
|
||||||
|
|
||||||
if [ "$IS_RELEASE_ALPHA" == true ]
|
if [ "$IS_RELEASE_ALPHA" == true ]
|
||||||
then
|
then
|
||||||
# Add commit hash when release alpha
|
# Add commit hash when release alpha
|
||||||
|
|
@ -44,11 +81,14 @@ fi
|
||||||
|
|
||||||
ERPLIBRE_DOCKER_BASE_VERSION="${ERPLIBRE_DOCKER_BASE}:${ERPLIBRE_VERSION}"
|
ERPLIBRE_DOCKER_BASE_VERSION="${ERPLIBRE_DOCKER_BASE}:${ERPLIBRE_VERSION}"
|
||||||
ERPLIBRE_DOCKER_PROD_VERSION="${ERPLIBRE_DOCKER_PROD}:${ERPLIBRE_VERSION}"
|
ERPLIBRE_DOCKER_PROD_VERSION="${ERPLIBRE_DOCKER_PROD}:${ERPLIBRE_VERSION}"
|
||||||
|
ERPLIBRE_VERSION_MAIN="odoo${ODOO_VERSION}_python${PYTHON_VERSION}"
|
||||||
|
|
||||||
echo "Create docker ${ERPLIBRE_DOCKER_PROD_VERSION}"
|
echo "Create docker ${ERPLIBRE_DOCKER_PROD_VERSION}"
|
||||||
|
|
||||||
# Rewrite docker-compose
|
# Rewrite docker-compose
|
||||||
./script/docker/docker_update_version.py --version=${ERPLIBRE_VERSION} --base=${ERPLIBRE_DOCKER_BASE} --prod=${ERPLIBRE_DOCKER_PROD}
|
./script/docker/docker_update_version.py --version=${ERPLIBRE_VERSION} --base=${ERPLIBRE_DOCKER_BASE} --prod=${ERPLIBRE_DOCKER_PROD} --ignore_edit_docker
|
||||||
|
|
||||||
|
ARGS="${ARGS} --build-arg ERPLIBRE_VERSION=${ERPLIBRE_VERSION_MAIN} --build-arg ODOO_VERSION=${ODOO_VERSION} --build-arg POETRY_VERSION=${POETRY_VERSION} --build-arg ERPLIBRE_IMAGE_NAME=${ERPLIBRE_VERSION} --build-arg PYTHON_VERSION=${PYTHON_VERSION}"
|
||||||
|
|
||||||
retVal=$?
|
retVal=$?
|
||||||
if [[ $retVal -ne 0 ]]; then
|
if [[ $retVal -ne 0 ]]; then
|
||||||
|
|
@ -58,8 +98,15 @@ fi
|
||||||
|
|
||||||
cd docker
|
cd docker
|
||||||
|
|
||||||
ARGS="${ARGS} --build-arg=WORKING_BRANCH=$(git rev-parse --abbrev-ref HEAD) --build-arg=WORKING_HASH=$(git rev-parse --verify HEAD)"
|
ARGS="${ARGS} --build-arg WORKING_BRANCH=$(git rev-parse --abbrev-ref HEAD) --build-arg WORKING_HASH=$(git rev-parse --verify HEAD)"
|
||||||
|
|
||||||
|
if [ "$IS_DEBIAN_BOOKWORM" == true ]; then
|
||||||
|
ARGS="${ARGS} --build-arg DEBIAN_NAME=bookworm --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=e9f95436298c77cc9406bd4bbd242f4771d0a4b2"
|
||||||
|
elif [ "$IS_DEBIAN_BOOKWORM" != true ]; then
|
||||||
|
ARGS="${ARGS} --build-arg DEBIAN_NAME=bullseye --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.bullseye_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=cecbf5a6abbd68d324a7cd6c51ec843d71e98951"
|
||||||
|
elif [ "IS_DEBIAN_BULLSEYE" != true ]; then
|
||||||
|
ARGS="${ARGS} --build-arg DEBIAN_NAME=buster --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=d9f259a67e05e1c221d48b504453645e6c491fab"
|
||||||
|
fi
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Build base
|
# Build base
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,11 @@ def get_config():
|
||||||
default="./docker/Dockerfile.prod.pkg",
|
default="./docker/Dockerfile.prod.pkg",
|
||||||
help="Docker prod file to update.",
|
help="Docker prod file to update.",
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--ignore_edit_docker",
|
||||||
|
action="store_true",
|
||||||
|
help="Will not edit dockerfile.",
|
||||||
|
)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
args.base_version = f"{args.base}:{args.version}"
|
args.base_version = f"{args.base}:{args.version}"
|
||||||
args.prod_version = f"{args.prod}:{args.version}"
|
args.prod_version = f"{args.prod}:{args.version}"
|
||||||
|
|
@ -119,7 +124,8 @@ def edit_docker_prod(config):
|
||||||
def main():
|
def main():
|
||||||
config = get_config()
|
config = get_config()
|
||||||
edit_text(config)
|
edit_text(config)
|
||||||
edit_docker_prod(config)
|
if not config.ignore_edit_docker:
|
||||||
|
edit_docker_prod(config)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,6 @@ EL_CONFIG_FILE="${EL_HOME}/config.conf"
|
||||||
#EL_MINIMAL_ADDONS="False"
|
#EL_MINIMAL_ADDONS="False"
|
||||||
#EL_INSTALL_NGINX="True"
|
#EL_INSTALL_NGINX="True"
|
||||||
|
|
||||||
echo -e "* Create server config file"
|
|
||||||
|
|
||||||
touch "${EL_CONFIG_FILE}"
|
touch "${EL_CONFIG_FILE}"
|
||||||
echo -e "* Creating server config file"
|
echo -e "* Creating server config file"
|
||||||
printf '[options] \n; This is the password that allows database operations:\n' > "${EL_CONFIG_FILE}"
|
printf '[options] \n; This is the password that allows database operations:\n' > "${EL_CONFIG_FILE}"
|
||||||
|
|
@ -25,152 +23,117 @@ printf "db_password = False\n" >> "${EL_CONFIG_FILE}"
|
||||||
printf "xmlrpc_port = ${EL_PORT}\n" >> "${EL_CONFIG_FILE}"
|
printf "xmlrpc_port = ${EL_PORT}\n" >> "${EL_CONFIG_FILE}"
|
||||||
printf "longpolling_port = ${EL_LONGPOLLING_PORT}\n" >> "${EL_CONFIG_FILE}"
|
printf "longpolling_port = ${EL_LONGPOLLING_PORT}\n" >> "${EL_CONFIG_FILE}"
|
||||||
|
|
||||||
printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME}/addons/addons," >> "${EL_CONFIG_FILE}"
|
printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/addons," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_web," >> "${EL_CONFIG_FILE}"
|
|
||||||
if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then
|
if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then
|
||||||
printf "${EL_HOME}/addons/CybroOdoo_OpenHRMS," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/CybroOdoo_CybroAddons," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/ERPLibre_erplibre-3D-printing-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/CybroOdoo_OpenHRMS," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/ERPLibre_erplibre_addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/ERPLibre_erplibre_addons," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/ERPLibre_erplibre_theme_addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-analytic," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/JayVora-SerpentCS_SerpentCS_Contributions," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-budgeting," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/MathBenTech_QuotationRevision," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-closing," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/MathBenTech_development," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-consolidation," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/MathBenTech_erplibre-family-management," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-financial-reporting," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/MathBenTech_odoo-business-spending-management-quebec-canada," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-financial-tools," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/MathBenTech_scrummer," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-fiscal-rule," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-base-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-invoice-reporting," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-entertainment-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-invoicing," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-git-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-payment," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-hr-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-reconcile," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-partner-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_apps-store," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-product-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-payment," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-project-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-statement-import," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-purchase-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_brand," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-stock-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_business-requirement," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-survey-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_commission," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-timesheet-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_community-data-files," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/Numigi_odoo-web-addons," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-analytic," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-ecommerce," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-budgeting," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-interfaces," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-closing," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-jira," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-consolidation," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-telephony," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-financial-reporting," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_contract," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-financial-tools," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_credit-control," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-fiscal-rule," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_crm," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-invoice-reporting," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_currency," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-invoicing," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_data-protection," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-payment," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_ddmrp," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_account-reconcile," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_delivery-carrier," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_apps-store," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_donation," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_bank-payment," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_e-commerce," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_bank-statement-import," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_edi," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_brand," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_event," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_business-requirement," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_field-service," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_commission," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_fleet," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_community-data-files," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_geospatial," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_connector," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_helpdesk," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_connector-ecommerce," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_hr," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_connector-interfaces," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_interface-github," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_connector-jira," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_knowledge," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_connector-telephony," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_l10n-canada," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_contract," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_maintenance," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_credit-control," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_management-system," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_crm," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_manufacture," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_currency," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_margin-analysis," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_data-protection," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_mis-builder," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_ddmrp," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_multi-company," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_delivery-carrier," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_operating-unit," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_donation," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_partner-contact," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_e-commerce," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_pos," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_edi," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-attribute," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_event," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-configurator," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_field-service," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-pack," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_fleet," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-variant," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_geospatial," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_helpdesk," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project-agile," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_hr," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project-reporting," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_interface-github," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_purchase-workflow," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_knowledge," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_queue," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_l10n-canada," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_reporting-engine," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_maintenance," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_rma," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_management-system," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_sale-reporting," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_manufacture," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_sale-workflow," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_margin-analysis," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-auth," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_mis-builder," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-backend," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_multi-company," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-brand," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_operating-unit," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-env," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_partner-contact," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-tools," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_pos," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-ux," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_product-attribute," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_social," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_product-pack," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_stock-logistics-warehouse," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_product-variant," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_storage," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_project," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_survey," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_project-reporting," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_timesheet," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_purchase-workflow," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-association," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_queue," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-hotel," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_reporting-engine," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-isp," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_rma," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-travel," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_sale-reporting," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_web," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_sale-workflow," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_website," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_server-auth," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_website-cms," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_server-backend," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_wms," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_server-brand," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OmniaGit_odooplm," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_server-env," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/camptocamp_odoo-cloud-platform," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_server-tools," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/dhongu_deltatech," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_server-ux," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/it-projects-llc_saas-addons," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_social," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/muk-it_muk_web," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_stock-logistics-warehouse," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/novacode-nl_odoo-formio," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_storage," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/odoomates_odooapps," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_timesheet," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/openeducat_openeducat_erp," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_vertical-association," >> ${EL_CONFIG_FILE}
|
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/tegin_medical-fhir," >> "${EL_CONFIG_FILE}"
|
||||||
printf "${EL_HOME}/addons/OCA_vertical-hotel," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/OCA_vertical-isp," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/OCA_vertical-travel," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/OCA_website," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/OCA_website-cms," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/OCA_wms," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/OmniaGit_odooplm," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/Smile-SA_odoo_addons," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/TechnoLibre_odoo-code-generator," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/TechnoLibre_odoo-code-generator-template," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/ajepe_odoo-addons," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/camptocamp_odoo-cloud-platform," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/dhongu_deltatech," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/it-projects-llc_saas-addons," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/itpp-labs_access-addons," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/itpp-labs_pos-addons," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/itpp-labs_website-addons," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/kinjal-sorathiya_Property-Management_odoo," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/muk-it_muk_base," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/muk-it_muk_dms," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/muk-it_muk_docs," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/muk-it_muk_misc," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/muk-it_muk_quality," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/muk-it_muk_web," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/muk-it_muk_website," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/novacode-nl_odoo-formio," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/obayit_odoo_dhtmlxgantt," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/odoo_design-themes," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/odooaktiv_product_rating_app," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/odoomates_odooapps," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/openeducat_openeducat_erp," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/pledra_odoo-product-configurator," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/addons/tegin_medical-fhir," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/doc/itpp-labs_odoo-development," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/doc/itpp-labs_odoo-port-docs," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/doc/itpp-labs_odoo-test-docs," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/doc/odoo_documentation-user," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/script/OCA_maintainer-tools," >> ${EL_CONFIG_FILE}
|
|
||||||
printf "${EL_HOME}/script/OCA_odoo-module-migrator," >> ${EL_CONFIG_FILE}
|
|
||||||
fi
|
fi
|
||||||
printf "\n" >> "${EL_CONFIG_FILE}"
|
printf "\n" >> "${EL_CONFIG_FILE}"
|
||||||
|
|
||||||
printf "max_cron_threads = 2\n" >> "${EL_CONFIG_FILE}"
|
printf "max_cron_threads = 2\n" >> "${EL_CONFIG_FILE}"
|
||||||
|
|
||||||
|
printf "workers = 2\n" >> "${EL_CONFIG_FILE}"
|
||||||
if [[ ${EL_INSTALL_NGINX} = "True" ]]; then
|
if [[ ${EL_INSTALL_NGINX} = "True" ]]; then
|
||||||
printf "workers = 2\n" >> "${EL_CONFIG_FILE}"
|
|
||||||
printf "xmlrpc_interface = 127.0.0.1\n" >> "${EL_CONFIG_FILE}"
|
printf "xmlrpc_interface = 127.0.0.1\n" >> "${EL_CONFIG_FILE}"
|
||||||
printf "proxy_mode = True\n" >> "${EL_CONFIG_FILE}"
|
printf "proxy_mode = True\n" >> "${EL_CONFIG_FILE}"
|
||||||
else
|
fi
|
||||||
printf "workers = 0\n" >> "${EL_CONFIG_FILE}"
|
|
||||||
|
# Update and fix the config.conf
|
||||||
|
# Fix only the configuration if installation is done
|
||||||
|
if [ -f "./.venv/bin/activate" ] && [ -f "./odoo/odoo-bin" ]; then
|
||||||
|
make config_update
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
rm -fr ./.repo
|
rm -fr ./.repo
|
||||||
rm -rf ./odoo ./addons/* ./script/OCA* ./image_db ./doc/itpp* ./doc/odoo_*
|
rm -rf ./odoo ./addons*/* ./script/OCA* ./image_db ./doc/itpp* ./doc/odoo_*
|
||||||
mkdir -p addons/addons
|
rm -rf addons*
|
||||||
|
#mkdir -p addons/addons
|
||||||
|
|
|
||||||
|
|
@ -400,11 +400,18 @@ class GitTool:
|
||||||
# Exception, ignore addons/OCA_web and root
|
# Exception, ignore addons/OCA_web and root
|
||||||
if repo.get("path") in ["addons/OCA_web", "odoo", "image_db"]:
|
if repo.get("path") in ["addons/OCA_web", "odoo", "image_db"]:
|
||||||
continue
|
continue
|
||||||
|
update_repo = repo.get("path")
|
||||||
|
# Use variable instead of hardcoded path
|
||||||
|
if update_repo.startswith("addons.odoo"):
|
||||||
|
lst_path = update_repo.split("/", 1)
|
||||||
|
update_repo = f"addons.odoo${{EL_ODOO_VERSION}}/" + lst_path[1]
|
||||||
str_repo = (
|
str_repo = (
|
||||||
f' printf "${{EL_HOME}}/{repo.get("path")}," >> '
|
f' printf "${{EL_HOME}}/{update_repo}," >> '
|
||||||
'"${EL_CONFIG_FILE}"\n'
|
'"${EL_CONFIG_FILE}"\n'
|
||||||
)
|
)
|
||||||
lst_result.append(str_repo)
|
# Ignore repo if not starting by addons
|
||||||
|
if update_repo.startswith("addons"):
|
||||||
|
lst_result.append(str_repo)
|
||||||
with open(filename_locally) as file:
|
with open(filename_locally) as file:
|
||||||
all_lines = file.readlines()
|
all_lines = file.readlines()
|
||||||
# search place to add/replace lines
|
# search place to add/replace lines
|
||||||
|
|
|
||||||
|
|
@ -109,8 +109,8 @@ def main():
|
||||||
break
|
break
|
||||||
die(
|
die(
|
||||||
not project_path,
|
not project_path,
|
||||||
f"Missing .iml file into {IDEA_PATH}, wait after Pycharm analyze file to"
|
f"Missing .iml file into {IDEA_PATH}, wait after Pycharm analyze file"
|
||||||
" create Python environnement.",
|
" to create Python environnement.",
|
||||||
)
|
)
|
||||||
|
|
||||||
if config.init:
|
if config.init:
|
||||||
|
|
@ -415,6 +415,11 @@ def add_exclude_folder(dct_xml, file_name, config):
|
||||||
)
|
)
|
||||||
lst_exclude_folder = dct_content.get("excludeFolder")
|
lst_exclude_folder = dct_content.get("excludeFolder")
|
||||||
|
|
||||||
|
# lst_to_exclude = ["./.venv.*", "./addons.*"]
|
||||||
|
lst_to_exclude = ["./.venv.*", "./addons"]
|
||||||
|
for s_exclude in lst_to_exclude:
|
||||||
|
for dir_venv in glob.glob(s_exclude):
|
||||||
|
LST_EXCLUDE_FOLDER.append(dir_venv[2:])
|
||||||
lst_exclude_item = [f"file://$MODULE_DIR$/{a}" for a in LST_EXCLUDE_FOLDER]
|
lst_exclude_item = [f"file://$MODULE_DIR$/{a}" for a in LST_EXCLUDE_FOLDER]
|
||||||
|
|
||||||
if lst_exclude_folder:
|
if lst_exclude_folder:
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ sudo su - postgres -c "createuser -s ${EL_USER}" 2>/dev/null || true
|
||||||
# Install Dependencies
|
# Install Dependencies
|
||||||
#--------------------------------------------------
|
#--------------------------------------------------
|
||||||
echo -e "\n--- Installing debian dependency --"
|
echo -e "\n--- Installing debian dependency --"
|
||||||
sudo apt-get install git build-essential wget libxslt-dev libzip-dev libldap2-dev libsasl2-dev gdebi-core libffi-dev libbz2-dev parallel pysassc swig -y
|
sudo apt-get install git build-essential wget libxslt-dev libzip-dev libldap2-dev libsasl2-dev gdebi-core libffi-dev libbz2-dev parallel pysassc swig cmake portaudio19-dev -y
|
||||||
retVal=$?
|
retVal=$?
|
||||||
if [[ $retVal -ne 0 ]]; then
|
if [[ $retVal -ne 0 ]]; then
|
||||||
echo "apt-get debian tool installation error."
|
echo "apt-get debian tool installation error."
|
||||||
|
|
|
||||||
|
|
@ -22,13 +22,15 @@ Color_Off='\033[0m' # Text Reset
|
||||||
#git submodule update --init
|
#git submodule update --init
|
||||||
|
|
||||||
# Generate empty addons if missing
|
# Generate empty addons if missing
|
||||||
if [[ ! -d "./addons/addons" ]]; then
|
path_addons_addons="./addons.odoo${EL_ODOO_VERSION}/addons"
|
||||||
mkdir -p ./addons/addons
|
if [[ ! -d "${path_addons_addons}" ]]; then
|
||||||
|
mkdir -p "${path_addons_addons}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PYENV_PATH=~/.pyenv
|
PYENV_PATH=~/.pyenv
|
||||||
PYTHON_VERSION=3.7.16
|
# example, 3.7.8 will be 3.7 into PYTHON_VERSION_MAJOR
|
||||||
PYENV_VERSION_PATH=${PYENV_PATH}/versions/${PYTHON_VERSION}
|
PYTHON_VERSION_MAJOR=$(echo "$EL_PYTHON_VERSION" | sed 's/\.[^\.]*$//')
|
||||||
|
PYENV_VERSION_PATH=${PYENV_PATH}/versions/${EL_PYTHON_VERSION}
|
||||||
PYTHON_EXEC=${PYENV_VERSION_PATH}/bin/python
|
PYTHON_EXEC=${PYENV_VERSION_PATH}/bin/python
|
||||||
VENV_PATH=./.venv
|
VENV_PATH=./.venv
|
||||||
LOCAL_PYTHON_EXEC=${VENV_PATH}/bin/python
|
LOCAL_PYTHON_EXEC=${VENV_PATH}/bin/python
|
||||||
|
|
@ -36,58 +38,61 @@ VENV_REPO_PATH=${VENV_PATH}/repo
|
||||||
VENV_MULTILINGUAL_MARKDOWN_PATH=${VENV_PATH}/multilang_md.py
|
VENV_MULTILINGUAL_MARKDOWN_PATH=${VENV_PATH}/multilang_md.py
|
||||||
#POETRY_PATH=~/.local/bin/poetry
|
#POETRY_PATH=~/.local/bin/poetry
|
||||||
POETRY_PATH=${VENV_PATH}/bin/poetry
|
POETRY_PATH=${VENV_PATH}/bin/poetry
|
||||||
POETRY_VERSION=1.5.1
|
|
||||||
|
|
||||||
echo "Python path version home"
|
if [[ ! -n "${DOCKER_BUILD}" ]]; then
|
||||||
echo ${PYENV_VERSION_PATH}
|
echo "Python path version home"
|
||||||
echo "Python path version local"
|
echo ${PYENV_VERSION_PATH}
|
||||||
echo ${LOCAL_PYTHON_EXEC}
|
echo "Python path version local"
|
||||||
|
echo ${LOCAL_PYTHON_EXEC}
|
||||||
|
|
||||||
if [[ ! -d "${PYENV_PATH}" ]]; then
|
if [[ ! -d "${PYENV_PATH}" ]]; then
|
||||||
echo -e "\n---- Installing pyenv in ${PYENV_PATH} ----"
|
echo -e "\n---- Installing pyenv in ${PYENV_PATH} ----"
|
||||||
# export PYENV_GIT_TAG=v2.3.35
|
# export PYENV_GIT_TAG=v2.3.35
|
||||||
# To change version
|
# To change version
|
||||||
# rm ~/.pyenv to uninstall it
|
# rm ~/.pyenv to uninstall it
|
||||||
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
|
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n---- Export pyenv in ${PYENV_PATH} ----"
|
||||||
|
export PATH="${PYENV_PATH}/bin:$PATH"
|
||||||
|
eval "$(pyenv init -)"
|
||||||
|
eval "$(pyenv virtualenv-init -)"
|
||||||
|
|
||||||
|
if [[ ! -d "${PYENV_VERSION_PATH}" ]]; then
|
||||||
|
echo -e "\n---- Installing python ${PYTHON_VERSION} with pyenv in ${PYENV_VERSION_PATH} ----"
|
||||||
|
yes n|pyenv install ${PYTHON_VERSION}
|
||||||
|
if [[ $retVal -ne 0 ]]; then
|
||||||
|
echo -e "${Red}Error${Color_Off} when installing pyenv"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
pyenv local ${PYTHON_VERSION}
|
||||||
|
|
||||||
|
if [[ ! -d ${VENV_PATH} ]]; then
|
||||||
|
echo -e "\n---- Create Virtual environment Python ----"
|
||||||
|
if [[ -e ${PYTHON_EXEC} ]]; then
|
||||||
|
${PYTHON_EXEC} -m venv .venv
|
||||||
|
retVal=$?
|
||||||
|
if [[ $retVal -ne 0 ]]; then
|
||||||
|
echo "Virtual environment, error when creating .venv"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Missing pyenv, please refer installation guide."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
source ./.venv/bin/activate
|
||||||
|
else
|
||||||
|
mkdir .venv
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "\n---- Export pyenv in ${PYENV_PATH} ----"
|
|
||||||
export PATH="${PYENV_PATH}/bin:$PATH"
|
|
||||||
eval "$(pyenv init -)"
|
|
||||||
eval "$(pyenv virtualenv-init -)"
|
|
||||||
|
|
||||||
if [[ ! -d "${PYENV_VERSION_PATH}" ]]; then
|
|
||||||
echo -e "\n---- Installing python ${PYTHON_VERSION} with pyenv in ${PYENV_VERSION_PATH} ----"
|
|
||||||
yes n|pyenv install ${PYTHON_VERSION}
|
|
||||||
if [[ $retVal -ne 0 ]]; then
|
|
||||||
echo -e "${Red}Error${Color_Off} when installing pyenv"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
pyenv local ${PYTHON_VERSION}
|
|
||||||
|
|
||||||
if [[ ! -d ${VENV_PATH} ]]; then
|
|
||||||
echo -e "\n---- Create Virtual environment Python ----"
|
|
||||||
if [[ -e ${PYTHON_EXEC} ]]; then
|
|
||||||
${PYTHON_EXEC} -m venv .venv
|
|
||||||
retVal=$?
|
|
||||||
if [[ $retVal -ne 0 ]]; then
|
|
||||||
echo "Virtual environment, error when creating .venv"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Missing pyenv, please refer installation guide."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
source ./.venv/bin/activate
|
|
||||||
|
|
||||||
#if [[ ! -d "${POETRY_PATH}" ]]; then
|
#if [[ ! -d "${POETRY_PATH}" ]]; then
|
||||||
# # Delete directory ~/.poetry and .venv to force update to new version
|
# # Delete directory ~/.poetry and .venv to force update to new version
|
||||||
# echo -e "\n---- Installing poetry ${LOCAL_PYTHON_EXEC} for reliable python package ----"
|
# echo -e "\n---- Installing poetry ${LOCAL_PYTHON_EXEC} for reliable python package ----"
|
||||||
# # TODO self update poetry with `poetry self update ${POETRY_VERSION}`
|
# # TODO self update poetry with `poetry self update ${POETRY_VERSION}`
|
||||||
# curl -sSL https://install.python-poetry.org | POETRY_VERSION=${POETRY_VERSION} ${LOCAL_PYTHON_EXEC} - -y
|
# curl -sSL https://install.python-poetry.org | POETRY_VERSION=${EL_POETRY_VERSION} ${LOCAL_PYTHON_EXEC} - -y
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
# Install git-repo if missing
|
# Install git-repo if missing
|
||||||
|
|
@ -113,20 +118,20 @@ ${VENV_PATH}/bin/pip install --upgrade pip
|
||||||
|
|
||||||
# Delete artifacts created by pip, cause error in next "poetry install"
|
# Delete artifacts created by pip, cause error in next "poetry install"
|
||||||
if [[ ! -f "${POETRY_PATH}" ]]; then
|
if [[ ! -f "${POETRY_PATH}" ]]; then
|
||||||
${VENV_PATH}/bin/pip install poetry==${POETRY_VERSION}
|
${VENV_PATH}/bin/pip install poetry==${EL_POETRY_VERSION}
|
||||||
${VENV_PATH}/bin/poetry --version
|
${VENV_PATH}/bin/poetry --version
|
||||||
# Fix broken poetry by installing ignored dependence
|
# Fix broken poetry by installing ignored dependence
|
||||||
# ${VENV_PATH}/bin/pip install vatnumber
|
# ${VENV_PATH}/bin/pip install vatnumber
|
||||||
# ${VENV_PATH}/bin/pip install suds-jurko
|
# ${VENV_PATH}/bin/pip install suds-jurko
|
||||||
# ${VENV_PATH}/bin/poetry lock --no-update
|
# ${VENV_PATH}/bin/poetry lock --no-update
|
||||||
${VENV_PATH}/bin/poetry install
|
# To fix keyring problem when installation is blocked, use
|
||||||
|
export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
|
||||||
|
${VENV_PATH}/bin/poetry install --no-root -vvv
|
||||||
retVal=$?
|
retVal=$?
|
||||||
if [[ $retVal -ne 0 ]]; then
|
if [[ $retVal -ne 0 ]]; then
|
||||||
echo "Poetry installation error."
|
echo "Poetry installation error with status ${retVal}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# Fix pip installation missing package
|
|
||||||
${VENV_PATH}/bin/pip install selenium
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Delete artifacts created by pip, cause error in next "poetry install"
|
# Delete artifacts created by pip, cause error in next "poetry install"
|
||||||
|
|
@ -134,4 +139,4 @@ rm -rf artifacts
|
||||||
|
|
||||||
# Link for dev
|
# Link for dev
|
||||||
echo -e "\n---- Add link dependency in site-packages of Python ----"
|
echo -e "\n---- Add link dependency in site-packages of Python ----"
|
||||||
ln -fs ${EL_HOME_ODOO}/odoo ${EL_HOME}/.venv/lib/python3.7/site-packages/
|
ln -fs "${EL_HOME_ODOO}/odoo" "${EL_HOME}/.venv/lib/python${PYTHON_VERSION_MAJOR}/site-packages/"
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
Red='\033[0;31m' # Red
|
Red='\033[0;31m' # Red
|
||||||
Color_Off='\033[0m' # Text Reset
|
Color_Off='\033[0m' # Text Reset
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "RUN ./script/install/install_locally.sh"
|
||||||
|
echo ""
|
||||||
./script/install/install_locally.sh
|
./script/install/install_locally.sh
|
||||||
retVal=$?
|
retVal=$?
|
||||||
if [[ $retVal -ne 0 ]]; then
|
if [[ $retVal -ne 0 ]]; then
|
||||||
|
|
@ -13,6 +16,9 @@ if [[ $retVal -ne 0 ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update git-repo
|
# Update git-repo
|
||||||
|
echo ""
|
||||||
|
echo "RUN ./script/manifest/update_manifest_local_dev.sh"
|
||||||
|
echo ""
|
||||||
./script/manifest/update_manifest_local_dev.sh
|
./script/manifest/update_manifest_local_dev.sh
|
||||||
retVal=$?
|
retVal=$?
|
||||||
if [[ $retVal -ne 0 ]]; then
|
if [[ $retVal -ne 0 ]]; then
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,4 @@
|
||||||
|
|
||||||
# Update git-repo
|
# Update git-repo
|
||||||
./.venv/repo init -u https://github.com/ERPLibre/ERPLibre -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_DEV}
|
./.venv/repo init -u https://github.com/ERPLibre/ERPLibre -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_DEV}
|
||||||
#./.venv/repo sync --force-sync
|
./.venv/repo sync -v
|
||||||
./.venv/repo sync --force-sync -v
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,13 @@
|
||||||
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
||||||
DAEMON_PID=$!
|
DAEMON_PID=$!
|
||||||
|
|
||||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_DEV} "$@"
|
if [ -L "$EL_MANIFEST_DEV" ]; then
|
||||||
./.venv/repo sync -v --force-sync -m ${EL_MANIFEST_DEV}
|
MANIFEST_TARGET=$(readlink -f "$EL_MANIFEST_DEV")
|
||||||
|
else
|
||||||
|
MANIFEST_TARGET="$EL_MANIFEST_DEV"
|
||||||
|
fi
|
||||||
|
|
||||||
|
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${MANIFEST_TARGET} "$@"
|
||||||
|
./.venv/repo sync -v -m ${MANIFEST_TARGET}
|
||||||
|
|
||||||
kill ${DAEMON_PID}
|
kill ${DAEMON_PID}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,13 @@
|
||||||
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
||||||
DAEMON_PID=$!
|
DAEMON_PID=$!
|
||||||
|
|
||||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_DEV} -g base,code_generator
|
if [ -L "$EL_MANIFEST_DEV" ]; then
|
||||||
./.venv/repo sync -v --force-sync -m ${EL_MANIFEST_DEV}
|
MANIFEST_TARGET=$(readlink -f "$EL_MANIFEST_DEV")
|
||||||
|
else
|
||||||
|
MANIFEST_TARGET="$EL_MANIFEST_DEV"
|
||||||
|
fi
|
||||||
|
|
||||||
|
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${MANIFEST_TARGET} -g base,code_generator
|
||||||
|
./.venv/repo sync -v -m ${MANIFEST_TARGET}
|
||||||
|
|
||||||
kill ${DAEMON_PID}
|
kill ${DAEMON_PID}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,13 @@
|
||||||
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
|
||||||
DAEMON_PID=$!
|
DAEMON_PID=$!
|
||||||
|
|
||||||
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_PROD}
|
if [ -L "$EL_MANIFEST_DEV" ]; then
|
||||||
./.venv/repo sync -v -m ${EL_MANIFEST_PROD}
|
MANIFEST_TARGET=$(readlink -f "EL_MANIFEST_PROD")
|
||||||
|
else
|
||||||
|
MANIFEST_TARGET="$EL_MANIFEST_DEV"
|
||||||
|
fi
|
||||||
|
|
||||||
|
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${MANIFEST_TARGET}
|
||||||
|
./.venv/repo sync -v -m ${MANIFEST_TARGET}
|
||||||
|
|
||||||
kill ${DAEMON_PID}
|
kill ${DAEMON_PID}
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,4 @@
|
||||||
|
|
||||||
# Update git-repo
|
# Update git-repo
|
||||||
./.venv/repo init -u https://github.com/ERPLibre/ERPLibre -b $(git rev-parse --verify HEAD)
|
./.venv/repo init -u https://github.com/ERPLibre/ERPLibre -b $(git rev-parse --verify HEAD)
|
||||||
#./.venv/repo sync --force-sync
|
|
||||||
./.venv/repo sync -v
|
./.venv/repo sync -v
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,6 @@ Color_Off='\033[0m' # Text Reset
|
||||||
retVal=$?
|
retVal=$?
|
||||||
if [[ $retVal -ne 0 ]]; then
|
if [[ $retVal -ne 0 ]]; then
|
||||||
echo -e "${Red}Error${Color_Off} ./script/poetry/poetry_add_build_dependency.sh"
|
echo -e "${Red}Error${Color_Off} ./script/poetry/poetry_add_build_dependency.sh"
|
||||||
cat ./.venv/build_dependency.txt
|
# cat ./.venv/build_dependency.txt
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,6 @@ do
|
||||||
echo -e "Actual version $line"
|
echo -e "Actual version $line"
|
||||||
sed -i -e "s/$line/$1/g" ./.python-version
|
sed -i -e "s/$line/$1/g" ./.python-version
|
||||||
sed -i -e "s/$line/$1/g" ./docker/Dockerfile.base
|
sed -i -e "s/$line/$1/g" ./docker/Dockerfile.base
|
||||||
sed -i -e "s/$line/$1/g" ./docker/python-versions.txt
|
|
||||||
sed -i -e "s/$line/$1/g" ./script/install/install_locally.sh
|
|
||||||
sed -i -e "s/$line/$1/g" ./script/install/install_OSX_dependency.sh
|
sed -i -e "s/$line/$1/g" ./script/install/install_OSX_dependency.sh
|
||||||
sed -i -e "s/$line/$1/g" ./pyproject.toml
|
sed -i -e "s/$line/$1/g" ./pyproject.toml
|
||||||
done < "$input"
|
done < "$input"
|
||||||
|
|
|
||||||
106
script/version/get_version.py
Executable file
106
script/version/get_version.py
Executable file
|
|
@ -0,0 +1,106 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import logging
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
|
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
||||||
|
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
VERSION_DATA_FILE = os.path.join("conf", "supported_version_erplibre.json")
|
||||||
|
|
||||||
|
|
||||||
|
def get_config():
|
||||||
|
"""Parse command line arguments, extracting the config file name,
|
||||||
|
returning the union of config file and command line arguments
|
||||||
|
|
||||||
|
:return: dict of config file settings and command line arguments
|
||||||
|
"""
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
|
description=f"""\
|
||||||
|
Change environnement from supported version, check file {VERSION_DATA_FILE}.
|
||||||
|
|
||||||
|
""",
|
||||||
|
epilog="""\
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-l",
|
||||||
|
"--list",
|
||||||
|
action="store_true",
|
||||||
|
help="List all supported version.",
|
||||||
|
)
|
||||||
|
# parser.add_argument(
|
||||||
|
# "--python_version",
|
||||||
|
# help="Select the python version.",
|
||||||
|
# )
|
||||||
|
# parser.add_argument(
|
||||||
|
# "--poetry_version",
|
||||||
|
# help="Select the poetry version.",
|
||||||
|
# )
|
||||||
|
parser.add_argument(
|
||||||
|
"--odoo_version",
|
||||||
|
help="Select the odoo version.",
|
||||||
|
)
|
||||||
|
# parser.add_argument(
|
||||||
|
# "--erplibre_version",
|
||||||
|
# help="Select the erplibre version.",
|
||||||
|
# )
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
die(
|
||||||
|
not os.path.isfile(VERSION_DATA_FILE),
|
||||||
|
f"Missing {VERSION_DATA_FILE} path, are you sure you run this"
|
||||||
|
" script at root of the project?",
|
||||||
|
)
|
||||||
|
|
||||||
|
config = get_config()
|
||||||
|
|
||||||
|
with open(VERSION_DATA_FILE) as txt:
|
||||||
|
data_version = json.load(txt)
|
||||||
|
|
||||||
|
# detect no argument
|
||||||
|
# if (
|
||||||
|
# not config.python_version
|
||||||
|
# or not config.poetry_version
|
||||||
|
# or not config.odoo_version
|
||||||
|
# or not config.erplibre_version
|
||||||
|
# ):
|
||||||
|
if not config.odoo_version:
|
||||||
|
config.list = True
|
||||||
|
|
||||||
|
if config.list:
|
||||||
|
for key, value in data_version.items():
|
||||||
|
print(f"{key}: {value}")
|
||||||
|
|
||||||
|
if config.odoo_version:
|
||||||
|
for key, value in data_version.items():
|
||||||
|
if value.get("odoo_version") == config.odoo_version:
|
||||||
|
print(
|
||||||
|
f"{value.get('odoo_version')}\n"
|
||||||
|
f"{value.get('poetry_version')}\n"
|
||||||
|
f"{value.get('python_version')}\n"
|
||||||
|
f"{key}\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def die(cond, message, code=1):
|
||||||
|
if cond:
|
||||||
|
print(message, file=sys.stderr)
|
||||||
|
sys.exit(code)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
723
script/version/update_env_version.py
Executable file
723
script/version/update_env_version.py
Executable file
|
|
@ -0,0 +1,723 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||||||
|
|
||||||
|
# This script need only basic importation
|
||||||
|
import argparse
|
||||||
|
import logging
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
||||||
|
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
PROJECT_NAME = os.path.basename(os.getcwd())
|
||||||
|
VERSION_DATA_FILE = os.path.join("conf", "supported_version_erplibre.json")
|
||||||
|
VERSION_PYTHON_FILE = os.path.join(".python-version")
|
||||||
|
VERSION_ERPLIBRE_FILE = os.path.join(".erplibre-version")
|
||||||
|
VERSION_ODOO_FILE = os.path.join(".odoo-version")
|
||||||
|
VERSION_POETRY_FILE = os.path.join(".poetry-version")
|
||||||
|
VENV_FILE = os.path.join(".venv")
|
||||||
|
ADDONS_PATH = os.path.join("addons")
|
||||||
|
VENV_TEMPLATE_FILE = ".venv.%s"
|
||||||
|
MANIFEST_FILE = "default.dev.xml"
|
||||||
|
MANIFEST_TEMPLATE_FILE = "default.dev.odoo%s.xml"
|
||||||
|
MANIFEST_FILE_PATH = os.path.join(".", "manifest", MANIFEST_FILE)
|
||||||
|
PYPROJECT_FILE = os.path.join("pyproject.toml")
|
||||||
|
PYPROJECT_TEMPLATE_FILE = "pyproject.%s.toml"
|
||||||
|
POETRY_LOCK_FILE = os.path.join("poetry.lock")
|
||||||
|
POETRY_LOCK_TEMPLATE_FILE = "poetry.%s.lock"
|
||||||
|
PIP_REQUIREMENT_FILE = os.path.join("requirements.txt")
|
||||||
|
PIP_REQUIREMENT_TEMPLATE_FILE = "requirements.%s.txt"
|
||||||
|
PIP_IGNORE_REQUIREMENT_FILE = os.path.join(
|
||||||
|
"requirement", "ignore_requirements.txt"
|
||||||
|
)
|
||||||
|
PIP_IGNORE_REQUIREMENT_TEMPLATE_FILE = "ignore_requirements.%s.txt"
|
||||||
|
ADDONS_TEMPLATE_FILE = "addons.odoo%s"
|
||||||
|
ERPLIBRE_TEMPLATE_VERSION = "odoo%s_python%s"
|
||||||
|
|
||||||
|
|
||||||
|
def get_config():
|
||||||
|
"""Parse command line arguments, extracting the config file name,
|
||||||
|
returning the union of config file and command line arguments
|
||||||
|
|
||||||
|
:return: dict of config file settings and command line arguments
|
||||||
|
"""
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
|
description=f"""\
|
||||||
|
Change environnement from supported version, check file {VERSION_DATA_FILE}
|
||||||
|
""",
|
||||||
|
epilog="""\
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-l",
|
||||||
|
"--list",
|
||||||
|
action="store_true",
|
||||||
|
help="List all supported version.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--python_version",
|
||||||
|
help="Select the python version.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--poetry_version",
|
||||||
|
help="Select the poetry version.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--odoo_version",
|
||||||
|
help="Select the odoo version.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--erplibre_version",
|
||||||
|
help="Select the erplibre version.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--erplibre_package",
|
||||||
|
help=(
|
||||||
|
"Select the erplibre package to configure environnement only for"
|
||||||
|
" this package."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--install",
|
||||||
|
action="store_true",
|
||||||
|
help="Install environnement.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--switch",
|
||||||
|
action="store_true",
|
||||||
|
help="Will only update the system by switch environnement.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--install_dev",
|
||||||
|
action="store_true",
|
||||||
|
help="Install developer environment.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--force_install",
|
||||||
|
action="store_true",
|
||||||
|
help="Will erase .venv and create symbolic link after installation.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--force_repo",
|
||||||
|
action="store_true",
|
||||||
|
help="Will erase all repo before install it.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--force",
|
||||||
|
action="store_true",
|
||||||
|
help="Force all, include force_install, force_repo.",
|
||||||
|
)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.force:
|
||||||
|
args.force_install = True
|
||||||
|
args.force_repo = True
|
||||||
|
args.is_in_installation = args.install or args.install_dev
|
||||||
|
args.is_in_switch = args.switch
|
||||||
|
if not (args.install or args.install_dev) and args.force_install:
|
||||||
|
args.force_install = False
|
||||||
|
|
||||||
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
class Update:
|
||||||
|
def __init__(self):
|
||||||
|
self.execute_log = []
|
||||||
|
self.config = get_config()
|
||||||
|
self.data_version = None
|
||||||
|
self.odoo_version = None
|
||||||
|
self.python_version = None
|
||||||
|
self.detected_version_erplibre = None
|
||||||
|
self.new_version_erplibre = None
|
||||||
|
self.new_version_odoo = None
|
||||||
|
self.new_version_python = None
|
||||||
|
self.new_version_poetry = None
|
||||||
|
self.expected_venv_name = None
|
||||||
|
self.expected_manifest_name = None
|
||||||
|
self.expected_manifest_path = None
|
||||||
|
self.expected_pyproject_name = None
|
||||||
|
self.expected_pyproject_path = None
|
||||||
|
self.expected_poetry_lock_name = None
|
||||||
|
self.expected_poetry_lock_path = None
|
||||||
|
self.do_backup_venv = False
|
||||||
|
|
||||||
|
def check_version_data(self):
|
||||||
|
die(
|
||||||
|
not os.path.isfile(VERSION_DATA_FILE),
|
||||||
|
f"Missing {VERSION_DATA_FILE} path, are you sure you run this"
|
||||||
|
" script at root of the project?",
|
||||||
|
)
|
||||||
|
|
||||||
|
with open(VERSION_DATA_FILE) as txt:
|
||||||
|
self.data_version = json.load(txt)
|
||||||
|
|
||||||
|
if self.config.list:
|
||||||
|
for key, value in self.data_version.items():
|
||||||
|
print(f"{key}: {value}")
|
||||||
|
|
||||||
|
def detect_version(self):
|
||||||
|
# Detect actual version
|
||||||
|
if not os.path.exists(VERSION_PYTHON_FILE) or not os.path.exists(
|
||||||
|
VERSION_ODOO_FILE
|
||||||
|
):
|
||||||
|
_logger.info("New installation, cannot detect actual version.")
|
||||||
|
return False
|
||||||
|
with open(VERSION_PYTHON_FILE) as txt:
|
||||||
|
self.python_version = txt.read().strip()
|
||||||
|
with open(VERSION_ODOO_FILE) as txt:
|
||||||
|
self.odoo_version = txt.read().strip()
|
||||||
|
|
||||||
|
# Show actual version
|
||||||
|
_logger.info(f"Python version: {self.python_version}")
|
||||||
|
_logger.info(f"Odoo version: {self.odoo_version}")
|
||||||
|
erplibre_version_to_search = ERPLIBRE_TEMPLATE_VERSION % (
|
||||||
|
self.odoo_version,
|
||||||
|
self.python_version,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Detect key actual version
|
||||||
|
for key, value in self.data_version.items():
|
||||||
|
if (
|
||||||
|
value.get("odoo_version") == self.odoo_version
|
||||||
|
and value.get("python_version") == self.python_version
|
||||||
|
):
|
||||||
|
self.detected_version_erplibre = key
|
||||||
|
_logger.info(
|
||||||
|
f"Detected erplibre version {erplibre_version_to_search}"
|
||||||
|
)
|
||||||
|
break
|
||||||
|
if not self.detected_version_erplibre:
|
||||||
|
_logger.error(
|
||||||
|
f"The actual version '{erplibre_version_to_search}' is not"
|
||||||
|
f" configured into '{VERSION_DATA_FILE}'. Please update this"
|
||||||
|
" file before continue."
|
||||||
|
)
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
def validate_version(self):
|
||||||
|
dct_data_version = {}
|
||||||
|
if (
|
||||||
|
not self.config.python_version
|
||||||
|
and not self.config.poetry_version
|
||||||
|
and not self.config.odoo_version
|
||||||
|
and not self.config.erplibre_version
|
||||||
|
and not self.config.erplibre_package
|
||||||
|
):
|
||||||
|
dct_data_version = {}
|
||||||
|
if self.detected_version_erplibre:
|
||||||
|
dct_data_version = self.data_version.get(
|
||||||
|
self.detected_version_erplibre
|
||||||
|
)
|
||||||
|
if not dct_data_version:
|
||||||
|
# Take default version
|
||||||
|
default_data = [
|
||||||
|
key
|
||||||
|
for key, value in self.data_version.items()
|
||||||
|
if value.get("default")
|
||||||
|
]
|
||||||
|
if not default_data:
|
||||||
|
_logger.error(
|
||||||
|
"Cannot find default version into file"
|
||||||
|
f" {VERSION_DATA_FILE}"
|
||||||
|
)
|
||||||
|
sys.exit(1)
|
||||||
|
dct_data_version = self.data_version.get(default_data[0])
|
||||||
|
|
||||||
|
has_new_version = False
|
||||||
|
if self.config.erplibre_version:
|
||||||
|
data = self.data_version.get(self.config.erplibre_version)
|
||||||
|
if not data:
|
||||||
|
_logger.error(
|
||||||
|
"Missing data for erplibre_version"
|
||||||
|
f" {self.config.erplibre_version}"
|
||||||
|
)
|
||||||
|
sys.exit(1)
|
||||||
|
self.new_version_odoo = data.get("odoo_version")
|
||||||
|
self.new_version_python = data.get("python_version")
|
||||||
|
self.new_version_poetry = data.get("poetry_version")
|
||||||
|
has_new_version = True
|
||||||
|
if self.config.python_version:
|
||||||
|
self.new_version_python = self.config.python_version
|
||||||
|
has_new_version = True
|
||||||
|
if self.config.poetry_version:
|
||||||
|
self.new_version_poetry = self.config.poetry_version
|
||||||
|
has_new_version = True
|
||||||
|
if self.config.odoo_version:
|
||||||
|
self.new_version_odoo = self.config.odoo_version
|
||||||
|
has_new_version = True
|
||||||
|
if has_new_version:
|
||||||
|
self.new_version_erplibre = ERPLIBRE_TEMPLATE_VERSION % (
|
||||||
|
self.new_version_odoo,
|
||||||
|
self.new_version_python,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
_logger.info(
|
||||||
|
"No difference between detected version and new version:"
|
||||||
|
f" {self.detected_version_erplibre}"
|
||||||
|
)
|
||||||
|
if not dct_data_version:
|
||||||
|
_logger.error("Cannot find dct_data_version")
|
||||||
|
else:
|
||||||
|
self.new_version_erplibre = ERPLIBRE_TEMPLATE_VERSION % (
|
||||||
|
dct_data_version.get("odoo_version"),
|
||||||
|
dct_data_version.get("python_version"),
|
||||||
|
)
|
||||||
|
self.new_version_odoo = dct_data_version.get("odoo_version")
|
||||||
|
self.new_version_python = dct_data_version.get(
|
||||||
|
"python_version"
|
||||||
|
)
|
||||||
|
self.new_version_poetry = dct_data_version.get(
|
||||||
|
"poetry_version"
|
||||||
|
)
|
||||||
|
# self.new_version_erplibre = self.detected_version_erplibre
|
||||||
|
# self.new_version_odoo = self.odoo_version
|
||||||
|
# self.new_version_python = self.python_version
|
||||||
|
# TODO needs to detect actual poetry? No?
|
||||||
|
|
||||||
|
self.expected_venv_name = (
|
||||||
|
VENV_TEMPLATE_FILE % self.new_version_erplibre
|
||||||
|
)
|
||||||
|
self.expected_manifest_name = (
|
||||||
|
MANIFEST_TEMPLATE_FILE % self.new_version_odoo
|
||||||
|
)
|
||||||
|
self.expected_manifest_path = os.path.join(
|
||||||
|
".", "manifest", self.expected_manifest_name
|
||||||
|
)
|
||||||
|
self.expected_pyproject_name = (
|
||||||
|
PYPROJECT_TEMPLATE_FILE % self.new_version_erplibre
|
||||||
|
)
|
||||||
|
self.expected_pyproject_path = os.path.join(
|
||||||
|
".", "requirement", self.expected_pyproject_name
|
||||||
|
)
|
||||||
|
|
||||||
|
self.expected_poetry_lock_name = (
|
||||||
|
POETRY_LOCK_TEMPLATE_FILE % self.new_version_erplibre
|
||||||
|
)
|
||||||
|
self.expected_poetry_lock_path = os.path.join(
|
||||||
|
".", "requirement", self.expected_poetry_lock_name
|
||||||
|
)
|
||||||
|
self.expected_pip_requirement_name = (
|
||||||
|
PIP_REQUIREMENT_TEMPLATE_FILE % self.new_version_erplibre
|
||||||
|
)
|
||||||
|
self.expected_addons_name = (
|
||||||
|
ADDONS_TEMPLATE_FILE % self.new_version_odoo
|
||||||
|
)
|
||||||
|
self.expected_pip_requirement_path = os.path.join(
|
||||||
|
".", "requirement", self.expected_pip_requirement_name
|
||||||
|
)
|
||||||
|
self.expected_pip_ignore_requirement_name = (
|
||||||
|
PIP_IGNORE_REQUIREMENT_TEMPLATE_FILE % self.new_version_erplibre
|
||||||
|
)
|
||||||
|
self.expected_pip_ignore_requirement_path = os.path.join(
|
||||||
|
".", "requirement", self.expected_pip_ignore_requirement_name
|
||||||
|
)
|
||||||
|
|
||||||
|
if self.config.erplibre_package:
|
||||||
|
_logger.warning("Not supported erplibre_package configuration")
|
||||||
|
|
||||||
|
def validate_environment(self):
|
||||||
|
status = True
|
||||||
|
# Validate .venv
|
||||||
|
status &= self.update_link_file(
|
||||||
|
"Virtual environnement",
|
||||||
|
VENV_FILE,
|
||||||
|
self.expected_venv_name,
|
||||||
|
is_directory=True,
|
||||||
|
do_delete_source=self.config.install_dev
|
||||||
|
or self.config.force_install,
|
||||||
|
)
|
||||||
|
venv_exist = os.path.exists(VENV_FILE)
|
||||||
|
if not venv_exist and not self.config.install_dev:
|
||||||
|
_logger.info("Relaunch this script with --install_dev argument.")
|
||||||
|
# Validate Git repo
|
||||||
|
status &= self.update_link_file(
|
||||||
|
"Git repositories",
|
||||||
|
MANIFEST_FILE_PATH,
|
||||||
|
self.expected_manifest_path,
|
||||||
|
do_delete_source=True,
|
||||||
|
)
|
||||||
|
# Validate Poetry and pip
|
||||||
|
status &= self.update_link_file(
|
||||||
|
"Poetry project toml",
|
||||||
|
PYPROJECT_FILE,
|
||||||
|
self.expected_pyproject_path,
|
||||||
|
do_delete_source=True,
|
||||||
|
)
|
||||||
|
status &= self.update_link_file(
|
||||||
|
"Poetry lock",
|
||||||
|
POETRY_LOCK_FILE,
|
||||||
|
self.expected_poetry_lock_path,
|
||||||
|
do_delete_source=True,
|
||||||
|
)
|
||||||
|
status &= self.update_link_file(
|
||||||
|
"Pip requirement.txt",
|
||||||
|
PIP_REQUIREMENT_FILE,
|
||||||
|
self.expected_pip_requirement_path,
|
||||||
|
do_delete_source=True,
|
||||||
|
)
|
||||||
|
status &= self.update_link_file(
|
||||||
|
"Pip ignore_requirement.txt",
|
||||||
|
PIP_IGNORE_REQUIREMENT_FILE,
|
||||||
|
self.expected_pip_ignore_requirement_path,
|
||||||
|
do_delete_source=True,
|
||||||
|
)
|
||||||
|
if not os.path.isdir(self.expected_addons_name):
|
||||||
|
status = False
|
||||||
|
# status &= self.update_link_file(
|
||||||
|
# "Directory 'addons'",
|
||||||
|
# ADDONS_PATH,
|
||||||
|
# self.expected_addons_name,
|
||||||
|
# is_directory=True,
|
||||||
|
# do_delete_source=self.config.install_dev
|
||||||
|
# or self.config.force_install,
|
||||||
|
# )
|
||||||
|
return status
|
||||||
|
|
||||||
|
def update_environment(self):
|
||||||
|
status = True
|
||||||
|
do_action = bool(any([self.config.install_dev, self.config.install]))
|
||||||
|
if self.do_backup_venv and do_action:
|
||||||
|
venv_backup_name = (
|
||||||
|
f".venv_backup_{time.strftime('%Yy%mm%dd-%Hh%Mm%Ss')}"
|
||||||
|
)
|
||||||
|
shutil.move(VENV_FILE, venv_backup_name)
|
||||||
|
self.execute_log.append(f"Move .venv to backup {venv_backup_name}")
|
||||||
|
if self.config.force_repo:
|
||||||
|
# TODO add script to check difference before erase all
|
||||||
|
os.system("./script/git/clean_repo_manifest.sh")
|
||||||
|
self.execute_log.append(
|
||||||
|
f"Clear all repo from manifest, everything is deleted"
|
||||||
|
)
|
||||||
|
if self.config.force_install:
|
||||||
|
os.system(f"rm -rf ./{VENV_FILE}")
|
||||||
|
self.execute_log.append(f"Remove ./{VENV_FILE}")
|
||||||
|
|
||||||
|
# Always overwrite version
|
||||||
|
with open(VERSION_PYTHON_FILE, "w") as txt:
|
||||||
|
txt.write(self.new_version_python)
|
||||||
|
with open(VERSION_ERPLIBRE_FILE, "w") as txt:
|
||||||
|
txt.write(self.new_version_erplibre)
|
||||||
|
with open(VERSION_ODOO_FILE, "w") as txt:
|
||||||
|
txt.write(self.new_version_odoo)
|
||||||
|
with open(VERSION_POETRY_FILE, "w") as txt:
|
||||||
|
txt.write(self.new_version_poetry)
|
||||||
|
|
||||||
|
if self.config.is_in_installation or self.config.is_in_switch:
|
||||||
|
addons_path_with_version = f"addons.odoo{self.new_version_odoo}"
|
||||||
|
# To support multiple addons directory, change name before run git repo
|
||||||
|
for addons_path in os.listdir("."):
|
||||||
|
if (
|
||||||
|
addons_path.startswith("addons")
|
||||||
|
and addons_path != addons_path_with_version
|
||||||
|
):
|
||||||
|
os.rename(addons_path, addons_path + "TEMP")
|
||||||
|
|
||||||
|
# TODO need to be force if installation path is all good, return True
|
||||||
|
if self.config.is_in_installation:
|
||||||
|
_logger.info("Installation.")
|
||||||
|
status = self.install_erplibre(
|
||||||
|
install_system=self.config.install,
|
||||||
|
install_dev=self.config.install_dev,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Re-update if launch installation
|
||||||
|
self._update_directory_to_link(
|
||||||
|
VENV_FILE, self.expected_venv_name
|
||||||
|
)
|
||||||
|
# self._update_directory_to_link(ADDONS_PATH, self.expected_addons_name)
|
||||||
|
elif self.config.is_in_switch:
|
||||||
|
_logger.info("Switch")
|
||||||
|
self.execute_log.append(f"System update")
|
||||||
|
status = os.system(
|
||||||
|
"./script/manifest/update_manifest_local_dev.sh"
|
||||||
|
)
|
||||||
|
|
||||||
|
# To support multiple addons directory, remove TEMP
|
||||||
|
for addons_path in os.listdir("."):
|
||||||
|
if (
|
||||||
|
addons_path.startswith("addons")
|
||||||
|
and addons_path != addons_path_with_version
|
||||||
|
and addons_path.endswith("TEMP")
|
||||||
|
):
|
||||||
|
os.rename(addons_path, addons_path[:-4])
|
||||||
|
for addons_path in os.listdir("."):
|
||||||
|
if addons_path.startswith("addons"):
|
||||||
|
# In same time, force to create addons if not existing
|
||||||
|
addons_dir_path = os.path.join(addons_path, "addons")
|
||||||
|
if not os.path.isdir(addons_dir_path):
|
||||||
|
os.makedirs(addons_dir_path)
|
||||||
|
|
||||||
|
# Force create addons link
|
||||||
|
if os.path.isdir(ADDONS_PATH):
|
||||||
|
os.remove(ADDONS_PATH)
|
||||||
|
os.symlink(addons_path_with_version, ADDONS_PATH)
|
||||||
|
return status
|
||||||
|
|
||||||
|
def _update_directory_to_link(self, dir_to_check, link_name):
|
||||||
|
actuel_venv_is_symlink = os.path.islink(dir_to_check)
|
||||||
|
if not actuel_venv_is_symlink:
|
||||||
|
# Move it and create a symlink
|
||||||
|
shutil.move(dir_to_check, link_name)
|
||||||
|
os.symlink(link_name, dir_to_check)
|
||||||
|
msg = f"Create symbolic link {link_name} to {dir_to_check}"
|
||||||
|
_logger.info(msg)
|
||||||
|
self.execute_log.append(msg)
|
||||||
|
|
||||||
|
def print_log(self):
|
||||||
|
if not self.execute_log:
|
||||||
|
_logger.info("Nothing to do")
|
||||||
|
return
|
||||||
|
_logger.info("List of execution log :")
|
||||||
|
for log_info in self.execute_log:
|
||||||
|
_logger.info("\t" + log_info)
|
||||||
|
|
||||||
|
def pycharm_update(self):
|
||||||
|
pycharm_is_installed = os.path.exists(".idea")
|
||||||
|
if not pycharm_is_installed or not self.execute_log:
|
||||||
|
return
|
||||||
|
os.system("./.venv/bin/python ./script/ide/pycharm_configuration.py --init")
|
||||||
|
|
||||||
|
def install_erplibre(self, install_system=False, install_dev=False):
|
||||||
|
status = 0
|
||||||
|
|
||||||
|
if install_system:
|
||||||
|
self.execute_log.append(f"System installation")
|
||||||
|
status = os.system("./script/install/install_dev.sh")
|
||||||
|
if install_dev and not status:
|
||||||
|
self.execute_log.append(f"Dev installation")
|
||||||
|
status = os.system("./script/install/install_locally_dev.sh")
|
||||||
|
return status
|
||||||
|
|
||||||
|
def update_link_file(
|
||||||
|
self,
|
||||||
|
component_name,
|
||||||
|
source_file,
|
||||||
|
target_file,
|
||||||
|
is_directory=False,
|
||||||
|
do_delete_source=False,
|
||||||
|
):
|
||||||
|
"""Call to create a symbolic link
|
||||||
|
0. check if file is symlink or file/directory
|
||||||
|
1.
|
||||||
|
Case 1 : origin file exist, need to be switched by a symlink and rename it;
|
||||||
|
Case 2 : no file, check if new version exist and symlink it;
|
||||||
|
Case 3 : source file is symlink, and wrong direction, erase it. If new version exist, symlink it.
|
||||||
|
Case 4: origin file exist, but it's a wrong symlink
|
||||||
|
Good case : source file is symlink, and good redirection.
|
||||||
|
"""
|
||||||
|
# TODO support case symlink is invalid
|
||||||
|
status = False
|
||||||
|
if not source_file or not target_file:
|
||||||
|
_logger.error(
|
||||||
|
f"{component_name}:Source file or target file is empty."
|
||||||
|
)
|
||||||
|
source_file_exist = os.path.exists(source_file)
|
||||||
|
source_file_is_symlink = os.path.islink(source_file)
|
||||||
|
target_file_exist = os.path.exists(target_file)
|
||||||
|
if not target_file_exist:
|
||||||
|
_logger.warning(f"'{target_file}' not exist.")
|
||||||
|
do_symlink = False
|
||||||
|
# Case 4
|
||||||
|
if source_file_is_symlink and not source_file_exist:
|
||||||
|
_logger.error(
|
||||||
|
f"{component_name}:File '{source_file}' is a wrong symlink,"
|
||||||
|
" delete it."
|
||||||
|
)
|
||||||
|
os.system(f"rm {source_file}")
|
||||||
|
self.execute_log.append(
|
||||||
|
f"{component_name}:Delete file {source_file}"
|
||||||
|
)
|
||||||
|
source_file_is_symlink = False
|
||||||
|
|
||||||
|
# Case 1
|
||||||
|
if source_file_exist:
|
||||||
|
if not source_file_is_symlink:
|
||||||
|
# Check if source type
|
||||||
|
if is_directory:
|
||||||
|
source_file_is_directory = os.path.isdir(source_file)
|
||||||
|
if not source_file_is_directory:
|
||||||
|
_logger.error(
|
||||||
|
f"{component_name} - Source '{source_file}' is"
|
||||||
|
" expected to be a directory and it's not."
|
||||||
|
)
|
||||||
|
os.system(f"ls -lha {source_file}")
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
do_switch_origin_sim = True
|
||||||
|
else:
|
||||||
|
source_file_is_file = os.path.isfile(source_file)
|
||||||
|
if not source_file_is_file:
|
||||||
|
_logger.error(
|
||||||
|
f"{component_name} - Source '{source_file}' is"
|
||||||
|
" expected to be a file and it's not."
|
||||||
|
)
|
||||||
|
os.system(f"ls -lha {source_file}")
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
do_switch_origin_sim = True
|
||||||
|
if do_switch_origin_sim:
|
||||||
|
# Check if not erase an existing
|
||||||
|
if target_file_exist:
|
||||||
|
# Create a backup
|
||||||
|
new_target_file = f"{target_file}.backup_{time.strftime('%Yy%mm%dd-%Hh%Mm%Ss')}"
|
||||||
|
else:
|
||||||
|
new_target_file = target_file
|
||||||
|
# Move it and create a symlink
|
||||||
|
shutil.move(source_file, new_target_file)
|
||||||
|
do_symlink = True
|
||||||
|
else:
|
||||||
|
# Case 3
|
||||||
|
# Is symlink
|
||||||
|
lst_path_source = [
|
||||||
|
a for a in os.path.split(remove_dot_path(source_file)) if a
|
||||||
|
]
|
||||||
|
ref_symlink_source = os.readlink(source_file).strip("/")
|
||||||
|
lst_path_symlink_source = [
|
||||||
|
a
|
||||||
|
for a in os.path.split(remove_dot_path(ref_symlink_source))
|
||||||
|
if a
|
||||||
|
]
|
||||||
|
if (
|
||||||
|
len(lst_path_source) != len(lst_path_symlink_source)
|
||||||
|
and len(lst_path_symlink_source) == 1
|
||||||
|
):
|
||||||
|
ref_symlink_source_from_root = os.path.join(
|
||||||
|
".",
|
||||||
|
os.sep.join(lst_path_source[:-1]),
|
||||||
|
ref_symlink_source,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
ref_symlink_source_from_root = ref_symlink_source
|
||||||
|
do_delete_source = do_delete_source or os.path.exists(
|
||||||
|
target_file
|
||||||
|
)
|
||||||
|
if ref_symlink_source_from_root == target_file:
|
||||||
|
_logger.info(
|
||||||
|
f"{component_name}:The system configuration is good."
|
||||||
|
)
|
||||||
|
status = True
|
||||||
|
elif do_delete_source:
|
||||||
|
_logger.warning(
|
||||||
|
f"{component_name}:The file '{source_file}' link"
|
||||||
|
f" '{ref_symlink_source_from_root}' will be delete and"
|
||||||
|
f" link to '{target_file}'."
|
||||||
|
)
|
||||||
|
# symlink, delete it if wrong
|
||||||
|
os.system(f"rm {source_file}")
|
||||||
|
self.execute_log.append(
|
||||||
|
f"{component_name}:Delete file {source_file}"
|
||||||
|
)
|
||||||
|
if target_file_exist:
|
||||||
|
do_symlink = True
|
||||||
|
else:
|
||||||
|
_logger.warning(
|
||||||
|
f"{component_name}:The actual link is"
|
||||||
|
f" '{ref_symlink_source_from_root}', but expect to be"
|
||||||
|
f" '{target_file}'."
|
||||||
|
)
|
||||||
|
|
||||||
|
elif target_file_exist:
|
||||||
|
# Case 2
|
||||||
|
do_symlink = True
|
||||||
|
if do_symlink:
|
||||||
|
lst_path_target = [
|
||||||
|
a for a in os.path.split(remove_dot_path(target_file)) if a
|
||||||
|
]
|
||||||
|
lst_path_source = [
|
||||||
|
a for a in os.path.split(remove_dot_path(source_file)) if a
|
||||||
|
]
|
||||||
|
if len(lst_path_source) == 1:
|
||||||
|
os.symlink(target_file, source_file)
|
||||||
|
msg = (
|
||||||
|
f"{component_name}:Create symbolic link {source_file} to"
|
||||||
|
f" {target_file}"
|
||||||
|
)
|
||||||
|
_logger.info(msg)
|
||||||
|
self.execute_log.append(msg)
|
||||||
|
else:
|
||||||
|
target_file_name = lst_path_target[-1]
|
||||||
|
source_file_name = lst_path_source[-1]
|
||||||
|
# TODO compare lst_path_source avec lst_path_target, si différent, faire le path
|
||||||
|
cd_path_target = (
|
||||||
|
"." + os.sep + os.sep.join(lst_path_target[:-1])
|
||||||
|
)
|
||||||
|
cmd_symlink_manifest = (
|
||||||
|
f"cd {cd_path_target};ln -s"
|
||||||
|
f" {target_file_name} {source_file_name};cd -"
|
||||||
|
)
|
||||||
|
os.system(cmd_symlink_manifest)
|
||||||
|
msg = (
|
||||||
|
f"{component_name}:Create symbolic link"
|
||||||
|
f" {source_file_name} to {target_file_name} from path"
|
||||||
|
f" {cd_path_target}"
|
||||||
|
)
|
||||||
|
_logger.info(msg)
|
||||||
|
self.execute_log.append(msg)
|
||||||
|
return status
|
||||||
|
|
||||||
|
|
||||||
|
def remove_dot_path(path):
|
||||||
|
"""
|
||||||
|
if path is ./path/2, will return path/2
|
||||||
|
"""
|
||||||
|
if path.startswith("./"):
|
||||||
|
return path[2:]
|
||||||
|
return path
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
update = Update()
|
||||||
|
_logger.info(f"Work on directory {os.getcwd()}")
|
||||||
|
_logger.info("Get data version")
|
||||||
|
update.check_version_data()
|
||||||
|
|
||||||
|
_logger.info("Detect version")
|
||||||
|
update.detect_version()
|
||||||
|
|
||||||
|
_logger.info("Validate version")
|
||||||
|
update.validate_version()
|
||||||
|
|
||||||
|
_logger.info("Validate environment")
|
||||||
|
status = update.validate_environment()
|
||||||
|
if update.config.force_install or not status:
|
||||||
|
update.update_environment()
|
||||||
|
update.print_log()
|
||||||
|
|
||||||
|
if update.config.is_in_installation:
|
||||||
|
# Update pycharm configuration
|
||||||
|
update.pycharm_update()
|
||||||
|
|
||||||
|
# Update OCB configuration
|
||||||
|
os.system("./.venv/bin/python ./script/git/git_repo_update_group.py")
|
||||||
|
os.system("./script/generate_config.sh")
|
||||||
|
# TODO ignore this if installation fail
|
||||||
|
|
||||||
|
# TODO this cause an error at first execution, need to source ./.venv/bin/activate and rerun
|
||||||
|
# subprocess.run(['source', './.venv/bin/activate'], shell=True)
|
||||||
|
# subprocess.run(['make', 'config_gen_all'])
|
||||||
|
# status = os.system(f"make config_gen_all")
|
||||||
|
#
|
||||||
|
# if not status:
|
||||||
|
# print("Please run:")
|
||||||
|
# print("source ./.venv/bin/activate")
|
||||||
|
# print("make config_gen_all")
|
||||||
|
|
||||||
|
|
||||||
|
def die(cond, message, code=1):
|
||||||
|
if cond:
|
||||||
|
print(message, file=sys.stderr)
|
||||||
|
sys.exit(code)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Reference in a new issue