CONFIG_YML_TEMPLATE = """project_name: {{ project_name }} postgres_image_name: postgres:13 postgres_container_name: {{project_name}}-db odoo_host_xmlrpc_port: 9069 odoo_default_country_code: FR odoo_versions: {%- for odoo_version in odoo_versions %} - {{ odoo_version }} {%- endfor %} migration_steps: {%- for step in steps %} - name: {{ step['name'] }} version: {{ step['version'] }} execution_context: {{ step['execution_context'] }} complete_name: {{ step['complete_name'] }} {% endfor %} workload_settings: # porting a module requires 45 minutes minimaly port_minimal_time: 45 # a migration cost more for each version port_per_version: 15 # Porting 120 lines of Python code costs 1 hour port_per_python_line_time: 0.5 # Porting 120 lines of Python code costs 1 hour port_per_javascript_line_time: 0.5 # Porting 10 lines of XML costs 1 minute port_per_xml_line_time: 0.10 # Minimal time for Openupgrade PR open_upgrade_minimal_time: 10 # time for a line of model in the openupgrade_analysis.txt openupgrade_model_line_time: 10 # Time for a line of field in the openupgrade_analysis.txt openupgrade_field_line_time: 5 # Time for a line of XML in the openupgrade_analysis.txt openupgrade_xml_line_time: 0.1 """ REPO_YML_TEMPLATE = """ ############################################################################## ## Odoo Repository ############################################################################## ./src/odoo: defaults: depth: 1 remotes: odoo: https://github.com/odoo/odoo target: odoo {{ odoo_version }}-target merges: - odoo {{ odoo_version }} ############################################################################## ## OpenUpgrade Repository ############################################################################## ./src/openupgrade: defaults: depth: 1 remotes: OCA: https://github.com/OCA/OpenUpgrade target: OCA {{ odoo_version }}-target merges: - OCA {{ odoo_version }} {% for org_name, repo_list in orgs.items() %} ############################################################################## ## {{ org_name }} Repositories ############################################################################## {% for repo in repo_list %} ./src/{{ org_name }}/{{ repo }}: defaults: depth: 1 remotes: {{ org_name }}: https://github.com/{{ org_name }}/{{ repo }} target: {{ org_name }} {{ odoo_version }}-target merges: - {{ org_name }} {{ odoo_version }} {% endfor %} {% endfor %} """ PYTHON_REQUIREMENTS_TXT_TEMPLATE = """ {%- for python_librairy in python_libraries -%} {{ python_librairy }} {% endfor %} odoorpc click-odoo """ DEBIAN_REQUIREMENTS_TXT_TEMPLATE = """ git """ ODOO_CONFIG_TEMPLATE = "" # Technical Notes: # - We set apt-get update || true, because for some version (at least odoo:10) # the command update fail, because of obsolete postgresql repository. DOCKERFILE_TEMPLATE = """ FROM odoo:{{ odoo_version }} MAINTAINER GRAP, Coop It Easy # Set User root for installations USER root # 1. Make available files in the containers COPY debian_requirements.txt /debian_requirements.txt COPY python_requirements.txt /python_requirements.txt # 2. Install extra debian packages RUN apt-get update || true &&\ xargs apt-get install -y --no-install-recommends

Migration Analysis

Initial Version Final Version Project Name Analysis Date
{{ ctx.obj["config"]["odoo_versions"][0] }} {{ ctx.obj["config"]["odoo_versions"][-1] }} {{ ctx.obj["config"]["project_name"] }} {{ current_date }}

Summary

Module Type Module Quantity Remaining Hours
Odoo {{ analysis.get_module_qty("odoo") }} {{ analysis.workload_hour_text("odoo") }}
OCA {{ analysis.get_module_qty("OCA") }} {{ analysis.workload_hour_text("OCA") }}
Custom {{ analysis.get_module_qty("custom") }} {{ analysis.workload_hour_text("custom") }}
Total {{ analysis.get_module_qty() }} {{ analysis.workload_hour_text() }}

Details

{%- for odoo_version in ctx.obj["config"]["odoo_versions"] -%} {% endfor %} {% set ns = namespace( current_repository='', current_module_type='', ) %} {% for odoo_module in analysis.modules %} {% if ( ns.current_module_type != odoo_module.module_type and odoo_module.module_type != 'odoo') %} {% set ns.current_module_type = odoo_module.module_type %} {% endif %} {% if ns.current_repository != odoo_module.repository %} {% set ns.current_repository = odoo_module.repository %} {% endif %} {% for version in odoo_module.analyse.all_version %} {% set module_version = odoo_module.get_module_version(version) %} {% if module_version %} {% set size_text = module_version.get_size_text() %} {% set analysis_text = module_version.get_analysis_text() %} {% set workload = module_version.workload %} {% else %} {% endif %} {% endfor %} {% endfor %}
 {{ odoo_version }}
{{ ns.current_module_type}}
{{ ns.current_repository}}
{{odoo_module.name}} {{module_version.get_text()}} {% if workload %} ({{ module_version.workload_hour_text()}}) {% endif %} {% if size_text %}
({{ size_text}}) {% endif %} {% if analysis_text %}
({{ analysis_text}}) {% endif %}
 
"""