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
import tkinter as tk
from tkinter import filedialog
import click
import openai
from pykeepass import PyKeePass
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: