Merge branch 'develop'

- ADD repository for Odoo 14 and 16
- Refactor TODO with auto-install with guide for developer
- ADD feature pycharm_configuration : fill cvs and ignore setup
  directory
- Refactor makefile by separate in multiple makefile per theme
This commit is contained in:
Mathieu Benoit 2025-05-04 04:55:03 -04:00
commit 60aa747023
20 changed files with 1120 additions and 855 deletions

836
Makefile
View file

@ -5,7 +5,7 @@ LOG_FILE := ./.venv/make_test.log
#############
# ALL
.PHONY: all
all: doc
all: todo
###############
# Detect OS #
@ -30,8 +30,19 @@ else
endif
endif
# Can integrate dedicated makefile of custom project
-include Common.Makefile
# Include all Makefile
-include ./conf/make.code_generator.Makefile
-include ./conf/make.erplibre.Makefile
-include ./conf/make.database.Makefile
-include ./conf/make.docker.Makefile
-include ./conf/make.documentation.Makefile
-include ./conf/make.image_db.Makefile
-include ./conf/make.installation.Makefile
-include ./conf/make.test.Makefile
-include ./conf/make.todo.Makefile
# Include private Makefile
-include make.private.Makefile
# Example for update
.PHONY: custom_run_example
@ -63,24 +74,6 @@ run_prod_client:
echo http://localhost:8069
./run.sh --database prod_client
.PHONY: run_code_generator
run_code_generator:
echo http://localhost:8069
# -$(BROWSER) http://localhost:8069
./run.sh --database code_generator
.PHONY: run_parallel_cg
run_parallel_cg:
parallel < ./conf/list_cg_test.txt
.PHONY: run_parallel_cg_template
run_parallel_cg_template:
parallel < ./conf/list_cg_template_test.txt
.PHONY: run_parallel_cg_migrator
run_parallel_cg_migrator:
parallel < ./conf/list_cg_migrator_test.txt
############
# VERSION #
############
@ -88,86 +81,6 @@ run_parallel_cg_migrator:
version:
./script/version/update_env_version.py
#############
# INSTALL #
#############
.PHONY: install
install:install_os install_dev
.PHONY: install_dev
install_dev:
# ./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/version/update_env_version.py --install
.PHONY: install_production
install_production:
./script/install/install_dev.sh
./script/install/install_production.sh
.PHONY: install_docker_debian
install_docker_debian:
./script/install/install_debian_10_prod_docker.sh
.PHONY: install_docker_ubuntu
install_docker_ubuntu:
./script/install/install_ubuntu_docker.sh
###################
# Environnement #
###################
@ -175,92 +88,6 @@ install_docker_ubuntu:
pyenv_update:
~/.pyenv/bin/pyenv update
#####################
# DB installation #
#####################
.PHONY: db_list
db_list:
./.venv/bin/python3 ./odoo/odoo-bin db --list
.PHONY: db_list_incompatible_database
db_list_incompatible_database:
./.venv/bin/python3 ./odoo/odoo-bin db --list_incompatible_db
.PHONY: db_version
db_version:
./.venv/bin/python3 ./odoo/odoo-bin db --version
.PHONY: db_drop_db_test
db_drop_db_test:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test
.PHONY: db_drop_db_test2
db_drop_db_test2:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test2
.PHONY: db_drop_db_test3
db_drop_db_test3:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test3
.PHONY: db_drop_db_code_generator
db_drop_db_code_generator:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database code_generator
.PHONY: db_drop_db_template
db_drop_db_template:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database template
.PHONY: db_drop_all
db_drop_all:
./script/database/db_drop_all.py
.PHONY: db_drop_test
db_drop_test:
./script/database/db_drop_all.py --test_only
.PHONY: db_clean_cache
db_clean_cache:
./script/database/db_restore.py --clean_cache
.PHONY: db_restore_erplibre_base_db_test
db_restore_erplibre_base_db_test:
./script/database/db_restore.py --database test
.PHONY: db_restore_erplibre_base_db_test_module_test
db_restore_erplibre_base_db_test_module_test:
./script/database/db_restore.py --database test
./script/addons/install_addons.sh test test
.PHONY: db_restore_prod_client
db_restore_prod_client:
# You need to put the database backup in ./image_db/prod_client.zip
./script/database/db_restore.py --database prod_client --image prod_client
./script/database/migrate_prod_to_test.sh prod_client
.PHONY: db_restore_erplibre_base_db_test_image_test
db_restore_erplibre_base_db_test_image_test:
./script/database/db_restore.py --database test --image test
.PHONY: db_restore_erplibre_website_db_test
db_restore_erplibre_website_db_test:
./script/database/db_restore.py --database test --image erplibre_website
.PHONY: db_restore_erplibre_website_chat_crm_db_test
db_restore_erplibre_website_chat_crm_db_test:
./script/database/db_restore.py --database test --image erplibre_website_chat_crm
.PHONY: db_restore_erplibre_ecommerce_base_db_test
db_restore_erplibre_ecommerce_base_db_test:
./script/database/db_restore.py --database test --image erplibre_ecommerce_base
.PHONY: db_restore_erplibre_base_db_code_generator
db_restore_erplibre_base_db_code_generator:
./script/database/db_restore.py --database code_generator
.PHONY: db_restore_erplibre_base_db_template
db_restore_erplibre_base_db_template:
./script/database/db_restore.py --database template
.PHONY: db_create_db_test
db_create_db_test:
./script/make.sh db_drop_db_test
@ -276,465 +103,6 @@ db_test_export:
./script/database/db_restore.py --database test_website_export
./script/addons/install_addons_dev.sh test_website_export demo_website_data
.PHONY: db_test_re_export_website_attachments
db_test_re_export_website_attachments:
./script/database/db_restore.py --database test_website_export
./script/addons/install_addons_dev.sh test_website_export demo_website_attachments_data
# TODO this test fail at uninstall, it remove all files.
# TODO Strategy is to update ir_model_data, change module data and attach to another module like website
# TODO and update all link in website, (or use id of ir.attachment instead of xmlid website.)
./script/addons/uninstall_addons.sh test_website_export demo_website_attachments_data
./script/addons/install_addons_dev.sh test_website_export code_generator_demo_export_website_attachments
########################
# Image installation #
########################
.PHONY: image_db_create_erplibre_code_generator
image_db_create_erplibre_code_generator:
./script/make.sh addons_install_code_generator_basic
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator --restore_image erplibre_code_generator_basic
./script/make.sh addons_install_code_generator_featured
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator --restore_image erplibre_code_generator_featured
./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_all_parallel
image_db_create_all_parallel:
./script/database/db_restore.py --clean_cache
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:
./script/database/db_restore.py --database code_generator_test_website_attachements --image test_website_attachments
# Do your stuff
./.venv/bin/python3 ./odoo/odoo-bin --limit-time-real 999999 --no-http -c config.conf --stop-after-init -d code_generator_test_website_attachements -u all
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator_test_website_attachements --restore_image test_website_attachments
.PHONY: image_diff_base_website
image_diff_base_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 #
#########################
.PHONY: addons_install_code_generator_basic
addons_install_code_generator_basic:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator
.PHONY: addons_install_code_generator_featured
addons_install_code_generator_featured:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_cron,code_generator_hook,code_generator_portal
.PHONY: addons_install_code_generator_full
addons_install_code_generator_full:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_cron,code_generator_hook,code_generator_portal,code_generator_db_servers,code_generator_website_snippet,code_generator_geoengine,code_generator_theme_website,code_generator_website_leaflet
.PHONY: addons_install_code_generator_demo
addons_install_code_generator_demo:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_demo
.PHONY: addons_install_all_code_generator_demo
addons_install_all_code_generator_demo:
./script/database/db_restore.py --database code_generator
# TODO ignore code_generator_demo_internal cause (demo_internal, demo_model_2_internal_view_form) already exists
./script/addons/install_addons_dev.sh code_generator code_generator_demo,code_generator_demo_export_helpdesk,code_generator_demo_export_website,code_generator_demo_internal_inherit,code_generator_demo_portal,code_generator_demo_theme_website,code_generator_demo_website_leaflet,code_generator_demo_website_snippet,code_generator_auto_backup
# Conflict between code_generator_demo_website_multiple_snippet and code_generator_demo_internal_inherit
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_demo_website_multiple_snippet
./script/database/db_restore.py --database code_generator_test_website_attachements --image test_website_attachments
./script/addons/install_addons_dev.sh code_generator_test_website_attachements code_generator_demo_export_website_attachments
#./script/addons/install_addons_dev.sh code_generator code_generator_demo
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_export_helpdesk
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_export_website
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_internal
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_internal_inherit
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_portal
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_theme_website
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_website_leaflet
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_website_snippet
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_website_multiple_snippet
#./script/addons/install_addons_dev.sh code_generator code_generator_auto_backup
.PHONY: addons_install_all_code_generator_template
addons_install_all_code_generator_template:
./script/database/db_restore.py --database template
./script/addons/install_addons_dev.sh template demo_portal,auto_backup,demo_internal_inherit
./script/addons/install_addons_dev.sh template code_generator_template_demo_portal,code_generator_template_demo_sysadmin_cron,code_generator_template_demo_internal_inherit
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_portal -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_portal
#./script/addons/install_addons_dev.sh template demo_portal
#./script/addons/install_addons_dev.sh template code_generator_template_demo_portal
#./script/code_generator/search_class_model.py --quiet -d addons/OCA_server-tools/auto_backup -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_sysadmin_cron
#./script/addons/install_addons_dev.sh template auto_backup
#./script/addons/install_addons_dev.sh template code_generator_template_demo_sysadmin_cron
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_internal -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_internal
#./script/addons/install_addons_dev.sh template demo_internal
#./script/addons/install_addons_dev.sh template code_generator_template_demo_internal
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_internal_inherit -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_internal_inherit
#./script/addons/install_addons_dev.sh template demo_internal_inherit
#./script/addons/install_addons_dev.sh template code_generator_template_demo_internal_inherit
# TODO not working, need to add in test parallel
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_website_snippet -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_website_snippet
#./script/addons/install_addons_dev.sh template demo_website_snippet
#./script/addons/install_addons_dev.sh template code_generator_template_demo_website_snippet
# TODO not working, need to add in test parallel
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_website_multiple_snippet -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_website_multiple_snippet
#./script/addons/install_addons_dev.sh template demo_website_multiple_snippet
#./script/addons/install_addons_dev.sh template code_generator_template_demo_website_multiple_snippet
.PHONY: addons_install_all_generated_demo
addons_install_all_generated_demo:
./script/database/db_restore.py --database template
./script/addons/install_addons_dev.sh template demo_helpdesk_data,demo_website_data,demo_internal,demo_internal_inherit,demo_portal,demo_website_leaflet,demo_website_snippet,auto_backup
./script/addons/install_addons_theme.sh template theme_website_demo_code_generator
#./script/addons/install_addons_dev.sh template demo_helpdesk_data
#./script/addons/install_addons_dev.sh template demo_website_data
#./script/addons/install_addons_dev.sh template demo_internal
#./script/addons/install_addons_dev.sh template demo_internal_inherit
#./script/addons/install_addons_dev.sh template demo_portal
#./script/addons/install_addons_dev.sh template demo_website_leaflet
#./script/addons/install_addons_dev.sh template demo_website_snippet
#./script/addons/install_addons_dev.sh template auto_backup
#./script/addons/install_addons_theme.sh template theme_website_demo_code_generator
##################
# Code generator #
##################
.PHONY: addons_install_code_generator_template_code_generator
addons_install_code_generator_template_code_generator:
./script/database/db_restore.py --database template
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator/code_generator -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_code_generator --with_inherit
./script/maintenance/black.sh ./addons/TechnoLibre_odoo-code-generator-template/code_generator_template_code_generator
./script/addons/install_addons_dev.sh template code_generator
./script/addons/install_addons_dev.sh template code_generator_template_code_generator
./script/git/remote_code_generation_git_compare.py --quiet --git_gui --clear --replace_directory --directory1 ./addons/TechnoLibre_odoo-code-generator-template/code_generator_code_generator --directory2 ./addons/TechnoLibre_odoo-code-generator/code_generator_code_generator
.PHONY: addons_install_code_generator_code_generator
addons_install_code_generator_code_generator:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_code_generator
./script/git/remote_code_generation_git_compare.py --quiet --git_gui --clear --replace_directory --directory1 ./addons/TechnoLibre_odoo-code-generator/code_generator --directory2 ./addons/TechnoLibre_odoo-code-generator-template/code_generator
.PHONY: meld_code_generator_template_code_generator
meld_code_generator_template_code_generator:
./script/make.sh clean
meld ./addons/TechnoLibre_odoo-code-generator/code_generator_code_generator ./addons/TechnoLibre_odoo-code-generator-template/code_generator_code_generator
.PHONY: meld_code_generator_code_generator
meld_code_generator_code_generator:
./script/make.sh clean
meld ./addons/TechnoLibre_odoo-code-generator-template/code_generator ./addons/TechnoLibre_odoo-code-generator/code_generator
########################
# Extra migrator sql #
########################
.PHONY: addons_install_code_generator_mariadb_sql_example_1
addons_install_code_generator_mariadb_sql_example_1:
./script/database/restore_mariadb_sql_example_1.sh
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_portal
./script/addons/install_addons_dev.sh code_generator code_generator_migrator_demo_mariadb_sql_example_1
./script/database/db_restore.py --database template
./script/addons/install_addons_dev.sh template code_generator_portal,demo_mariadb_sql_example_1
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_mariadb_sql_example_1 -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_mariadb_sql_example_1
./script/addons/install_addons_dev.sh template code_generator_template_demo_mariadb_sql_example_1
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_portal
./script/addons/install_addons_dev.sh code_generator code_generator_demo_mariadb_sql_example_1
##########
# test #
##########
.PHONY: test
test:
./script/make.sh clean
-rm ${LOG_FILE}
./script/make.sh test_base |& tee -a ${LOG_FILE}
./script/test/check_result_test.sh ${LOG_FILE}
.PHONY: test_full
test_full:
./script/make.sh clean
-rm ${LOG_FILE}
./script/make.sh test_base |& tee -a ${LOG_FILE}
./script/make.sh test_extra |& tee -a ${LOG_FILE}
#./script/make.sh doc |& tee -a ${LOG_FILE}
./script/test/check_result_test.sh ${LOG_FILE}
.PHONY: test_full_fast
test_full_fast:
./script/make.sh clean
# Need to create a BD to create cache _cache_erplibre_base
./script/database/db_restore.py --database test
#./script/test/run_parallel_test.py --keep_cache
./script/test/run_parallel_test.py
# TODO This test is broken in parallel
#./script/make.sh test_code_generator_hello_world
.PHONY: test_full_fast_debug
test_full_fast_debug:
./script/make.sh clean
# Need to create a BD to create cache _cache_erplibre_base
./script/database/db_restore.py --database test
./script/test/run_parallel_test.py --keep_cache
# TODO This test is broken in parallel
#./script/make.sh test_code_generator_hello_world
.PHONY: test_full_fast_coverage
test_full_fast_coverage:
./script/make.sh clean
# Need to create a BD to create cache _cache_erplibre_base
./script/database/db_restore.py --database test
./.venv/bin/coverage erase
./script/test/run_parallel_test.py --coverage
# TODO This test is broken in parallel
#./script/make.sh test_coverage_code_generator_hello_world
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
# run: make open_test_coverage
.PHONY: test_cg_demo
test_cg_demo:
./script/make.sh clean
# Need to create a BD to create cache _cache_erplibre_base
./script/database/db_restore.py --database test
./.venv/bin/coverage erase
./script/addons/coverage_install_addons_dev.sh test code_generator_demo
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
.PHONY: test_base
test_base:
./script/make.sh test_format
./script/make.sh test_code_generator_hello_world
./script/make.sh test_installation_demo
./script/make.sh test_code_generator_generation
./script/make.sh test_code_generator_generation_template
.PHONY: test_extra
test_extra:
./script/make.sh test_code_generator_migrator_demo_mariadb_sql_example_1
./script/make.sh test_code_generator_template_demo_mariadb_sql_example_1
./script/make.sh test_code_generator_demo_mariadb_sql_example_1
.PHONY: test_format
test_format:
./script/maintenance/black.sh --check ./addons/TechnoLibre_odoo-code-generator/
./script/maintenance/black.sh --check ./addons/TechnoLibre_odoo-code-generator-template/
.PHONY: test_code_generator_hello_world
test_code_generator_hello_world:
./test/code_generator/hello_world.sh
.PHONY: test_coverage_code_generator_hello_world
test_coverage_code_generator_hello_world:
./test/code_generator/coverage_hello_world.sh
.PHONY: test_installation_demo
test_installation_demo:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_demo
./script/addons/install_addons.sh test_demo demo_helpdesk_data,demo_internal,demo_internal_inherit,demo_mariadb_sql_example_1,demo_portal,demo_website_data,demo_website_leaflet,demo_website_snippet
./script/addons/install_addons_theme.sh test_demo theme_website_demo_code_generator
.PHONY: test_code_generator_generation
test_code_generator_generation:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/code_generator/check_git_change_code_generator.sh ./addons/OCA_server-tools/auto_backup
# Multiple
./script/database/db_restore.py --database test_code_generator
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo,code_generator_demo_export_helpdesk,code_generator_demo_export_website,code_generator_demo_internal,code_generator_demo_portal,code_generator_demo_theme_website,code_generator_demo_website_leaflet,code_generator_demo_website_snippet ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo,demo_helpdesk_data,demo_website_data,demo_internal,demo_portal,theme_website_demo_code_generator,demo_website_leaflet,demo_website_snippet
# inherit
# TODO should be in multiple list, need to support it
./script/database/db_restore.py --database test_code_generator
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_internal_inherit ./addons/TechnoLibre_odoo-code-generator-template demo_internal_inherit
# auto_backup
./script/database/db_restore.py --database test_code_generator
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_auto_backup ./addons/OCA_server-tools/auto_backup auto_backup
# Single
#./script/database/db_restore.py --database test_code_generator
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_export_helpdesk ./addons/TechnoLibre_odoo-code-generator-template demo_helpdesk_data
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_export_website ./addons/TechnoLibre_odoo-code-generator-template demo_website_data
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_internal ./addons/TechnoLibre_odoo-code-generator-template demo_internal
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_portal ./addons/TechnoLibre_odoo-code-generator-template demo_portal
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_theme_website ./addons/TechnoLibre_odoo-code-generator-template theme_website_demo_code_generator
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_website_leaflet ./addons/TechnoLibre_odoo-code-generator-template demo_website_leaflet
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_website_snippet ./addons/TechnoLibre_odoo-code-generator-template demo_website_snippet
#./script/database/db_restore.py --database test_code_generator
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_internal_inherit ./addons/TechnoLibre_odoo-code-generator-template demo_internal_inherit
#./script/database/db_restore.py --database test_code_generator
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_auto_backup ./addons/OCA_server-tools/auto_backup auto_backup
.PHONY: test_code_generator_generation_template
test_code_generator_generation_template:
./script/make.sh test_code_generator_code_template_demo_portal
./script/make.sh test_code_generator_code_template_demo_internal_inherit
./script/make.sh test_code_generator_code_template_demo_sysadmin_cron
.PHONY: test_code_generator_code_template_demo_portal
test_code_generator_code_template_demo_portal:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_template
./script/addons/install_addons_dev.sh test_template demo_portal
#./script/addons/install_addons_dev.sh test_template code_generator_template_demo_portal
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_portal -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_portal --with_inherit
./script/code_generator/install_and_test_code_generator.sh test_template code_generator_template_demo_portal ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo_portal
.PHONY: test_code_generator_code_template_demo_internal_inherit
test_code_generator_code_template_demo_internal_inherit:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_template
./script/addons/install_addons_dev.sh test_template demo_internal_inherit
#./script/addons/install_addons_dev.sh test_template code_generator_template_demo_internal_inherit
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_internal_inherit -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_internal_inherit --with_inherit
./script/code_generator/install_and_test_code_generator.sh test_template code_generator_template_demo_internal_inherit ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo_internal_inherit
.PHONY: test_code_generator_code_template_demo_sysadmin_cron
test_code_generator_code_template_demo_sysadmin_cron:
./script/code_generator/check_git_change_code_generator.sh ./addons/OCA_server-tools/auto_backup
./script/database/db_restore.py --database test_template
./script/addons/install_addons_dev.sh test_template auto_backup
#./script/addons/install_addons_dev.sh test_template code_generator_template_demo_sysadmin_cron
./script/code_generator/search_class_model.py --quiet -d addons/OCA_server-tools/auto_backup -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_sysadmin_cron --with_inherit
./script/code_generator/install_and_test_code_generator.sh test_template code_generator_template_demo_sysadmin_cron ./addons/TechnoLibre_odoo-code-generator-template code_generator_auto_backup
.PHONY: test_code_generator_migrator_demo_mariadb_sql_example_1
test_code_generator_migrator_demo_mariadb_sql_example_1:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/restore_mariadb_sql_example_1.sh
./script/database/db_restore.py --database test_code_generator
./script/addons/install_addons_dev.sh test_code_generator code_generator_portal
#./script/addons/install_addons_dev.sh test_code_generator code_generator_migrator_demo_mariadb_sql_example_1
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_migrator_demo_mariadb_sql_example_1 ./addons/TechnoLibre_odoo-code-generator-template demo_mariadb_sql_example_1
.PHONY: test_code_generator_template_demo_mariadb_sql_example_1
test_code_generator_template_demo_mariadb_sql_example_1:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_template
./script/addons/install_addons_dev.sh test_template code_generator_portal,demo_mariadb_sql_example_1
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_mariadb_sql_example_1 -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_mariadb_sql_example_1 --with_inherit
#./script/addons/install_addons_dev.sh test_template code_generator_template_demo_mariadb_sql_example_1
./script/code_generator/install_and_test_code_generator.sh test_template code_generator_template_demo_mariadb_sql_example_1 ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo_mariadb_sql_example_1
.PHONY: test_code_generator_demo_mariadb_sql_example_1
test_code_generator_demo_mariadb_sql_example_1:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_code_generator
./script/addons/install_addons_dev.sh test_code_generator code_generator_portal
#./script/addons/install_addons_dev.sh test_code_generator code_generator_demo_mariadb_sql_example_1
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_mariadb_sql_example_1 ./addons/TechnoLibre_odoo-code-generator-template demo_mariadb_sql_example_1
###############
# Test addons #
###############
.PHONY: test_addons_sale
test_addons_sale:
./.venv/bin/coverage erase
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test_addons_sale
./test.sh -d test_addons_sale --db-filter test_addons_sale -i sale
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m
./.venv/bin/coverage html
./.venv/bin/coverage json
.PHONY: test_addons_helpdesk
test_addons_helpdesk:
./.venv/bin/coverage erase
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test_addons_helpdesk
./test.sh -d test_addons_helpdesk --db-filter test_addons_helpdesk -i helpdesk_mgmt
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m
./.venv/bin/coverage html
./.venv/bin/coverage json
.PHONY: test_addons_code_generator
test_addons_code_generator:
./.venv/bin/coverage erase
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test_addons_code_generator
# TODO missing test in code_generator
./test.sh --dev cg -d test_addons_code_generator --db-filter test_addons_code_generator -i code_generator
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
# run: make open_test_coverage
.PHONY: test_addons_code_generator_code_generator
test_addons_code_generator_code_generator:
# TODO this test only generation, not test
./.venv/bin/coverage erase
./script/database/db_restore.py --database test_addons_code_generator_code_generator
./test.sh --dev cg -d test_addons_code_generator_code_generator --db-filter test_addons_code_generator_code_generator -i code_generator_code_generator
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
# run: make open_test_coverage
.PHONY: test_addons_code_generator_template_code_generator
test_addons_code_generator_template_code_generator:
# TODO this test only generation, not test
./.venv/bin/coverage erase
./script/database/db_restore.py --database test_addons_code_generator_template_code_generator
./test.sh --dev cg -d test_addons_code_generator_template_code_generator --db-filter test_addons_code_generator_template_code_generator -i code_generator
./test.sh --dev cg -d test_addons_code_generator_template_code_generator --db-filter test_addons_code_generator_template_code_generator -i code_generator_template_code_generator
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
# run: make open_test_coverage
.PHONY: open_test_coverage
open_test_coverage:
-$(BROWSER) htmlcov/index.html
# TODO load specific test file : ./run.sh -d test_file --log-level=test --test-enable --stop-after-init --test-file ./.venv/test.py
########
# TODO #
########
.PHONY: todo
todo:
./script/todo/todo.py
#########
# tag #
#########
@ -827,88 +195,6 @@ clean_code_generator_template:
clean_test:
cd addons/OCA_server-tools; git stash; git clean -fd
############
# docker #
############
# run docker
.PHONY: docker_run
docker_run:
docker compose up
.PHONY: docker_run_daemon
docker_run_daemon:
docker compose up -d
.PHONY: docker_stop
docker_stop:
docker compose down
.PHONY: docker_restart_daemon
docker_restart_daemon:
./script/make.sh docker_stop
./script/make.sh docker_run_daemon
.PHONY: docker_show_databases
docker_show_databases:
./script/docker/docker_list_database.sh
.PHONY: docker_show_logs_live
docker_show_logs_live:
docker compose logs -f
.PHONY: docker_show_process
docker_show_process:
docker compose ps
.PHONY: docker_exec_erplibre
docker_exec_erplibre:
./script/docker/docker_exec.sh
.PHONY: docker_exec_erplibre_gen_config
docker_exec_erplibre_gen_config:
./script/docker/docker_gen_config.sh
.PHONY: docker_exec_erplibre_make_test
docker_exec_erplibre_make_test:
./script/docker/docker_make_test.sh
.PHONY: docker_exec_erplibre_repo_show_status
docker_exec_erplibre_repo_show_status:
./script/docker/docker_repo_show_status.sh
# build docker
.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
docker_build_release:
./script/docker/docker_build.sh --release
# build docker release alpha
.PHONY: docker_build_release_alpha
docker_build_release_alpha:
./script/docker/docker_build.sh --release_alpha
# build docker release beta
.PHONY: docker_build_release_beta
docker_build_release_beta:
./script/docker/docker_build.sh --release_beta
# docker clean all
.PHONY: docker_clean_all
docker_clean_all:
docker system prune -a --volumes
##############
# Git repo #
##############
@ -993,12 +279,6 @@ config_gen_all:
./script/git/git_repo_update_group.py
./script/generate_config.sh
# generate config repo code_generator
.PHONY: config_gen_code_generator
config_gen_code_generator:
./script/git/git_repo_update_group.py --group base,code_generator
./script/generate_config.sh
# generate config repo image_db
.PHONY: config_gen_image_db
config_gen_image_db:
@ -1033,93 +313,6 @@ stat_module_evolution_per_year:
stat_module_evolution_per_year_OCA:
./script/statistic/show_evolution_module.py --filter "/OCA/" --before_date "2016-01-01" --more_year 7
###################
# Documentation #
###################
# documentation all
.PHONY: doc
doc:
# ./script/make.sh doc_dev
# ./script/make.sh doc_migration
# ./script/make.sh doc_test
# ./script/make.sh doc_user
# ./script/make.sh doc_markdown
parallel ::: "./script/make.sh doc_dev" "./script/make.sh doc_migration" "./script/make.sh doc_test" "./script/make.sh doc_user" "./script/make.sh doc_markdown"
# documentation clean all
.PHONY: doc_clean
doc_clean:
./script/make.sh doc_clean_dev
./script/make.sh doc_clean_migration
./script/make.sh doc_clean_test
./script/make.sh doc_clean_user
# open documentation all
.PHONY: open_doc_all
open_doc_all:
./script/make.sh open_doc_dev
./script/make.sh open_doc_migration
./script/make.sh open_doc_test
./script/make.sh open_doc_user
# documentation dev
.PHONY: doc_dev
doc_dev:
source ./.venv/bin/activate && make -C doc/itpp-labs_odoo-development/docs html || exit 1
.PHONY: open_doc_dev
open_doc_dev:
-$(BROWSER) doc/itpp-labs_odoo-development/docs/_build/html/index.html
.PHONY: doc_clean_dev
doc_clean_dev:
make -C doc/itpp-labs_odoo-development/docs clean
# documentation migration
.PHONY: doc_migration
doc_migration:
source ./.venv/bin/activate && make -C doc/itpp-labs_odoo-port-docs/docs html || exit 1
.PHONY: open_doc_migration
open_doc_migration:
-$(BROWSER) doc/itpp-labs_odoo-port-docs/docs/_build/html/index.html
.PHONY: doc_clean_migration
doc_clean_migration:
make -C doc/itpp-labs_odoo-port-docs/docs clean
# documentation test
.PHONY: doc_test
doc_test:
source ./.venv/bin/activate && make -C doc/itpp-labs_odoo-test-docs/doc-src html || exit 1
.PHONY: open_doc_test
open_doc_test:
-$(BROWSER) doc/itpp-labs_odoo-test-docs/doc-src/_build/html/index.html
.PHONY: doc_clean_test
doc_clean_test:
make -C doc/itpp-labs_odoo-test-docs/doc-src clean
# documentation user
.PHONY: doc_user
doc_user:
ln -sf ../../odoo/odoo ./doc/odoo_documentation-user/odoo
source ./.venv/bin/activate && make -C doc/odoo_documentation-user html || exit 1
.PHONY: open_doc_user
open_doc_user:
-$(BROWSER) doc/odoo_documentation-user/_build/html/index.html
.PHONY: doc_clean_user
doc_clean_user:
make -C doc/odoo_documentation-user clean
# documentation markdown
.PHONY: doc_markdown
doc_markdown:
./.venv/bin/mmg --verbose --yes ./doc/CODE_GENERATOR.base.md
# Cache
.PHONY: clear_cache
clear_cache:
@ -1135,4 +328,3 @@ pycharm_open:
.PHONY: pycharm_configure
pycharm_configure:
./script/ide/pycharm_configuration.py --init

View file

@ -0,0 +1,330 @@
##################
# CODE GENERATOR #
##################
.PHONY: run_code_generator
run_code_generator:
echo http://localhost:8069
# -$(BROWSER) http://localhost:8069
./run.sh --database code_generator
.PHONY: run_parallel_cg
run_parallel_cg:
parallel < ./conf/list_cg_test.txt
.PHONY: run_parallel_cg_template
run_parallel_cg_template:
parallel < ./conf/list_cg_template_test.txt
.PHONY: run_parallel_cg_migrator
run_parallel_cg_migrator:
parallel < ./conf/list_cg_migrator_test.txt
.PHONY: db_restore_erplibre_base_db_code_generator
db_restore_erplibre_base_db_code_generator:
./script/database/db_restore.py --database code_generator
.PHONY: db_restore_erplibre_base_db_template
db_restore_erplibre_base_db_template:
./script/database/db_restore.py --database template
.PHONY: db_drop_db_code_generator
db_drop_db_code_generator:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database code_generator
.PHONY: db_drop_db_template
db_drop_db_template:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database template
.PHONY: db_test_re_export_website_attachments
db_test_re_export_website_attachments:
./script/database/db_restore.py --database test_website_export
./script/addons/install_addons_dev.sh test_website_export demo_website_attachments_data
# TODO this test fail at uninstall, it remove all files.
# TODO Strategy is to update ir_model_data, change module data and attach to another module like website
# TODO and update all link in website, (or use id of ir.attachment instead of xmlid website.)
./script/addons/uninstall_addons.sh test_website_export demo_website_attachments_data
./script/addons/install_addons_dev.sh test_website_export code_generator_demo_export_website_attachments
#########################
# Addons installation #
#########################
.PHONY: addons_install_code_generator_basic
addons_install_code_generator_basic:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator
.PHONY: addons_install_code_generator_featured
addons_install_code_generator_featured:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_cron,code_generator_hook,code_generator_portal
.PHONY: addons_install_code_generator_full
addons_install_code_generator_full:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_cron,code_generator_hook,code_generator_portal,code_generator_db_servers,code_generator_website_snippet,code_generator_geoengine,code_generator_theme_website,code_generator_website_leaflet
.PHONY: addons_install_code_generator_demo
addons_install_code_generator_demo:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_demo
.PHONY: addons_install_all_code_generator_demo
addons_install_all_code_generator_demo:
./script/database/db_restore.py --database code_generator
# TODO ignore code_generator_demo_internal cause (demo_internal, demo_model_2_internal_view_form) already exists
./script/addons/install_addons_dev.sh code_generator code_generator_demo,code_generator_demo_export_helpdesk,code_generator_demo_export_website,code_generator_demo_internal_inherit,code_generator_demo_portal,code_generator_demo_theme_website,code_generator_demo_website_leaflet,code_generator_demo_website_snippet,code_generator_auto_backup
# Conflict between code_generator_demo_website_multiple_snippet and code_generator_demo_internal_inherit
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_demo_website_multiple_snippet
./script/database/db_restore.py --database code_generator_test_website_attachements --image test_website_attachments
./script/addons/install_addons_dev.sh code_generator_test_website_attachements code_generator_demo_export_website_attachments
#./script/addons/install_addons_dev.sh code_generator code_generator_demo
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_export_helpdesk
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_export_website
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_internal
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_internal_inherit
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_portal
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_theme_website
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_website_leaflet
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_website_snippet
#./script/addons/install_addons_dev.sh code_generator code_generator_demo_website_multiple_snippet
#./script/addons/install_addons_dev.sh code_generator code_generator_auto_backup
.PHONY: addons_install_all_code_generator_template
addons_install_all_code_generator_template:
./script/database/db_restore.py --database template
./script/addons/install_addons_dev.sh template demo_portal,auto_backup,demo_internal_inherit
./script/addons/install_addons_dev.sh template code_generator_template_demo_portal,code_generator_template_demo_sysadmin_cron,code_generator_template_demo_internal_inherit
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_portal -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_portal
#./script/addons/install_addons_dev.sh template demo_portal
#./script/addons/install_addons_dev.sh template code_generator_template_demo_portal
#./script/code_generator/search_class_model.py --quiet -d addons/OCA_server-tools/auto_backup -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_sysadmin_cron
#./script/addons/install_addons_dev.sh template auto_backup
#./script/addons/install_addons_dev.sh template code_generator_template_demo_sysadmin_cron
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_internal -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_internal
#./script/addons/install_addons_dev.sh template demo_internal
#./script/addons/install_addons_dev.sh template code_generator_template_demo_internal
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_internal_inherit -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_internal_inherit
#./script/addons/install_addons_dev.sh template demo_internal_inherit
#./script/addons/install_addons_dev.sh template code_generator_template_demo_internal_inherit
# TODO not working, need to add in test parallel
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_website_snippet -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_website_snippet
#./script/addons/install_addons_dev.sh template demo_website_snippet
#./script/addons/install_addons_dev.sh template code_generator_template_demo_website_snippet
# TODO not working, need to add in test parallel
#./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_website_multiple_snippet -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_website_multiple_snippet
#./script/addons/install_addons_dev.sh template demo_website_multiple_snippet
#./script/addons/install_addons_dev.sh template code_generator_template_demo_website_multiple_snippet
.PHONY: addons_install_all_generated_demo
addons_install_all_generated_demo:
./script/database/db_restore.py --database template
./script/addons/install_addons_dev.sh template demo_helpdesk_data,demo_website_data,demo_internal,demo_internal_inherit,demo_portal,demo_website_leaflet,demo_website_snippet,auto_backup
./script/addons/install_addons_theme.sh template theme_website_demo_code_generator
#./script/addons/install_addons_dev.sh template demo_helpdesk_data
#./script/addons/install_addons_dev.sh template demo_website_data
#./script/addons/install_addons_dev.sh template demo_internal
#./script/addons/install_addons_dev.sh template demo_internal_inherit
#./script/addons/install_addons_dev.sh template demo_portal
#./script/addons/install_addons_dev.sh template demo_website_leaflet
#./script/addons/install_addons_dev.sh template demo_website_snippet
#./script/addons/install_addons_dev.sh template auto_backup
#./script/addons/install_addons_theme.sh template theme_website_demo_code_generator
##################
# Code generator #
##################
.PHONY: addons_install_code_generator_template_code_generator
addons_install_code_generator_template_code_generator:
./script/database/db_restore.py --database template
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator/code_generator -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_code_generator --with_inherit
./script/maintenance/black.sh ./addons/TechnoLibre_odoo-code-generator-template/code_generator_template_code_generator
./script/addons/install_addons_dev.sh template code_generator
./script/addons/install_addons_dev.sh template code_generator_template_code_generator
./script/git/remote_code_generation_git_compare.py --quiet --git_gui --clear --replace_directory --directory1 ./addons/TechnoLibre_odoo-code-generator-template/code_generator_code_generator --directory2 ./addons/TechnoLibre_odoo-code-generator/code_generator_code_generator
.PHONY: addons_install_code_generator_code_generator
addons_install_code_generator_code_generator:
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_code_generator
./script/git/remote_code_generation_git_compare.py --quiet --git_gui --clear --replace_directory --directory1 ./addons/TechnoLibre_odoo-code-generator/code_generator --directory2 ./addons/TechnoLibre_odoo-code-generator-template/code_generator
.PHONY: meld_code_generator_template_code_generator
meld_code_generator_template_code_generator:
./script/make.sh clean
meld ./addons/TechnoLibre_odoo-code-generator/code_generator_code_generator ./addons/TechnoLibre_odoo-code-generator-template/code_generator_code_generator
.PHONY: meld_code_generator_code_generator
meld_code_generator_code_generator:
./script/make.sh clean
meld ./addons/TechnoLibre_odoo-code-generator-template/code_generator ./addons/TechnoLibre_odoo-code-generator/code_generator
########################
# Extra migrator sql #
########################
.PHONY: addons_install_code_generator_mariadb_sql_example_1
addons_install_code_generator_mariadb_sql_example_1:
./script/database/restore_mariadb_sql_example_1.sh
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_portal
./script/addons/install_addons_dev.sh code_generator code_generator_migrator_demo_mariadb_sql_example_1
./script/database/db_restore.py --database template
./script/addons/install_addons_dev.sh template code_generator_portal,demo_mariadb_sql_example_1
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_mariadb_sql_example_1 -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_mariadb_sql_example_1
./script/addons/install_addons_dev.sh template code_generator_template_demo_mariadb_sql_example_1
./script/database/db_restore.py --database code_generator
./script/addons/install_addons_dev.sh code_generator code_generator_portal
./script/addons/install_addons_dev.sh code_generator code_generator_demo_mariadb_sql_example_1
##########
# TEST #
##########
.PHONY: test_code_generator_hello_world
test_code_generator_hello_world:
./test/code_generator/hello_world.sh
.PHONY: test_coverage_code_generator_hello_world
test_coverage_code_generator_hello_world:
./test/code_generator/coverage_hello_world.sh
.PHONY: test_code_generator_generation
test_code_generator_generation:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/code_generator/check_git_change_code_generator.sh ./addons/OCA_server-tools/auto_backup
# Multiple
./script/database/db_restore.py --database test_code_generator
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo,code_generator_demo_export_helpdesk,code_generator_demo_export_website,code_generator_demo_internal,code_generator_demo_portal,code_generator_demo_theme_website,code_generator_demo_website_leaflet,code_generator_demo_website_snippet ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo,demo_helpdesk_data,demo_website_data,demo_internal,demo_portal,theme_website_demo_code_generator,demo_website_leaflet,demo_website_snippet
# inherit
# TODO should be in multiple list, need to support it
./script/database/db_restore.py --database test_code_generator
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_internal_inherit ./addons/TechnoLibre_odoo-code-generator-template demo_internal_inherit
# auto_backup
./script/database/db_restore.py --database test_code_generator
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_auto_backup ./addons/OCA_server-tools/auto_backup auto_backup
# Single
#./script/database/db_restore.py --database test_code_generator
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_export_helpdesk ./addons/TechnoLibre_odoo-code-generator-template demo_helpdesk_data
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_export_website ./addons/TechnoLibre_odoo-code-generator-template demo_website_data
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_internal ./addons/TechnoLibre_odoo-code-generator-template demo_internal
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_portal ./addons/TechnoLibre_odoo-code-generator-template demo_portal
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_theme_website ./addons/TechnoLibre_odoo-code-generator-template theme_website_demo_code_generator
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_website_leaflet ./addons/TechnoLibre_odoo-code-generator-template demo_website_leaflet
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_website_snippet ./addons/TechnoLibre_odoo-code-generator-template demo_website_snippet
#./script/database/db_restore.py --database test_code_generator
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_internal_inherit ./addons/TechnoLibre_odoo-code-generator-template demo_internal_inherit
#./script/database/db_restore.py --database test_code_generator
#./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_auto_backup ./addons/OCA_server-tools/auto_backup auto_backup
.PHONY: test_code_generator_generation_template
test_code_generator_generation_template:
./script/make.sh test_code_generator_code_template_demo_portal
./script/make.sh test_code_generator_code_template_demo_internal_inherit
./script/make.sh test_code_generator_code_template_demo_sysadmin_cron
.PHONY: test_code_generator_code_template_demo_portal
test_code_generator_code_template_demo_portal:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_template
./script/addons/install_addons_dev.sh test_template demo_portal
#./script/addons/install_addons_dev.sh test_template code_generator_template_demo_portal
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_portal -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_portal --with_inherit
./script/code_generator/install_and_test_code_generator.sh test_template code_generator_template_demo_portal ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo_portal
.PHONY: test_code_generator_code_template_demo_internal_inherit
test_code_generator_code_template_demo_internal_inherit:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_template
./script/addons/install_addons_dev.sh test_template demo_internal_inherit
#./script/addons/install_addons_dev.sh test_template code_generator_template_demo_internal_inherit
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_internal_inherit -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_internal_inherit --with_inherit
./script/code_generator/install_and_test_code_generator.sh test_template code_generator_template_demo_internal_inherit ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo_internal_inherit
.PHONY: test_code_generator_code_template_demo_sysadmin_cron
test_code_generator_code_template_demo_sysadmin_cron:
./script/code_generator/check_git_change_code_generator.sh ./addons/OCA_server-tools/auto_backup
./script/database/db_restore.py --database test_template
./script/addons/install_addons_dev.sh test_template auto_backup
#./script/addons/install_addons_dev.sh test_template code_generator_template_demo_sysadmin_cron
./script/code_generator/search_class_model.py --quiet -d addons/OCA_server-tools/auto_backup -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_sysadmin_cron --with_inherit
./script/code_generator/install_and_test_code_generator.sh test_template code_generator_template_demo_sysadmin_cron ./addons/TechnoLibre_odoo-code-generator-template code_generator_auto_backup
.PHONY: test_code_generator_migrator_demo_mariadb_sql_example_1
test_code_generator_migrator_demo_mariadb_sql_example_1:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/restore_mariadb_sql_example_1.sh
./script/database/db_restore.py --database test_code_generator
./script/addons/install_addons_dev.sh test_code_generator code_generator_portal
#./script/addons/install_addons_dev.sh test_code_generator code_generator_migrator_demo_mariadb_sql_example_1
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_migrator_demo_mariadb_sql_example_1 ./addons/TechnoLibre_odoo-code-generator-template demo_mariadb_sql_example_1
.PHONY: test_code_generator_template_demo_mariadb_sql_example_1
test_code_generator_template_demo_mariadb_sql_example_1:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_template
./script/addons/install_addons_dev.sh test_template code_generator_portal,demo_mariadb_sql_example_1
./script/code_generator/search_class_model.py --quiet -d addons/TechnoLibre_odoo-code-generator-template/demo_mariadb_sql_example_1 -t addons/TechnoLibre_odoo-code-generator-template/code_generator_template_demo_mariadb_sql_example_1 --with_inherit
#./script/addons/install_addons_dev.sh test_template code_generator_template_demo_mariadb_sql_example_1
./script/code_generator/install_and_test_code_generator.sh test_template code_generator_template_demo_mariadb_sql_example_1 ./addons/TechnoLibre_odoo-code-generator-template code_generator_demo_mariadb_sql_example_1
.PHONY: test_code_generator_demo_mariadb_sql_example_1
test_code_generator_demo_mariadb_sql_example_1:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_code_generator
./script/addons/install_addons_dev.sh test_code_generator code_generator_portal
#./script/addons/install_addons_dev.sh test_code_generator code_generator_demo_mariadb_sql_example_1
./script/code_generator/install_and_test_code_generator.sh test_code_generator code_generator_demo_mariadb_sql_example_1 ./addons/TechnoLibre_odoo-code-generator-template demo_mariadb_sql_example_1
.PHONY: test_addons_code_generator
test_addons_code_generator:
./.venv/bin/coverage erase
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test_addons_code_generator
# TODO missing test in code_generator
./test.sh --dev cg -d test_addons_code_generator --db-filter test_addons_code_generator -i code_generator
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
# run: make open_test_coverage
.PHONY: test_addons_code_generator_code_generator
test_addons_code_generator_code_generator:
# TODO this test only generation, not test
./.venv/bin/coverage erase
./script/database/db_restore.py --database test_addons_code_generator_code_generator
./test.sh --dev cg -d test_addons_code_generator_code_generator --db-filter test_addons_code_generator_code_generator -i code_generator_code_generator
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
# run: make open_test_coverage
.PHONY: test_addons_code_generator_template_code_generator
test_addons_code_generator_template_code_generator:
# TODO this test only generation, not test
./.venv/bin/coverage erase
./script/database/db_restore.py --database test_addons_code_generator_template_code_generator
./test.sh --dev cg -d test_addons_code_generator_template_code_generator --db-filter test_addons_code_generator_template_code_generator -i code_generator
./test.sh --dev cg -d test_addons_code_generator_template_code_generator --db-filter test_addons_code_generator_template_code_generator -i code_generator_template_code_generator
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
# run: make open_test_coverage
# generate config repo code_generator
.PHONY: config_gen_code_generator
config_gen_code_generator:
./script/git/git_repo_update_group.py --group base,code_generator
./script/generate_config.sh

View file

@ -0,0 +1,74 @@
############
# DATABASE #
############
.PHONY: db_list
db_list:
./.venv/bin/python3 ./odoo/odoo-bin db --list
.PHONY: db_list_incompatible_database
db_list_incompatible_database:
./.venv/bin/python3 ./odoo/odoo-bin db --list_incompatible_db
.PHONY: db_version
db_version:
./.venv/bin/python3 ./odoo/odoo-bin db --version
.PHONY: db_drop_db_test
db_drop_db_test:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test
.PHONY: db_drop_db_test2
db_drop_db_test2:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test2
.PHONY: db_drop_db_test3
db_drop_db_test3:
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test3
.PHONY: db_drop_all
db_drop_all:
./script/database/db_drop_all.py
.PHONY: db_drop_test
db_drop_test:
./script/database/db_drop_all.py --test_only
.PHONY: db_clean_cache
db_clean_cache:
./script/database/db_restore.py --clean_cache
.PHONY: db_restore_erplibre_base_db_test
db_restore_erplibre_base_db_test:
./script/database/db_restore.py --database test
.PHONY: db_erplibre_base_db_test_update_all
db_erplibre_base_db_test_update_all:
./script/addons/update_addons_all.sh test
.PHONY: db_restore_erplibre_base_db_test_module_test
db_restore_erplibre_base_db_test_module_test:
./script/database/db_restore.py --database test
./script/addons/install_addons.sh test test
.PHONY: db_restore_prod_client
db_restore_prod_client:
# You need to put the database backup in ./image_db/prod_client.zip
./script/database/db_restore.py --database prod_client --image prod_client
./script/database/migrate_prod_to_test.sh prod_client
.PHONY: db_restore_erplibre_base_db_test_image_test
db_restore_erplibre_base_db_test_image_test:
./script/database/db_restore.py --database test --image test
.PHONY: db_restore_erplibre_website_db_test
db_restore_erplibre_website_db_test:
./script/database/db_restore.py --database test --image erplibre_website
.PHONY: db_restore_erplibre_website_chat_crm_db_test
db_restore_erplibre_website_chat_crm_db_test:
./script/database/db_restore.py --database test --image erplibre_website_chat_crm
.PHONY: db_restore_erplibre_ecommerce_base_db_test
db_restore_erplibre_ecommerce_base_db_test:
./script/database/db_restore.py --database test --image erplibre_ecommerce_base

82
conf/make.docker.Makefile Normal file
View file

@ -0,0 +1,82 @@
##########
# DOCKER #
##########
# run docker
.PHONY: docker_run
docker_run:
docker compose up
.PHONY: docker_run_daemon
docker_run_daemon:
docker compose up -d
.PHONY: docker_stop
docker_stop:
docker compose down
.PHONY: docker_restart_daemon
docker_restart_daemon:
./script/make.sh docker_stop
./script/make.sh docker_run_daemon
.PHONY: docker_show_databases
docker_show_databases:
./script/docker/docker_list_database.sh
.PHONY: docker_show_logs_live
docker_show_logs_live:
docker compose logs -f
.PHONY: docker_show_process
docker_show_process:
docker compose ps
.PHONY: docker_exec_erplibre
docker_exec_erplibre:
./script/docker/docker_exec.sh
.PHONY: docker_exec_erplibre_gen_config
docker_exec_erplibre_gen_config:
./script/docker/docker_gen_config.sh
.PHONY: docker_exec_erplibre_make_test
docker_exec_erplibre_make_test:
./script/docker/docker_make_test.sh
.PHONY: docker_exec_erplibre_repo_show_status
docker_exec_erplibre_repo_show_status:
./script/docker/docker_repo_show_status.sh
# build docker
.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
docker_build_release:
./script/docker/docker_build.sh --release
# build docker release alpha
.PHONY: docker_build_release_alpha
docker_build_release_alpha:
./script/docker/docker_build.sh --release_alpha
# build docker release beta
.PHONY: docker_build_release_beta
docker_build_release_beta:
./script/docker/docker_build.sh --release_beta
# docker clean all
.PHONY: docker_clean_all
docker_clean_all:
docker system prune -a --volumes

View file

@ -0,0 +1,87 @@
#################
# DOCUMENTATION #
#################
# documentation all
.PHONY: doc
doc:
# ./script/make.sh doc_dev
# ./script/make.sh doc_migration
# ./script/make.sh doc_test
# ./script/make.sh doc_user
# ./script/make.sh doc_markdown
parallel ::: "./script/make.sh doc_dev" "./script/make.sh doc_migration" "./script/make.sh doc_test" "./script/make.sh doc_user" "./script/make.sh doc_markdown"
# documentation clean all
.PHONY: doc_clean
doc_clean:
./script/make.sh doc_clean_dev
./script/make.sh doc_clean_migration
./script/make.sh doc_clean_test
./script/make.sh doc_clean_user
# open documentation all
.PHONY: open_doc_all
open_doc_all:
./script/make.sh open_doc_dev
./script/make.sh open_doc_migration
./script/make.sh open_doc_test
./script/make.sh open_doc_user
# documentation dev
.PHONY: doc_dev
doc_dev:
source ./.venv/bin/activate && make -C doc/itpp-labs_odoo-development/docs html || exit 1
.PHONY: open_doc_dev
open_doc_dev:
-$(BROWSER) doc/itpp-labs_odoo-development/docs/_build/html/index.html
.PHONY: doc_clean_dev
doc_clean_dev:
make -C doc/itpp-labs_odoo-development/docs clean
# documentation migration
.PHONY: doc_migration
doc_migration:
source ./.venv/bin/activate && make -C doc/itpp-labs_odoo-port-docs/docs html || exit 1
.PHONY: open_doc_migration
open_doc_migration:
-$(BROWSER) doc/itpp-labs_odoo-port-docs/docs/_build/html/index.html
.PHONY: doc_clean_migration
doc_clean_migration:
make -C doc/itpp-labs_odoo-port-docs/docs clean
# documentation test
.PHONY: doc_test
doc_test:
source ./.venv/bin/activate && make -C doc/itpp-labs_odoo-test-docs/doc-src html || exit 1
.PHONY: open_doc_test
open_doc_test:
-$(BROWSER) doc/itpp-labs_odoo-test-docs/doc-src/_build/html/index.html
.PHONY: doc_clean_test
doc_clean_test:
make -C doc/itpp-labs_odoo-test-docs/doc-src clean
# documentation user
.PHONY: doc_user
doc_user:
ln -sf ../../odoo/odoo ./doc/odoo_documentation-user/odoo
source ./.venv/bin/activate && make -C doc/odoo_documentation-user html || exit 1
.PHONY: open_doc_user
open_doc_user:
-$(BROWSER) doc/odoo_documentation-user/_build/html/index.html
.PHONY: doc_clean_user
doc_clean_user:
make -C doc/odoo_documentation-user clean
# documentation markdown
.PHONY: doc_markdown
doc_markdown:
./.venv/bin/mmg --verbose --yes ./doc/CODE_GENERATOR.base.md

View file

@ -0,0 +1,44 @@
########################
# Image installation #
########################
.PHONY: image_db_create_erplibre_code_generator
image_db_create_erplibre_code_generator:
./script/make.sh addons_install_code_generator_basic
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator --restore_image erplibre_code_generator_basic
./script/make.sh addons_install_code_generator_featured
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator --restore_image erplibre_code_generator_featured
./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_all_parallel
image_db_create_all_parallel:
./script/database/db_restore.py --clean_cache
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:
./script/database/db_restore.py --database code_generator_test_website_attachements --image test_website_attachments
# Do your stuff
./.venv/bin/python3 ./odoo/odoo-bin --limit-time-real 999999 --no-http -c config.conf --stop-after-init -d code_generator_test_website_attachements -u all
./.venv/bin/python3 ./odoo/odoo-bin db --backup --database code_generator_test_website_attachements --restore_image test_website_attachments
.PHONY: image_diff_base_website
image_diff_base_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

View file

@ -0,0 +1,80 @@
###########
# INSTALL #
###########
.PHONY: install
install:install_os install_dev
.PHONY: install_dev
install_dev:
# ./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/version/update_env_version.py --install
.PHONY: install_production
install_production:
./script/install/install_dev.sh
./script/install/install_production.sh
.PHONY: install_docker_debian
install_docker_debian:
./script/install/install_debian_10_prod_docker.sh
.PHONY: install_docker_ubuntu
install_docker_ubuntu:
./script/install/install_ubuntu_docker.sh

121
conf/make.test.Makefile Normal file
View file

@ -0,0 +1,121 @@
########
# TEST #
########
# TODO load specific test file : ./run.sh -d test_file --log-level=test --test-enable --stop-after-init --test-file ./.venv/test.py
.PHONY: open_test_coverage
open_test_coverage:
-$(BROWSER) htmlcov/index.html
.PHONY: test
test:
./script/make.sh clean
-rm ${LOG_FILE}
./script/make.sh test_base |& tee -a ${LOG_FILE}
./script/test/check_result_test.sh ${LOG_FILE}
.PHONY: test_full
test_full:
./script/make.sh clean
-rm ${LOG_FILE}
./script/make.sh test_base |& tee -a ${LOG_FILE}
./script/make.sh test_extra |& tee -a ${LOG_FILE}
#./script/make.sh doc |& tee -a ${LOG_FILE}
./script/test/check_result_test.sh ${LOG_FILE}
.PHONY: test_full_fast
test_full_fast:
./script/make.sh clean
# Need to create a BD to create cache _cache_erplibre_base
./script/database/db_restore.py --database test
#./script/test/run_parallel_test.py --keep_cache
./script/test/run_parallel_test.py
# TODO This test is broken in parallel
#./script/make.sh test_code_generator_hello_world
.PHONY: test_full_fast_debug
test_full_fast_debug:
./script/make.sh clean
# Need to create a BD to create cache _cache_erplibre_base
./script/database/db_restore.py --database test
./script/test/run_parallel_test.py --keep_cache
# TODO This test is broken in parallel
#./script/make.sh test_code_generator_hello_world
.PHONY: test_full_fast_coverage
test_full_fast_coverage:
./script/make.sh clean
# Need to create a BD to create cache _cache_erplibre_base
./script/database/db_restore.py --database test
./.venv/bin/coverage erase
./script/test/run_parallel_test.py --coverage
# TODO This test is broken in parallel
#./script/make.sh test_coverage_code_generator_hello_world
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
# run: make open_test_coverage
.PHONY: test_cg_demo
test_cg_demo:
./script/make.sh clean
# Need to create a BD to create cache _cache_erplibre_base
./script/database/db_restore.py --database test
./.venv/bin/coverage erase
./script/addons/coverage_install_addons_dev.sh test code_generator_demo
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage html --include="addons/TechnoLibre_odoo-code-generator/*"
./.venv/bin/coverage json --include="addons/TechnoLibre_odoo-code-generator/*"
.PHONY: test_base
test_base:
./script/make.sh test_format
./script/make.sh test_code_generator_hello_world
./script/make.sh test_installation_demo
./script/make.sh test_code_generator_generation
./script/make.sh test_code_generator_generation_template
.PHONY: test_extra
test_extra:
./script/make.sh test_code_generator_migrator_demo_mariadb_sql_example_1
./script/make.sh test_code_generator_template_demo_mariadb_sql_example_1
./script/make.sh test_code_generator_demo_mariadb_sql_example_1
.PHONY: test_format
test_format:
./script/maintenance/black.sh --check ./addons/TechnoLibre_odoo-code-generator/
./script/maintenance/black.sh --check ./addons/TechnoLibre_odoo-code-generator-template/
.PHONY: test_installation_demo
test_installation_demo:
./script/code_generator/check_git_change_code_generator.sh ./addons/TechnoLibre_odoo-code-generator-template
./script/database/db_restore.py --database test_demo
./script/addons/install_addons.sh test_demo demo_helpdesk_data,demo_internal,demo_internal_inherit,demo_mariadb_sql_example_1,demo_portal,demo_website_data,demo_website_leaflet,demo_website_snippet
./script/addons/install_addons_theme.sh test_demo theme_website_demo_code_generator
###############
# Test addons #
###############
.PHONY: test_addons_sale
test_addons_sale:
./.venv/bin/coverage erase
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test_addons_sale
./test.sh -d test_addons_sale --db-filter test_addons_sale -i sale
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m
./.venv/bin/coverage html
./.venv/bin/coverage json
.PHONY: test_addons_helpdesk
test_addons_helpdesk:
./.venv/bin/coverage erase
./.venv/bin/python3 ./odoo/odoo-bin db --drop --database test_addons_helpdesk
./test.sh -d test_addons_helpdesk --db-filter test_addons_helpdesk -i helpdesk_mgmt
./.venv/bin/coverage combine -a
./.venv/bin/coverage report -m
./.venv/bin/coverage html
./.venv/bin/coverage json

7
conf/make.todo.Makefile Normal file
View file

@ -0,0 +1,7 @@
########
# TODO #
########
.PHONY: todo
todo:
./script/todo/todo.py

View file

@ -29,4 +29,4 @@ run_robotlibre,./odoo/odoo-bin,--limit-time-real 999999 -c config.conf -d robotl
run_robotlibre_update,./odoo/odoo-bin,--limit-time-real 999999 --no-http --stop-after-init --dev cg -d robotlibre -i erplibre_devops -u erplibre_devops,robotlibre,
run_robotlibre_generate,./script/code_generator/new_project.py,-f -d ./addons/ERPLibre_erplibre_addons -m erplibre_devops,robotlibre,
run_todo,./script/todo/todo.py,,TODO,
pycharm_configuration_init,./script/ide/pycharm_configuration.py,--init,IDE,

1 name script_path parameters folder default
29 run_robotlibre_update ./odoo/odoo-bin --limit-time-real 999999 --no-http --stop-after-init --dev cg -d robotlibre -i erplibre_devops -u erplibre_devops robotlibre
30 run_robotlibre_generate ./script/code_generator/new_project.py -f -d ./addons/ERPLibre_erplibre_addons -m erplibre_devops robotlibre
31 run_todo ./script/todo/todo.py TODO
32 pycharm_configuration_init ./script/ide/pycharm_configuration.py --init IDE

View file

@ -1,7 +1,7 @@
version: "3.3"
services:
ERPLibre:
image: technolibre/erplibre:1.5.0_odoo_14.0_29e1957
image: technolibre/erplibre:1.6.0_odoo_14.0_2a8af84
ports:
- 8069:8069
- 8071:8071

View file

@ -10,6 +10,7 @@
<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="cetmix" fetch="https://github.com/cetmix/"/>
<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/"/>
@ -45,6 +46,7 @@
<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="cetmix-tower.git" path="addons.odoo14.0/cetmix_cetmix-tower" remote="cetmix" 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"/>
@ -118,7 +120,7 @@
<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="ERPLibre" revision="14.0_dev" groups="addons"/>
<project name="project.git" path="addons.odoo14.0/OCA_project" remote="OCA" groups="addons"/>
<project name="project.git" path="addons.odoo14.0/OCA_project" remote="ERPLibre" revision="14.0_dev" 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"/>

View file

@ -10,6 +10,7 @@
<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="cetmix" fetch="https://github.com/cetmix/"/>
<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/"/>
@ -46,6 +47,8 @@
<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="calendar.git" path="addons.odoo16.0/OCA_calendar" remote="OCA" groups="addons"/>
<project name="cetmix-tower.git" path="addons.odoo16.0/cetmix_cetmix-tower" remote="cetmix" 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"/>
@ -60,6 +63,7 @@
<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="development.git" path="addons.odoo16.0/MathBenTech_development" remote="MathBenTech" groups="addons,base"/>
<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"/>

View file

