From 2902ac02304d86d748fa0938daa3ae14183aec11 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Wed, 16 Apr 2025 23:28:28 -0400 Subject: [PATCH 01/12] [ADD] manifest odoo 16 OCA calendar --- manifest/default.dev.odoo16.0.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/manifest/default.dev.odoo16.0.xml b/manifest/default.dev.odoo16.0.xml index 5d28f71..cd55bc0 100644 --- a/manifest/default.dev.odoo16.0.xml +++ b/manifest/default.dev.odoo16.0.xml @@ -46,6 +46,7 @@ + From d90fa03e5aed52fafefcb4b08aef4207448134b6 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 27 Apr 2025 15:19:00 -0400 Subject: [PATCH 02/12] [ADD] manifest odoo 16 MathBenTech_development --- manifest/default.dev.odoo16.0.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/manifest/default.dev.odoo16.0.xml b/manifest/default.dev.odoo16.0.xml index cd55bc0..dc605e1 100644 --- a/manifest/default.dev.odoo16.0.xml +++ b/manifest/default.dev.odoo16.0.xml @@ -61,6 +61,7 @@ + From 9b2d0f8ef81adc3611d916e210e3ce052c70b30a Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 2 May 2025 14:05:55 -0400 Subject: [PATCH 03/12] [UPD] manifest odoo 14 OCA_project update branch from ERPLibre --- manifest/default.dev.odoo14.0.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest/default.dev.odoo14.0.xml b/manifest/default.dev.odoo14.0.xml index 3e7072f..72b7adf 100644 --- a/manifest/default.dev.odoo14.0.xml +++ b/manifest/default.dev.odoo14.0.xml @@ -118,7 +118,7 @@ - + From 94f0dc89d76cb83729d1edb0c4f7ea3b3592e81e Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 2 May 2025 14:09:28 -0400 Subject: [PATCH 04/12] [ADD] manifest odoo 14 and 16, cetmix tower --- manifest/default.dev.odoo14.0.xml | 2 ++ manifest/default.dev.odoo16.0.xml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/manifest/default.dev.odoo14.0.xml b/manifest/default.dev.odoo14.0.xml index 72b7adf..6e8a330 100644 --- a/manifest/default.dev.odoo14.0.xml +++ b/manifest/default.dev.odoo14.0.xml @@ -10,6 +10,7 @@ + @@ -45,6 +46,7 @@ + diff --git a/manifest/default.dev.odoo16.0.xml b/manifest/default.dev.odoo16.0.xml index dc605e1..b47ea74 100644 --- a/manifest/default.dev.odoo16.0.xml +++ b/manifest/default.dev.odoo16.0.xml @@ -10,6 +10,7 @@ + @@ -47,6 +48,7 @@ + From f13e9431c188c7b5dee495628345b8e190ac0ebb Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 2 May 2025 14:12:52 -0400 Subject: [PATCH 05/12] [UPD] config 3 news repositories --- script/generate_config.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/script/generate_config.sh b/script/generate_config.sh index b7db9c0..b6586fe 100755 --- a/script/generate_config.sh +++ b/script/generate_config.sh @@ -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}" From e6624e24a5eb297134924cb5ecb919772921b8e0 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 3 May 2025 15:05:58 -0400 Subject: [PATCH 06/12] [UPD] script docker update: remove unused code --- script/docker/docker_update_version.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/script/docker/docker_update_version.py b/script/docker/docker_update_version.py index fd27dad..842cc84 100755 --- a/script/docker/docker_update_version.py +++ b/script/docker/docker_update_version.py @@ -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( From f490a61df32bffe6862998a26888e1d4fa6bf2cd Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 3 May 2025 23:37:53 -0400 Subject: [PATCH 07/12] [UPD] docker new version odoo 14 --- docker/docker-compose_odoo_14.0.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose_odoo_14.0.yml b/docker/docker-compose_odoo_14.0.yml index aba13eb..a36b178 100644 --- a/docker/docker-compose_odoo_14.0.yml +++ b/docker/docker-compose_odoo_14.0.yml @@ -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 From 70c9698c2d24bba37833dbdc3bc7de7eb69fa2a5 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 4 May 2025 00:40:05 -0400 Subject: [PATCH 08/12] [UPD] make open todo and todo force source .venv with gnome-terminal --- Makefile | 2 +- script/todo/source_todo.sh | 5 +++++ script/todo/todo.py | 24 +++++++++++++++++++----- 3 files changed, 25 insertions(+), 6 deletions(-) create mode 100755 script/todo/source_todo.sh diff --git a/Makefile b/Makefile index bb7e9f4..117f1e3 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ LOG_FILE := ./.venv/make_test.log ############# # ALL .PHONY: all -all: doc +all: todo ############### # Detect OS # diff --git a/script/todo/source_todo.sh b/script/todo/source_todo.sh new file mode 100755 index 0000000..6b6ab3b --- /dev/null +++ b/script/todo/source_todo.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source .venv/bin/activate + +./script/todo/todo.py diff --git a/script/todo/todo.py b/script/todo/todo.py index 242b66d..b3d1513 100755 --- a/script/todo/todo.py +++ b/script/todo/todo.py @@ -4,13 +4,27 @@ 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: + if os.path.exists(".venv"): + time.sleep(0.5) + subprocess.run( + "gnome-terminal -- bash -c './script/todo/source_todo.sh'", + shell=True, + executable="/bin/bash", + ) + print("You forgot to activate source \nsource ./.venv/bin/activate") + sys.exit(1) # TODO implement urwid to improve text user interface # import urwid From f4a691121751ca5de3566863e997f2c806f17998 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 2 May 2025 03:41:04 -0400 Subject: [PATCH 09/12] [UPD] makefile refactoring by moving commands into conf - create make.private.Makefile for private project --- Makefile | 834 +----------------------------- conf/make.code_generator.Makefile | 330 ++++++++++++ conf/make.database.Makefile | 74 +++ conf/make.docker.Makefile | 82 +++ conf/make.documentation.Makefile | 87 ++++ conf/make.image_db.Makefile | 44 ++ conf/make.installation.Makefile | 80 +++ conf/make.test.Makefile | 121 +++++ conf/make.todo.Makefile | 7 + 9 files changed, 838 insertions(+), 821 deletions(-) create mode 100644 conf/make.code_generator.Makefile create mode 100644 conf/make.database.Makefile create mode 100644 conf/make.docker.Makefile create mode 100644 conf/make.documentation.Makefile create mode 100644 conf/make.image_db.Makefile create mode 100644 conf/make.installation.Makefile create mode 100644 conf/make.test.Makefile create mode 100644 conf/make.todo.Makefile diff --git a/Makefile b/Makefile index 117f1e3..c33a7fe 100644 --- a/Makefile +++ b/Makefile @@ -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 - diff --git a/conf/make.code_generator.Makefile b/conf/make.code_generator.Makefile new file mode 100644 index 0000000..ddf481e --- /dev/null +++ b/conf/make.code_generator.Makefile @@ -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 \ No newline at end of file diff --git a/conf/make.database.Makefile b/conf/make.database.Makefile new file mode 100644 index 0000000..1006375 --- /dev/null +++ b/conf/make.database.Makefile @@ -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 diff --git a/conf/make.docker.Makefile b/conf/make.docker.Makefile new file mode 100644 index 0000000..cd1750f --- /dev/null +++ b/conf/make.docker.Makefile @@ -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 diff --git a/conf/make.documentation.Makefile b/conf/make.documentation.Makefile new file mode 100644 index 0000000..f58cf68 --- /dev/null +++ b/conf/make.documentation.Makefile @@ -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 diff --git a/conf/make.image_db.Makefile b/conf/make.image_db.Makefile new file mode 100644 index 0000000..847778e --- /dev/null +++ b/conf/make.image_db.Makefile @@ -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 diff --git a/conf/make.installation.Makefile b/conf/make.installation.Makefile new file mode 100644 index 0000000..ce2e6fa --- /dev/null +++ b/conf/make.installation.Makefile @@ -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 diff --git a/conf/make.test.Makefile b/conf/make.test.Makefile new file mode 100644 index 0000000..0fe69d9 --- /dev/null +++ b/conf/make.test.Makefile @@ -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 \ No newline at end of file diff --git a/conf/make.todo.Makefile b/conf/make.todo.Makefile new file mode 100644 index 0000000..bd88161 --- /dev/null +++ b/conf/make.todo.Makefile @@ -0,0 +1,7 @@ +######## +# TODO # +######## + +.PHONY: todo +todo: + ./script/todo/todo.py From 829f7564f4e9f8df7a4845cfbbb7bcb5cb9955f7 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 4 May 2025 01:02:12 -0400 Subject: [PATCH 10/12] [UPD] script todo refactor message and propose odoo installation --- script/todo/todo.json | 13 ++++ script/todo/todo.py | 149 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 155 insertions(+), 7 deletions(-) diff --git a/script/todo/todo.json b/script/todo/todo.json index db2f21c..282ab3f 100644 --- a/script/todo/todo.json +++ b/script/todo/todo.json @@ -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" + } ] } diff --git a/script/todo/todo.py b/script/todo/todo.py index b3d1513..de1c700 100755 --- a/script/todo/todo.py +++ b/script/todo/todo.py @@ -16,14 +16,70 @@ try: 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", ) - print("You forgot to activate source \nsource ./.venv/bin/activate") + 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 @@ -45,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 """ @@ -57,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" @@ -150,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: @@ -167,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 🤖!") @@ -216,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) @@ -266,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: From 200aea9f8b51730ca46fcfe3545df7a7112d568c Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 4 May 2025 02:18:30 -0400 Subject: [PATCH 11/12] [IMP] script pycharm configuration: support version control auto-fill --- conf/pycharm_default_configuration.csv | 2 +- script/git/git_tool.py | 3 +- script/ide/pycharm_configuration.py | 58 +++++++++++++++++++++++++- 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/conf/pycharm_default_configuration.csv b/conf/pycharm_default_configuration.csv index 8e4f437..65676c7 100644 --- a/conf/pycharm_default_configuration.csv +++ b/conf/pycharm_default_configuration.csv @@ -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, diff --git a/script/git/git_tool.py b/script/git/git_tool.py index eec304e..27f30fa 100644 --- a/script/git/git_tool.py +++ b/script/git/git_tool.py @@ -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): diff --git a/script/ide/pycharm_configuration.py b/script/ide/pycharm_configuration.py index e1f8fea..f912ab2 100755 --- a/script/ide/pycharm_configuration.py +++ b/script/ide/pycharm_configuration.py @@ -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,6 +27,7 @@ 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): @@ -95,8 +103,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 +141,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 +175,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") From 955806db7ec073505204c1c4757f6c4ac49f72e9 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 4 May 2025 03:06:49 -0400 Subject: [PATCH 12/12] [UPD] script pycharm configuration: exclude with dynamic search --- script/ide/pycharm_configuration.py | 46 +++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/script/ide/pycharm_configuration.py b/script/ide/pycharm_configuration.py index f912ab2..4a2a19e 100755 --- a/script/ide/pycharm_configuration.py +++ b/script/ide/pycharm_configuration.py @@ -30,13 +30,6 @@ 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" @@ -436,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") @@ -469,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: