Merge branch 'support_multi_odoo'

- Support Odoo 12, Odoo 14 and Odoo 16
- Windows installation doc upgrade
- Fix Selenium installation
- Refresh licence TechnoLibre
- More documentation
- Update stat evolution module
This commit is contained in:
Mathieu Benoit 2024-11-02 02:26:10 -04:00
commit e47edc2879
107 changed files with 26081 additions and 1774 deletions

17
.gitignore vendored
View file

@ -3,7 +3,7 @@
*.tmp
*.bak
.idea
.venv
.venv*
*.log
config.conf
*.DS_Store
@ -12,9 +12,12 @@ config.conf
coverage*
.repo
addons
!addons/
addons/*
addons*/*
!script/addons
addons.*
doc/itpp*
doc/odoo*
script/OCA*
@ -26,3 +29,15 @@ wkhtmltox*
cache
node_modules
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

View file

@ -1 +0,0 @@
3.7.16

369
Makefile
View file

@ -67,6 +67,13 @@ run_parallel_cg_template:
run_parallel_cg_migrator:
parallel < ./conf/list_cg_migrator_test.txt
############
# VERSION #
############
.PHONY: version
version:
./script/version/update_env_version.py
#############
# INSTALL #
#############
@ -75,12 +82,64 @@ install:install_os install_dev
.PHONY: 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
.PHONY: install_os
install_os:
./script/install/install_dev.sh
#./script/install/install_dev.sh
./script/version/update_env_version.py --install
.PHONY: install_production
install_production:
@ -95,6 +154,13 @@ install_docker_debian:
install_docker_ubuntu:
./script/install/install_ubuntu_docker.sh
###################
# Environnement #
###################
.PHONY: pyenv_update
pyenv_update:
~/.pyenv/bin/pyenv update
#####################
# DB installation #
#####################
@ -161,14 +227,6 @@ db_restore_prod_client:
db_restore_erplibre_base_db_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
db_restore_erplibre_website_db_test:
./script/database/db_restore.py --database test --image erplibre_website
@ -217,52 +275,6 @@ db_test_re_export_website_attachments:
########################
# 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
image_db_create_erplibre_code_generator:
@ -273,175 +285,25 @@ image_db_create_erplibre_code_generator:
./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
.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
image_db_create_all_parallel:
./script/database/db_restore.py --clean_cache
./script/make.sh image_db_create_erplibre_base
parallel < ./conf/image_db_create.txt
echo "Search in-existing module"
./.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
image_db_create_test_website_attachments:
@ -452,8 +314,8 @@ image_db_create_test_website_attachments:
.PHONY: 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/manifest/compare_backup.py --backup_1 erplibre_base --backup_2 erplibre_website
#./script/database/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_1 odoo12.0_base --backup_2 odoo12.0_website
#########################
# Addons installation #
@ -918,6 +780,13 @@ format_script_isort_only:
log_show_test:
vim ${LOG_FILE}
##########
# poetry #
##########
.PHONY: poetry_update
poetry_update:
./script/poetry/poetry_update.py
###########
# clean #
###########
@ -979,9 +848,17 @@ docker_exec_erplibre_repo_show_status:
./script/docker/docker_repo_show_status.sh
# build docker
.PHONY: docker_build
docker_build:
./script/docker/docker_build.sh
.PHONY: docker_build_odoo_16
docker_build_odoo_16:
./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
.PHONY: docker_build_release
@ -1059,9 +936,30 @@ repo_use_all_https:
config_install:
./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
.PHONY: config_gen_all
config_gen_all:
echo "config_gen_all"
./script/git/git_repo_update_group.py
./script/generate_config.sh
@ -1191,3 +1089,20 @@ doc_clean_user:
.PHONY: doc_markdown
doc_markdown:
./.venv/bin/mmg --verbose --yes ./doc/CODE_GENERATOR.base.md
# Cache
.PHONY: clear_cache
clear_cache:
rm -rf cache artifacts .coverage coverage.json
#######
# IDE #
#######
.PHONY: pycharm_open
pycharm_open:
~/.local/share/JetBrains/Toolbox/scripts/pycharm .
.PHONY: pycharm_configure
pycharm_configure:
./script/ide/pycharm_configuration.py --init

View file

@ -18,7 +18,7 @@ Into Ubuntu, minimal dependency:
sudo apt install make git curl
```
Into Ubuntu, developper dependency:
Into Ubuntu, developer dependency:
```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
@ -31,10 +31,10 @@ git clone https://github.com/ERPLibre/ERPLibre.git
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
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`
@ -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
```
Show version :
```bash
make version
```
Ready to execute:
```bash
@ -75,6 +81,26 @@ For more information, read [Docker guide](./docker/README.md).
[Guide to run ERPLibre in development environment](./doc/DEVELOPMENT.md).
### Pycharm
First open
```bash
make pycharm_open
```
Close it, and configure
```bash
make pycharm_configure
```
Open it
```bash
make pycharm_open
```
# Execution
[Guide to run ERPLibre with different case](./doc/RUN.md).

View file

@ -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

View 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"
]
}
]
}
}

View file

@ -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

View file

@ -1,4 +1,3 @@
.venv
.repo
script/OCA_maintainer-tools
script/OCA_odoo-module-migrator

View 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"
}
}

View file

@ -178,3 +178,16 @@ networks:
external:
name: localnetwork
```
## Pycharm inotify watches limit Linux
Please read this: https://intellij-support.jetbrains.com/hc/en-us/articles/15268113529362-Inotify-Watches-Limit-Linux
Validate it works:
```bash
cat /proc/sys/fs/inotify/max_user_watches
```
Tips, when doing `sudo sysctl -p --system`, validate the order of the process, another process can overwrite your new
value.

View file

@ -37,3 +37,29 @@ make docker_show_databases
- Run script `make install_dev`
- Restart your daemon
- Regenerate master password manually
## Migration Odoo 12 to Odoo 13
Replace BD to your database name.
First, be sure all addons is updated with script.
```bash
./script/addons/update_addons_all.sh BD
```
Execute migration with OpenUpgrade.
```bash
make config_gen_migration
./.venv/bin/python ./script/OCA_OpenUpgrade/odoo-bin -c ./config.conf --update all --stop-after-init -d BD
```
## Migration Odoo 13 to Odoo 14
Replace BD to your database name.
```bash
make config_gen_migration
./run.sh --upgrade-path=./script/OCA_OpenUpgrade/openupgrade_scripts/scripts --update all --stop-after-init --load=base,web,openupgrade_framework -d BD
```

View file

@ -44,3 +44,47 @@ Delete cache at root of the project
```bash
rm -r cache
```
## Configure a proxy with poetry
The proxy will create a cache of all downloads.
https://github.com/EpicWink/proxpi
Install and run the server
```bash
pip3 install 'git+https://github.com/EpicWink/proxpi.git'
PROXPI_BINARY_FILE_MIME_TYPE=1 FLASK_APP=proxpi.server flask run
```
Or by docker-compose, add the environment
```
services:
proxpi:
restart: unless-stopped
ports:
- '5000:5000'
image: epicwink/proxpi:latest
environment:
- PROXPI_BINARY_FILE_MIME_TYPE=1
```
Add this configuration into the pyproject.toml
```toml
[[tool.poetry.source]]
name = "proxpi"
url = "http://localhost:5000/index/"
default = true
secondary = false
```
TIPS, maybe before `poetry install` into installation script, need to do `poetry lock --no-update`
In development, a solution without configuring pyproject.toml, update installation script like :
```bash
${VENV_PATH}/bin/poetry self add git+https://github.com/mathben/poetry-plugin-pypi-proxy.git[plugin]
PIP_INDEX_URL=http://127.0.0.1:5000/index/ ${VENV_PATH}/bin/poetry install
```

View file

@ -53,7 +53,7 @@ make doc_markdown
To generate a docker, run:
```bash
make docker_build
make docker_build_odoo_16
```
### Rename old version to new version

View file

@ -147,6 +147,23 @@ Add role to PostgresSQL, change `USERNAME` field in the command with your UNIX u
sudo service postgresql start
sudo su - postgres -c "createuser -s USERNAME" 2>/dev/null || true
```
## Common Problems During Installation
### Error During `make install`
Ensure all dependencies are installed correctly. Re-run the following command to fix any broken dependencies:
```bash
sudo apt-get install -f
```
### PostgreSQL Not Starting
Check the PostgreSQL service status with the following command:
```bash
sudo service postgresql status
```
If PostgreSQL is not running, try restarting it with:
```bash
sudo service postgresql restart
```
## Running ERPLibre
@ -190,13 +207,13 @@ If these last steps to set up your development environment were unsuccessful, fo
## Manual Installation
### Install Python 3.7.16
### Install Python 3.10.14
You can delete the files that are left over in your home directory regarding the python installation when the steps have been completed succesfully.
```bash
cd ~
wget https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz
tar -xzf Python-3.7.16.tgz
cd Python-3.7.16
wget https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz
tar -xzf Python-3.10.14.tgz
cd Python-3.10.14
./configure --enable-optimizations
make -j $(nproc)
sudo make install
@ -205,13 +222,13 @@ sudo make install
### Verify the installation
```bash
python3.7
python3.10
```
### Set Python 3.7.16 as default
### Set Python 3.10.14 as default
```bash
alias python='/usr/local/bin/python3.7'
alias python='/usr/local/bin/python3.10'
source ~/.bashrc
```
@ -241,14 +258,15 @@ wsl.exe
![Shell Path - Terminal](image/shell_path.png)
### High Memory Usage warnings
Click on `Help` in the toolbar and choose `Change Memory Settings` to increase the memory heap of the IDE.
If you experience high memory usage, click on `Help` in the toolbar and choose `Change Memory Settings` to increase the memory heap of the IDE.
### Missing or incorrect imported modules
PyCharm may ignore some information from the `requirements.txt` and `pyproject.toml` from the project (such as their specific versions). If you have problems at runtime or while debugging with a certain module, search for the correct version of that specific module and reinstall it from PyCharm's package manager.
PyCharm might not fully recognize some details from `requirements.txt` and `pyproject.toml` (e.g., specific module versions). If you encounter issues at runtime or while debugging, search for the correct version of the module and reinstall it using PyCharm's package manager.
### Can't run ERPLibre from PyCharm
Run the following command in the root of the project from the terminal in PyCharm or WSL2
If ERPLibre fails to run from PyCharm, execute the following command in the root directory of the project from the terminal in PyCharm or WSL2:
```bash
./script/ide/pycharm_configuration.py
```
@ -258,8 +276,20 @@ Run `htop` from the terminal in PyCharm or WSL2 and close the python processes r
## References
[WSL Installation](https://learn.microsoft.com/en-us/windows/wsl/install)
Comprehensive guide on installing Windows Subsystem for Linux (WSL) on Windows.
[PostgreSQL Official Documentation](https://www.postgresql.org/docs/)
Official PostgreSQL documentation for troubleshooting common issues and learning more about PostgreSQL commands and configuration.
[PyCharm Installation and Configuration](https://www.jetbrains.com/pycharm/quickstart/)
Quick start guide for setting up and configuring PyCharm, including handling Python modules and environment setup.
[WSL Troubleshooting](https://learn.microsoft.com/en-us/windows/wsl/troubleshoot)
Troubleshooting guide for common issues encountered in WSL, providing solutions for various problems that may arise.
[Linux GUI](https://hub.tcno.co/windows/wsl/desktop-gui/)
Instructions for setting up a graphical user interface (GUI) in WSL, which might be helpful for better integration of Linux applications.
[Memory Problem](https://www.aleksandrhovhannisyan.com/blog/limiting-memory-usage-in-wsl-2/)
Guide on how to manage and limit memory usage in WSL 2 to avoid high memory consumption issues.

View file

@ -29,6 +29,7 @@ RUN apt-get update \
python3-watchdog \
python3-xlrd \
python3-xlwt \
cython \
xz-utils \
git \
iproute2 \

View file

@ -1,5 +1,9 @@
FROM python:3.7.17-slim-bullseye
MAINTAINER TechnoLibre <docker@technolibre.ca>
# syntax=docker/dockerfile:1
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"]
@ -15,6 +19,9 @@ ENV LANG="C.UTF-8" \
ENV ODOO_PREFIX /ERPLibre
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
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
@ -65,14 +72,17 @@ RUN apt-get update \
libncursesw5-dev \
libffi-dev \
uuid-dev \
portaudio19-dev \
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 \
&& echo 'd9f259a67e05e1c221d48b504453645e6c491fab wkhtmltox.deb' | sha1sum -c - \
&& curl -o wkhtmltox.deb -sSL https://${URL_WKHTMLTOX}/ \
&& echo "${SHA1SUM_WKTHMLTOX} wkhtmltox.deb" | sha1sum -c - \
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb
ARG DEBIAN_NAME=bookworm
# 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)" \
&& export GNUPGHOME \
&& 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 \
&& 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
RUN cd ; mkdir -p .bin/ && \
git config --global color.ui false && \

View file

@ -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"]

View file

@ -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
ARG WORKING_BRANCH
ARG WORKING_HASH
ENV BRANCH_ERPLIBRE $WORKING_BRANCH
ENV COMMIT_ERPLIBRE $WORKING_HASH
ENV COMMIT_ERPLIBRE $WORKING_HASH
ENV DOCKER_BUILD=true
RUN cat /etc/os-release
@ -27,27 +34,48 @@ RUN cd ; mkdir -p .bin/ && \
git checkout $COMMIT_ERPLIBRE
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
python -m venv .venv
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
curl https://storage.googleapis.com/git-repo-downloads/repo > ./.venv/repo && \
chmod +x ./.venv/repo
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
RUN cd $ODOO_PREFIX && \
./.venv/bin/pip install --upgrade pip && \
./.venv/bin/pip install poetry==1.3.1 && \
ls -lha /ERPLibre && \
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 install
# Install local npm
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
npm install
# Create link to addons
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 && \
./docker/repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && \
head /etc/odoo/odoo.conf

View file

@ -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"]

View file

@ -2,7 +2,7 @@
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.
@ -114,7 +114,7 @@ And restart docker service. You can delete or move all older locations of docker
# Update docker
When building your docker with script
> make docker_build
> make docker_build_odoo_16
List your docker version
> docker images

View file

@ -79,7 +79,7 @@ case "$1" in
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
sleep 999999
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
# --stop-after-init
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
sleep 999999
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
exec ./.venv/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
else

View file

@ -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"]

View file

@ -1 +0,0 @@
v1.2.20

View file

@ -1 +0,0 @@
3.7.16

View file

@ -1,4 +1,6 @@
#!./.venv/bin/python
#!/usr/bin/env python
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import argparse

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/usr/bin/env python
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import argparse
import psycopg2
import sys

View file

@ -6,6 +6,10 @@ EL_USER="erplibre"
EL_HOME="/${EL_USER}"
EL_HOME_ERPLIBRE="${EL_HOME}/erplibre"
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)
# 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"

View 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>

View 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>

View 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>

View file

@ -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>

View file

@ -20,3 +20,4 @@ xlsxwriter
suds-jurko
vatnumber
dns
pypiwin32

View 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

View 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

View 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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
[build-system]
requires = [ "poetry>=1.1.14",]
requires = [ "poetry>=1.5.0",]
build-backend = "poetry.masonry.api"
[tool.isort]
@ -36,27 +36,28 @@ cachetools = ">=2.0.1"
cerberus = "^1.3.5"
chardet = "5.0.0"
click = "^8.1.7"
cloudflare = "^3.0.1"
cloudflare = "3.0.1"
code-writer = "1.1.1"
colorama = "^0.4.6"
configparser = "5.0.2"
coverage = "7.2.7"
cryptography = "39.0.1"
css-html-prettify = "^2.5.5"
cython = "^3.0.10"
cython = "3.0.10"
ddt = "1.2.0"
decorator = "4.0.10"
dnspython = "2.3.0"
docutils = "0.17.1"
ebaysdk = "2.1.5"
email-validator = "2.0.0"
emoji = "^2.12.1"
emoji = "^2.14.0"
extract-msg = "0.36.1"
factur-x = "^3.1"
feedparser = "6.0.10"
flake8 = "<6.0.0"
formio-data = "^2.0.3"
formio-data = "^2.1.0"
freezegun = "1.2.2"
furo = "2021.2.21b25"
future = "0.18.3"
geojson = "<3.0.0"
gevent = "1.5.0"
@ -90,18 +91,19 @@ oauthlib = "2.1.0"
oca-decorators = "^0.0.1"
odoorpc = "^0.10.1"
ofxparse = "0.16"
olefile = "0.47"
openpyxl = "3.1.3"
openupgradelib = "^3.6.1"
openupgradelib = "^3.7.1"
orjson = "3.6.0"
ovh = "^1.1.2"
ovh = "1.1.2"
paho-mqtt = "^2.1.0"
pandas = "1.3.5"
paramiko = "^3.4.0"
paramiko = "^3.5.0"
passlib = "1.6.5"
pdf2image = "^1.17.0"
pdfminer = "^20191125"
pexpect = "^4.9.0"
phonenumbers = "^8.13.40"
phonenumbers = "^8.13.47"
pillow = "9.3.0"
plotly = "4.1.0"
portalocker = "1.7.1"
@ -122,7 +124,7 @@ pyjsparser = "^2.7.1"
pyjwt = "2.5.0"
pyldap = "2.4.28"
pylint-odoo = "8.0.19"
pymssql = "^2.3.0"
pymssql = "2.3.0"
pymysql = "^1.1.1"
pyotp = "^2.9.0"
pyparsing = "2.1.10"
@ -138,7 +140,7 @@ python-jose = "^3.3.0"
python-json-logger = "0.1.5"
python-keystoneclient = "3.22.0"
python-ldap = "^3.4.4"
python-pptx = "^0.6.23"
python-pptx = "0.6.23"
python-randomword-fr = "^1.0.0"
python-slugify = ">=3.0.2"
python-stdnum = "^1.20"
@ -158,7 +160,8 @@ requests-oauthlib = "1.1.0"
requests-toolbelt = "0.9.1"
responses = "0.23.1"
retrying = "^1.3.4"
sentry-sdk = "^2.8.0"
selenium = "4.11.2"
sentry-sdk = "^2.17.0"
serial = "^0.0.97"
setuptools = "65.5.1"
shapely = "1.8.5"
@ -168,12 +171,12 @@ soappy = "^0.12.22"
sphinx = "3.0"
sphinx-intl = "^2.2.0"
sphinx-rtd-theme = "1.2.2"
sqlalchemy = "^2.0.31"
sqlalchemy = "^2.0.36"
sqlparse = "0.4.4"
statsd = "3.2.1"
toml = "^0.10.2"
tornado = "6.1"
tqdm = "^4.66.4"
tqdm = "^4.66.5"
unidecode = "1.0.22"
unidiff = "^0.7.5"
urllib3 = ">=1.26.13"
@ -193,8 +196,8 @@ xlrd = "1.0.0"
xlsxwriter = "0.9.3"
xlwt = "1.3"
xmlformatter = "^0.2.6"
xmltodict = "^0.13.0"
zeep = "^4.2.1"
xmltodict = "^0.14.2"
zeep = "4.2.1"
zipp = ">=3.6.0"
zxcvbn = "^4.4.28"

View 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"

View 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"

View 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"

View file

@ -24,6 +24,7 @@ factur-x
# For ERPLibre project
RandomWords
selenium==4.11.2
# For testing
websocket-client
@ -59,7 +60,11 @@ webcolors==1.13
openpyxl==3.1.3
# For deployment
cloudflare
cloudflare==3.0.1
# Fix build
pymssql==2.3.0
cython==3.0.10
# For multilang_md.py
click
@ -71,7 +76,7 @@ shapely==1.8.5
# Code generator
mysqlclient==2.1.1
python-pptx
python-pptx==0.6.23
humanize==4.6.0
# pyproj >=3.3.0 is not compatible with python 3.7
@ -89,6 +94,9 @@ numpy==1.21.1
feedparser==6.0.10
geojson<3.0.0
# Fix poetry
olefile==0.47
# asyncio
aioshutil<1.2
tqdm
@ -103,6 +111,11 @@ extract-msg==0.36.1
extract_msg==0.36.1
# 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
responses==0.23.1
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
sqlparse==0.4.4
zeep==4.2.1
# Force version for security update
pyyaml==6.0

View 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

View 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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 configparser
import logging

View file

@ -4,9 +4,18 @@ Color_Off='\033[0m' # Text Reset
# $1 BD NAME
# $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=$?
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
fi

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 configparser
import logging

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 astor

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 os
import subprocess

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 uuid
import subprocess

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 json
import logging

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 csv
import logging

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 subprocess

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 configparser
import getpass
@ -36,7 +39,6 @@ SUGGESTION
parser.add_argument("-d", "--database", help="Database to manipulate.")
parser.add_argument(
"--image",
default="erplibre_base",
help=(
"Image name to restore, from directory image_db, filename without"
" '.zip'. Example, use erplibre_base to use image"
@ -74,6 +76,11 @@ def main():
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
has_config_file = True
config_path = "./config.conf"

View file

@ -1,4 +1,6 @@
#!/usr/bin/env python
#!/usr/bin/env python3
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
from collections import defaultdict
import pymysql

390
script/database/image_db.py Executable file
View 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()

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/usr/bin/env python3
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import requests
r = requests.get(r"https://api.ipify.org")

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -3,6 +3,15 @@
Red='\033[0;31m' # Red
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=""
IS_RELEASE=false
IS_RELEASE_ALPHA=false
@ -10,6 +19,8 @@ IS_RELEASE_BETA=false
ERPLIBRE_DOCKER_BASE="technolibre/erplibre-base"
ERPLIBRE_DOCKER_PROD="technolibre/erplibre"
output_version=""
for arg in "$@"
do
if [ "$arg" == "--no-cache" ]
@ -24,9 +35,35 @@ do
elif [ "$arg" == "--release_beta" ]
then
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
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 ]
then
# Add commit hash when release alpha
@ -44,11 +81,14 @@ fi
ERPLIBRE_DOCKER_BASE_VERSION="${ERPLIBRE_DOCKER_BASE}:${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}"
# 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=$?
if [[ $retVal -ne 0 ]]; then
@ -58,8 +98,15 @@ fi
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
# Build base

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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
@ -48,6 +51,11 @@ def get_config():
default="./docker/Dockerfile.prod.pkg",
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.base_version = f"{args.base}:{args.version}"
args.prod_version = f"{args.prod}:{args.version}"
@ -116,7 +124,8 @@ def edit_docker_prod(config):
def main():
config = get_config()
edit_text(config)
edit_docker_prod(config)
if not config.ignore_edit_docker:
edit_docker_prod(config)
if __name__ == "__main__":

View file

@ -12,8 +12,6 @@ EL_CONFIG_FILE="${EL_HOME}/config.conf"
#EL_MINIMAL_ADDONS="False"
#EL_INSTALL_NGINX="True"
echo -e "* Create server config file"
touch "${EL_CONFIG_FILE}"
echo -e "* Creating server 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 "longpolling_port = ${EL_LONGPOLLING_PORT}\n" >> "${EL_CONFIG_FILE}"
printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME}/addons/addons," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons/OCA_web," >> "${EL_CONFIG_FILE}"
printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/addons," >> "${EL_CONFIG_FILE}"
if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then
printf "${EL_HOME}/addons/CybroOdoo_OpenHRMS," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/ERPLibre_erplibre-3D-printing-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/ERPLibre_erplibre_addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/ERPLibre_erplibre_theme_addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/JayVora-SerpentCS_SerpentCS_Contributions," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/MathBenTech_QuotationRevision," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/MathBenTech_development," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/MathBenTech_erplibre-family-management," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/MathBenTech_odoo-business-spending-management-quebec-canada," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/MathBenTech_scrummer," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-base-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-entertainment-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-git-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-hr-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-partner-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-product-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-project-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-purchase-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-stock-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-survey-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-timesheet-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/Numigi_odoo-web-addons," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-analytic," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-budgeting," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-closing," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-consolidation," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-financial-reporting," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-financial-tools," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-fiscal-rule," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-invoice-reporting," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-invoicing," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-payment," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_account-reconcile," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_apps-store," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_bank-payment," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_bank-statement-import," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_brand," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_business-requirement," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_commission," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_community-data-files," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_connector," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_connector-ecommerce," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_connector-interfaces," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_connector-jira," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_connector-telephony," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_contract," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_credit-control," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_crm," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_currency," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_data-protection," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_ddmrp," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_delivery-carrier," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_donation," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_e-commerce," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_edi," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_event," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_field-service," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_fleet," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_geospatial," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_helpdesk," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_hr," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_interface-github," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_knowledge," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_l10n-canada," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_maintenance," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_management-system," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_manufacture," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_margin-analysis," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_mis-builder," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_multi-company," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_operating-unit," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_partner-contact," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_pos," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_product-attribute," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_product-pack," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_product-variant," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_project," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_project-reporting," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_purchase-workflow," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_queue," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_reporting-engine," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_rma," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_sale-reporting," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_sale-workflow," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_server-auth," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_server-backend," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_server-brand," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_server-env," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_server-tools," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_server-ux," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_social," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_stock-logistics-warehouse," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_storage," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_timesheet," >> ${EL_CONFIG_FILE}
printf "${EL_HOME}/addons/OCA_vertical-association," >> ${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}
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/CybroOdoo_CybroAddons," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/CybroOdoo_OpenHRMS," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/ERPLibre_erplibre_addons," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-analytic," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-budgeting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-closing," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-consolidation," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-financial-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-financial-tools," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-fiscal-rule," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-invoice-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-invoicing," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-payment," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-reconcile," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_apps-store," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-payment," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-statement-import," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_brand," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_business-requirement," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_commission," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_community-data-files," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-ecommerce," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-interfaces," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-jira," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-telephony," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_contract," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_credit-control," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_crm," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_currency," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_data-protection," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_ddmrp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_delivery-carrier," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_donation," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_e-commerce," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_edi," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_event," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_field-service," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_fleet," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_geospatial," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_helpdesk," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_hr," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_interface-github," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_knowledge," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_l10n-canada," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_maintenance," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_management-system," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_manufacture," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_margin-analysis," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_mis-builder," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_multi-company," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_operating-unit," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_partner-contact," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_pos," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-attribute," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-configurator," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-pack," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-variant," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project-agile," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_purchase-workflow," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_queue," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_reporting-engine," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_rma," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_sale-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_sale-workflow," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-auth," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-backend," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-brand," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-env," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-tools," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-ux," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_social," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_stock-logistics-warehouse," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_storage," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_survey," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_timesheet," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-association," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-hotel," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-isp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-travel," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_web," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_website," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_website-cms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_wms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OmniaGit_odooplm," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/camptocamp_odoo-cloud-platform," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/dhongu_deltatech," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/it-projects-llc_saas-addons," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/muk-it_muk_web," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/novacode-nl_odoo-formio," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/odoomates_odooapps," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/openeducat_openeducat_erp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/tegin_medical-fhir," >> "${EL_CONFIG_FILE}"
fi
printf "\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
printf "workers = 2\n" >> "${EL_CONFIG_FILE}"
printf "xmlrpc_interface = 127.0.0.1\n" >> "${EL_CONFIG_FILE}"
printf "proxy_mode = True\n" >> "${EL_CONFIG_FILE}"
else
printf "workers = 0\n" >> "${EL_CONFIG_FILE}"
fi
# 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

View file

@ -1,5 +1,6 @@
#!/usr/bin/env bash
rm -fr ./.repo
rm -rf ./odoo ./addons/* ./script/OCA* ./image_db ./doc/itpp* ./doc/odoo_*
mkdir -p addons/addons
rm -rf ./odoo ./addons*/* ./script/OCA* ./image_db ./doc/itpp* ./doc/odoo_*
rm -rf addons*
#mkdir -p addons/addons

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,6 +1,6 @@
#!./.venv/bin/python
# © 2020 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 copy
import logging

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,6 +1,7 @@
#!./.venv/bin/python
# © 2020 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
#!/usr/bin/env python3
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import os
import webbrowser
from collections import OrderedDict
@ -256,7 +257,11 @@ class GitTool:
"""
lst_filter_group = filter_group.split(",") if filter_group else []
manifest_file = self.get_manifest_file(repo_path=repo_path)
filename = f"{repo_path}{manifest_file}"
if manifest_file.startswith("/home/"):
# This is a absolute path
filename = manifest_file
else:
filename = f"{repo_path}{manifest_file}"
lst_repo = []
with open(filename) as xml:
xml_as_string = xml.read()
@ -395,11 +400,18 @@ class GitTool:
# Exception, ignore addons/OCA_web and root
if repo.get("path") in ["addons/OCA_web", "odoo", "image_db"]:
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 = (
f' printf "${{EL_HOME}}/{repo.get("path")}," >> '
f' printf "${{EL_HOME}}/{update_repo}," >> '
'"${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:
all_lines = file.readlines()
# search place to add/replace lines

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,6 +1,6 @@
#!./.venv/bin/python
# © 2021 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 csv
import logging
@ -106,8 +109,8 @@ def main():
break
die(
not project_path,
f"Missing .iml file into {IDEA_PATH}, wait after Pycharm analyze file to"
" create Python environnement.",
f"Missing .iml file into {IDEA_PATH}, wait after Pycharm analyze file"
" to create Python environnement.",
)
if config.init:
@ -412,6 +415,11 @@ def add_exclude_folder(dct_xml, file_name, config):
)
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]
if lst_exclude_folder:

View file

@ -63,7 +63,7 @@ sudo su - postgres -c "createuser -s ${EL_USER}" 2>/dev/null || true
# Install Dependencies
#--------------------------------------------------
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=$?
if [[ $retVal -ne 0 ]]; then
echo "apt-get debian tool installation error."
@ -90,6 +90,13 @@ if [[ $retVal -ne 0 ]]; then
echo "apt-get pyenv dependencies installation error."
exit 1
fi
# Dependencies for selenium
sudo apt-get install libcairo2-dev python3-dev pkg-config libxt-dev libgirepository1.0-dev -y
retVal=$?
if [[ $retVal -ne 0 ]]; then
echo "apt-get selenium dependencies installation error."
exit 1
fi
echo -e "\n---- Installing nodeJS NPM and rtlcss for LTR support ----"
sudo apt-get update

View file

@ -4,17 +4,17 @@ if [[ "${OSTYPE}" == "linux-gnu" ]]; then
OS=$(lsb_release -si)
VERSION=$(cat /etc/issue)
if [[ "${OS}" == *"Ubuntu"* ]]; then
if [[ "${VERSION}" == Ubuntu\ 18.04* || "${VERSION}" == Ubuntu\ 20.04* || "${VERSION}" == Ubuntu\ 22.04* || "${VERSION}" == Ubuntu\ 22.10* || "${VERSION}" == Ubuntu\ 23.04* || "${VERSION}" == Ubuntu\ 23.10* ]]; then
if [[ "${VERSION}" == Ubuntu\ 18.04* || "${VERSION}" == Ubuntu\ 20.04* || "${VERSION}" == Ubuntu\ 22.04* || "${VERSION}" == Ubuntu\ 22.10* || "${VERSION}" == Ubuntu\ 23.04* || "${VERSION}" == Ubuntu\ 23.10* || "${VERSION}" == Ubuntu\ 24.04* ]]; then
echo "\n---- linux-gnu installation process started ----"
./script/install/install_debian_dependency.sh
else
echo "Your version is not supported, only support 18.04, 20.04 and 22.04 - 23.10 : ${VERSION}"
echo "Your version is not supported, only support 18.04, 20.04 and 22.04 - 24.04 : ${VERSION}"
fi
elif [[ "${OS}" == *"Debian"* ]]; then
./script/install/install_debian_dependency.sh
else
./script/install/install_debian_dependency.sh
echo "Your Linux system is not supported, only support Ubuntu 18.04 or Ubuntu 20.04 or Ubuntu 22.04 - Ubuntu 23.10."
echo "Your Linux system is not supported, only support Ubuntu 18.04 or Ubuntu 20.04 or Ubuntu 22.04 - Ubuntu 23.10 - Ubuntu 24.04 ."
fi
elif [[ "${OSTYPE}" == "darwin"* ]]; then
echo "\n---- Darwin installation process started ----"

View file

@ -22,13 +22,15 @@ Color_Off='\033[0m' # Text Reset
#git submodule update --init
# Generate empty addons if missing
if [[ ! -d "./addons/addons" ]]; then
mkdir -p ./addons/addons
path_addons_addons="./addons.odoo${EL_ODOO_VERSION}/addons"
if [[ ! -d "${path_addons_addons}" ]]; then
mkdir -p "${path_addons_addons}"
fi
PYENV_PATH=~/.pyenv
PYTHON_VERSION=3.7.16
PYENV_VERSION_PATH=${PYENV_PATH}/versions/${PYTHON_VERSION}
# example, 3.7.8 will be 3.7 into PYTHON_VERSION_MAJOR
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
VENV_PATH=./.venv
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
#POETRY_PATH=~/.local/bin/poetry
POETRY_PATH=${VENV_PATH}/bin/poetry
POETRY_VERSION=1.5.1
echo "Python path version home"
echo ${PYENV_VERSION_PATH}
echo "Python path version local"
echo ${LOCAL_PYTHON_EXEC}
if [[ ! -n "${DOCKER_BUILD}" ]]; then
echo "Python path version home"
echo ${PYENV_VERSION_PATH}
echo "Python path version local"
echo ${LOCAL_PYTHON_EXEC}
if [[ ! -d "${PYENV_PATH}" ]]; then
echo -e "\n---- Installing pyenv in ${PYENV_PATH} ----"
# export PYENV_GIT_TAG=v2.3.35
# To change version
# rm ~/.pyenv to uninstall it
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
if [[ ! -d "${PYENV_PATH}" ]]; then
echo -e "\n---- Installing pyenv in ${PYENV_PATH} ----"
# export PYENV_GIT_TAG=v2.3.35
# To change version
# rm ~/.pyenv to uninstall it
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
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
# # Delete directory ~/.poetry and .venv to force update to new version
# echo -e "\n---- Installing poetry ${LOCAL_PYTHON_EXEC} for reliable python package ----"
# # 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
# 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"
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
# Fix broken poetry by installing ignored dependence
# ${VENV_PATH}/bin/pip install vatnumber
# ${VENV_PATH}/bin/pip install suds-jurko
# ${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=$?
if [[ $retVal -ne 0 ]]; then
echo "Poetry installation error."
echo "Poetry installation error with status ${retVal}"
exit 1
fi
# Fix pip installation missing package
${VENV_PATH}/bin/pip install selenium
fi
# Delete artifacts created by pip, cause error in next "poetry install"
@ -134,4 +139,4 @@ rm -rf artifacts
# Link for dev
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/"

View file

@ -5,6 +5,9 @@
Red='\033[0;31m' # Red
Color_Off='\033[0m' # Text Reset
echo ""
echo "RUN ./script/install/install_locally.sh"
echo ""
./script/install/install_locally.sh
retVal=$?
if [[ $retVal -ne 0 ]]; then
@ -13,6 +16,9 @@ if [[ $retVal -ne 0 ]]; then
fi
# Update git-repo
echo ""
echo "RUN ./script/manifest/update_manifest_local_dev.sh"
echo ""
./script/manifest/update_manifest_local_dev.sh
retVal=$?
if [[ $retVal -ne 0 ]]; then

View file

@ -1,5 +1,7 @@
#!./.venv/bin/python
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
#!/usr/bin/env python3
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import asyncio
from collections import deque

View file

@ -7,5 +7,4 @@
# Update git-repo
./.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 --force-sync -v
./.venv/repo sync -v

View file

@ -8,7 +8,13 @@
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
DAEMON_PID=$!
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_DEV} "$@"
./.venv/repo sync -v --force-sync -m ${EL_MANIFEST_DEV}
if [ -L "$EL_MANIFEST_DEV" ]; then
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}

View file

@ -9,7 +9,13 @@
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
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
./.venv/repo sync -v --force-sync -m ${EL_MANIFEST_DEV}
if [ -L "$EL_MANIFEST_DEV" ]; then
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}

View file

@ -9,7 +9,13 @@
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
DAEMON_PID=$!
./.venv/repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --verify HEAD) -m ${EL_MANIFEST_PROD}
./.venv/repo sync -v -m ${EL_MANIFEST_PROD}
if [ -L "$EL_MANIFEST_DEV" ]; then
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}

View file

@ -7,5 +7,4 @@
# Update git-repo
./.venv/repo init -u https://github.com/ERPLibre/ERPLibre -b $(git rev-parse --verify HEAD)
#./.venv/repo sync --force-sync
./.venv/repo sync -v

View file

@ -19,6 +19,9 @@ if [[ "${OSTYPE}" == "linux-gnu" ]]; then
cmd_after=";gnome-terminal --tab -- bash -c 'git status;bash';"
LONGCMD=""
for t in "${paths[@]}"; do
if [[ ! -e "${t}" ]]; then
continue
fi
if $first_iteration; then
LONGCMD+="${cmd_before}${t}${cmd_after_first}"
first_iteration=false

View file

@ -8,6 +8,6 @@ Color_Off='\033[0m' # Text Reset
retVal=$?
if [[ $retVal -ne 0 ]]; then
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
fi

View file

@ -1,4 +1,7 @@
#!./.venv/bin/python
#!/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 ast
import logging
@ -58,18 +61,26 @@ def get_config():
def get_lst_requirements_txt():
# Ignore some item in list
lst = [
a
for a in Path(".").rglob("requirements.[tT][xX][tT]")
if not os.path.dirname(a).startswith(".repo/")
and not os.path.dirname(a).startswith(".venv/")
]
return lst
return get_file_from_glob("requirements.[tT][xX][tT]")
def get_lst_manifest_py():
return list(Path(".").rglob("__manifest__.py"))
return get_file_from_glob("__manifest__.py")
def get_file_from_glob(glob_txt):
with open(".odoo-version") as txt:
odoo_version = txt.read()
# with open(".erplibre-version") as txt:
# erplibre_version = txt.read()
lst_v = []
for a in Path(".").rglob(glob_txt):
a_dirname = os.path.dirname(a)
if a_dirname.startswith(".repo/") or a_dirname.startswith(".venv"):
continue
if a_dirname.startswith("addons") and not a_dirname.startswith(f"addons.odoo{odoo_version}"):
continue
lst_v.append(a)
return lst_v
def combine_requirements(config):
@ -399,7 +410,7 @@ def call_poetry_add_build_dependency():
def get_list_ignored():
with open("./ignore_requirements.txt", "r") as f:
with open("./requirement/ignore_requirements.txt", "r") as f:
lst_ignore_requirements = [a.strip() for a in f.readlines()]
return lst_ignore_requirements

View file

@ -1,5 +1,7 @@
#!./.venv/bin/python
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
#!/usr/bin/env python3
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import json
import requests

View file

@ -1,4 +1,7 @@
#!/usr/bin/env python3
# © 2021-2024 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import sys
import argparse
import web_login

Some files were not shown because too many files have changed in this diff Show more