@ -7,14 +7,12 @@ import logging
import os
import sys
import yaml
new_path = os.path.normpath(
os.path.join(os.path.dirname(__file__), "..", "..")
)
sys.path.append(new_path)
from script.git.git_tool import GitTool
_logger = logging.getLogger(__name__)
@ -25,7 +23,6 @@ def get_config():
:return: dict of config file settings and command line arguments
"""
config = GitTool.get_project_config()
# TODO update description
parser = argparse.ArgumentParser(

View file

@ -29,6 +29,7 @@ if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then
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}/MathBenTech_development," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/MathBenTech_odoo-business-spending-management-quebec-canada," >> "${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}"
@ -46,6 +47,7 @@ if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then
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_calendar," >> "${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}"
@ -117,6 +119,7 @@ if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then
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}/cetmix_cetmix-tower," >> "${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}"

View file

@ -20,7 +20,8 @@ CST_EL_GITHUB_TOKEN = "EL_GITHUB_TOKEN"
DEFAULT_PROJECT_NAME = "ERPLibre"
DEFAULT_WEBSITE = "erplibre.ca"
DEFAULT_REMOTE_URL = "https://github.com/ERPLibre/ERPLibre.git"
DEFAULT_BRANCH = "12.0"
with open(".odoo-version", "r") as f:
DEFAULT_BRANCH = f.readline()
class Struct(object):

View file

@ -12,6 +12,13 @@ import sys
import xmltodict
new_path = os.path.normpath(
os.path.join(os.path.dirname(__file__), "..", "..")
)
sys.path.append(new_path)
from script.git.git_tool import GitTool
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
_logger = logging.getLogger(__name__)
@ -20,15 +27,9 @@ PROJECT_NAME = os.path.basename(os.getcwd())
IDEA_PATH = "./.idea"
IDEA_MISC = os.path.join(IDEA_PATH, "misc.xml")
IDEA_WORKSPACE = os.path.join(IDEA_PATH, "workspace.xml")
VCS_WORKSPACE = os.path.join(IDEA_PATH, "vcs.xml")
PATH_EXCLUDE_FOLDER = "./conf/pycharm_exclude_folder.txt"
if os.path.isfile(PATH_EXCLUDE_FOLDER):
with open(PATH_EXCLUDE_FOLDER) as txt:
txt_read = txt.read()
LST_EXCLUDE_FOLDER = txt_read.strip().split("\n")
else:
LST_EXCLUDE_FOLDER = []
PATH_DEFAULT_CONFIGURATION = "./conf/pycharm_default_configuration.csv"
@ -95,8 +96,6 @@ def main():
config = get_config()
_logger.info(f"Work on directory {os.getcwd()}")
# TODO modifier vcs.xml pour le mapping des répertoires git
die(
not os.path.isdir(IDEA_PATH),
f"Missing {IDEA_PATH} path, are you sure you run this script at root"
@ -135,6 +134,14 @@ def main():
IDEA_WORKSPACE, add_configuration, "workspace", config
)
die(
not os.path.isfile(VCS_WORKSPACE),
f"Missing {VCS_WORKSPACE} file, be sure Pycharm open a project to"
" your workspace.",
)
has_execute = True
read_xml_and_execute(VCS_WORKSPACE, add_version_control, "vcs", config)
if not has_execute:
_logger.info("Nothing to do")
@ -161,6 +168,46 @@ def read_xml_and_execute(file_name, cb, name, config):
_logger.info(f"No change '{name}'.")
def add_version_control(dct_xml, file_name, config):
# The file .idea/vcs.xml need to be generated before
git_tool = GitTool()
lst_repo = git_tool.get_repo_info_manifest_xml()
lst_mapping_directory = []
# Create a mapping of git directory from ERPLibre
for dct_repo in lst_repo:
relative_path = dct_repo.get("path")
if not relative_path:
continue
vcs_path = os.path.join("$PROJECT_DIR$", relative_path)
lst_mapping_directory.append(vcs_path)
dct_component = dct_xml.get("project", {}).get("component", {})
lst_mapping = dct_component.get("mapping", [])
if not lst_mapping:
print(
"By default, need 1 value, the actual ERPLibre project, or create"
" it manually ;-)"
)
return False
# Detect difference
if type(lst_mapping) is dict:
# Transform it into list for multiple mapping
lst_mapping = [lst_mapping]
dct_component["mapping"] = lst_mapping
for dct_mapping in lst_mapping:
directory = dct_mapping.get("@directory")
if directory in lst_mapping_directory:
lst_mapping_directory.remove(directory)
# Update difference
if lst_mapping_directory:
for mapping_directory in lst_mapping_directory:
dct_mapping = {"@directory": mapping_directory, "@vcs": "Git"}
lst_mapping.append(dct_mapping)
return True
return False
def add_configuration(dct_xml, file_name, config):
has_change = False
dct_project = dct_xml.get("project")
@ -382,6 +429,35 @@ def add_configuration(dct_xml, file_name, config):
return has_change
def get_lst_exclude_folder():
if os.path.isfile(PATH_EXCLUDE_FOLDER):
with open(PATH_EXCLUDE_FOLDER) as txt:
txt_read = txt.read()
lst_exclude_folder = txt_read.strip().split("\n")
else:
lst_exclude_folder = []
# 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:])
# Dynamic exclude
lst_exclude_from_repo = ["setup"]
git_tool = GitTool()
lst_repo = git_tool.get_repo_info_manifest_xml()
# Create a mapping of git directory from ERPLibre
for dct_repo in lst_repo:
relative_path = dct_repo.get("path")
for exclude_from_repo in lst_exclude_from_repo:
path_to_check = os.path.join(relative_path, exclude_from_repo)
if os.path.isdir(path_to_check):
lst_exclude_folder.append(path_to_check)
return lst_exclude_folder
def add_exclude_folder(dct_xml, file_name, config):
has_change = False
dct_module = dct_xml.get("module")
@ -415,12 +491,10 @@ 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]
lst_exclude_item_raw = get_lst_exclude_folder()
lst_exclude_item = [
f"file://$MODULE_DIR$/{a}" for a in lst_exclude_item_raw
]
if lst_exclude_folder:
if type(lst_exclude_folder) is list:

5
script/todo/source_todo.sh Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash
source .venv/bin/activate
./script/todo/todo.py

View file

@ -20,5 +20,18 @@
"prompt_description": "Ouvrir ERPLibre avec TODO \uD83E\uDD16",
"command": "./.venv/bin/python ./script/selenium/web_login.py"
}
],
"update_from_makefile": [
{
"prompt_description": "Update all erplibre_base on database test",
"makefile_cmd": "db_erplibre_base_db_test_update_all",
"database": "test"
}
],
"code_from_makefile": [
{
"prompt_description": "Show code status",
"makefile_cmd": "repo_show_status"
}
]
}

View file

@ -4,13 +4,83 @@ import getpass
import json
import logging
import os
import sys
import time
import subprocess
try:
import tkinter as tk
from tkinter import filedialog
import click
import openai
from pykeepass import PyKeePass
except ModuleNotFoundError as e:
# TODO auto-detect gnome-terminal, or choose another.
if os.path.exists(".venv"):
print("You forgot to activate source \nsource ./.venv/bin/activate")
time.sleep(0.5)
subprocess.run(
"gnome-terminal -- bash -c './script/todo/source_todo.sh'",
shell=True,
executable="/bin/bash",
)
else:
first_installation_input = (
input(
"First installation? This will process system installation"
" before (Y/N): "
)
.strip()
.upper()
)
if first_installation_input == "Y":
subprocess.run(
"gnome-terminal -- bash -c"
" './script/version/update_env_version.py --install;bash'",
shell=True,
executable="/bin/bash",
)
print("Wait after OS installation before continue.")
# First detect pycharm, need to be open before installation and close to increase speed
result = subprocess.run(
["which", "pycharm"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
)
if result.returncode == 0 and not os.path.exists(".idea"):
pycharm_configuration_input = (
input("Open Pycharm? (Y/N): ").strip().upper()
)
if pycharm_configuration_input == "Y":
subprocess.run(
"gnome-terminal -- bash -c 'pycharm .'",
shell=True,
executable="/bin/bash",
)
print(
"Close Pycharm when processing is done before continue"
" this guide."
)
# Propose Odoo installation
# TODO detect last version supported
odoo_installation_input = (
input("Install Odoo 16? (Y/N): ").strip().upper()
)
if odoo_installation_input == "Y":
subprocess.run(
"gnome-terminal -- bash -c 'make install_odoo_16;bash'",
shell=True,
executable="/bin/bash",
)
print("Wait after installation and open projects by terminal.")
print("make open_terminal")
else:
print("Nothing to do, you need a fresh installation to continue.")
sys.exit(0)
sys.exit(1)
# TODO implement urwid to improve text user interface
# import urwid
@ -31,8 +101,8 @@ class TODO:
print("Ouverture de TODO en cours ...")
print("🤖 => Entre tes directives par son chiffre et fait Entrée!")
help_info = """Commande :
[1] Question
[2] Execute
[1] Execute
[2] Question
[3] Fork - Ouvre TODO 🤖 dans une nouvelle tabulation
[0] Quitter
"""
@ -43,9 +113,9 @@ class TODO:
if status == "0":
break
elif status == "1":
self.execute_prompt_ia()
elif status == "2":
self.prompt_execute()
elif status == "2":
self.execute_prompt_ia()
elif status == "3":
cmd = (
f"gnome-terminal --tab -- bash -c 'source"
@ -136,8 +206,10 @@ class TODO:
def prompt_execute(self):
help_info = """Commande :
[1] Gérer une instance
[2] Fonction - Démonstration des fonctions développées
[1] RUN Exécuter et installer une instance
[2] EXEC Automatisation - Démonstration des fonctions développées
[3] UPD Mise à jour - Update all developed staging source code
[4] Code - Outil pour développeur
[0] Retour
"""
while True:
@ -153,6 +225,14 @@ class TODO:
status = self.prompt_execute_fonction()
if status is not False:
return
elif status == "3":
status = self.prompt_execute_update()
if status is not False:
return
elif status == "4":
status = self.prompt_execute_code()
if status is not False:
return
else:
print("Commande non trouvée 🤖!")
@ -202,6 +282,9 @@ class TODO:
return help_info
def prompt_execute_instance(self):
# TODO proposer le déploiement à distance
# TODO proposer l'exécution de docker
# TODO proposer la création de docker
lst_instance = self.get_config(["instance"])
help_info = self.fill_help_info(lst_instance)
@ -252,6 +335,72 @@ class TODO:
if cmd_no_found:
print("Commande non trouvée 🤖!")
def prompt_execute_update(self):
# self.executer_commande_live(f"make {makefile_cmd}")
print("🤖 Mise à jour du développement")
# TODO détecter les modules en modification pour faire la mise à jour en cours
# TODO demander sur quel BD faire la mise à jour
# TODO proposer les modules manuelles selon la configuration à mettre à jour
# TODO proposer la mise à jour de l'IDE
# TODO proposer la mise à jour des git-repo
lst_instance = self.get_config(["update_from_makefile"])
help_info = self.fill_help_info(lst_instance)
while True:
status = click.prompt(help_info)
print()
if status == "0":
return False
else:
cmd_no_found = True
try:
int_cmd = int(status)
if 0 < int_cmd <= len(lst_instance):
cmd_no_found = False
dct_instance = lst_instance[int_cmd - 1]
self.execute_from_configuration(dct_instance)
except ValueError:
pass
if cmd_no_found:
print("Commande non trouvée 🤖!")
return False
def prompt_execute_code(self):
print("🤖 Qu'avez-vous de besoin pour développer?")
# help_info = """Commande :
# [1] Status Git local et distant
# [2] Démarrer le générateur de code
# [3] Format - Formatage automatique selon changement [ou manuelle]
# [4] Qualité - Qualité logiciel, détecter les fichiers qui manquent les licences AGPLv3
# [0] Retour
# """
# help_info = """Commande :
# [1] Status Git local et distant
# [0] Retour
# """
lst_instance = self.get_config(["code_from_makefile"])
help_info = self.fill_help_info(lst_instance)
while True:
status = click.prompt(help_info)
print()
if status == "0":
return False
else:
cmd_no_found = True
try:
int_cmd = int(status)
if 0 < int_cmd <= len(lst_instance):
cmd_no_found = False
dct_instance = lst_instance[int_cmd - 1]
self.execute_from_configuration(dct_instance)
except ValueError:
pass
if cmd_no_found:
print("Commande non trouvée 🤖!")
return False
def kdbx_get_extra_command_user(self, kdbx_key):
lst_value = []
if kdbx_key: