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 %} - release: {{ odoo_version['release'] }} {% endfor %} migration_steps: {% for step in steps %} - name: {{ step['name'] }} release: {{ step['release'] }} action: {{ step['action'] }} 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 """ REPO_YML_TEMPLATE = """ ############################################################################## ## Odoo Repository ############################################################################## ./src/odoo: defaults: depth: 1 remotes: odoo: https://github.com/odoo/odoo target: odoo {{ odoo_version['release'] }}-target merges: - odoo {{ odoo_version['release'] }} ############################################################################## ## OpenUpgrade Repository ############################################################################## ./src/openupgrade: defaults: depth: 1 remotes: OCA: https://github.com/OCA/OpenUpgrade target: OCA {{ odoo_version['release'] }}-target merges: - OCA {{ odoo_version['release'] }} {% 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['release'] }}-target merges: - {{ org_name }} {{ odoo_version['release'] }} {% 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 release (at least odoo:10) # the command update fail, because of obsolete postgresql repository. DOCKERFILE_TEMPLATE = """ FROM odoo:{{ odoo_version['release'] }} 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 Release Final Release Project Name Analysis Date
{{ ctx.obj["config"]["odoo_versions"][0]["release"] }} {{ ctx.obj["config"]["odoo_versions"][-1]["release"] }} {{ 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 release in odoo_module.analyse.all_releases %} {% set module_version = odoo_module.get_module_version(release) %} {% if module_version %} {% set size_text = module_version.get_size_text() %} {% set workload = module_version.workload %} {% else %} {% endif %} {% endfor %} {% endfor %}
 {{ odoo_version["release"] }}
{{ ns.current_module_type}}
{{ ns.current_repository}}
{{odoo_module.name}} {{module_version.get_text()}} {% if size_text %} ({{ size_text}}) {% endif %} {% if workload %} ({{ module_version.workload_hour_text()}}) {% endif %}  
"""