From 6a7f056a6d447ac5480f337751d0b1992522b62a Mon Sep 17 00:00:00 2001 From: Flectra Community Bot Date: Sun, 25 Jul 2021 02:20:52 +0000 Subject: [PATCH 1/8] Automatic Update form OCA2FC Migrator --- .gitlab-ci.yml | 74 +++++++++++++++++++++++++------------------------- README.md | 2 +- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index de4b24e..f43ce22 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,12 +46,12 @@ test_all_modules: --db_password flectra --database test_all --test-enable - --init mis_builder_budget,mis_builder_demo,mis_builder + --init mis_builder_budget,mis_builder,mis_builder_demo --stop-after-init --log-level error --log-handler flectra.addons.mis_builder_budget:TEST - --log-handler flectra.addons.mis_builder_demo:TEST --log-handler flectra.addons.mis_builder:TEST + --log-handler flectra.addons.mis_builder_demo:TEST " @@ -90,41 +90,6 @@ test_module_mis_builder_budget: --log-level error --log-handler flectra.addons.mis_builder_budget:TEST" -test_module_mis_builder_demo: - stage: testsingle - when: on_failure - image: - name: registry.gitlab.com/jamotion/flectra/ubuntudev:2-latest - entrypoint: ["/bin/sh", "-c"] - script: - - apt-get install -y p7zip-full - - apt install -y expect-dev - - su - flectra -c "mkdir ~/others" - - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" - - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" - - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 - - mkdir ${CI_PROJECT_DIR}/ci_data - - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip - - 7z x -o ${CI_PROJECT_DIR}/ci_data/ ${CI_PROJECT_DIR}/ci_data/test_base.zip - - export PGPASSWORD="flectra" - - createdb -h psql -U flectra -O flectra -T template1 test_mis_builder_demo - - psql -h psql -U flectra -d test_mis_builder_demo -f ${CI_PROJECT_DIR}/ci_data/dump.sql - - su - flectra -c "mkdir -p ~/.local/share/filestore" - - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder_demo - - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder_demo - - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/reporting-engine,~/others/server-tools,~/others/server-ux - --db_host psql - --db_port 5432 - --db_user flectra - --db_password flectra - --database test_mis_builder_demo - --test-enable -i mis_builder_demo - --stop-after-init - --log-level error - --log-handler flectra.addons.mis_builder_demo:TEST" - test_module_mis_builder: stage: testsingle when: on_failure @@ -160,3 +125,38 @@ test_module_mis_builder: --log-level error --log-handler flectra.addons.mis_builder:TEST" +test_module_mis_builder_demo: + stage: testsingle + when: on_failure + image: + name: registry.gitlab.com/jamotion/flectra/ubuntudev:2-latest + entrypoint: ["/bin/sh", "-c"] + script: + - apt-get install -y p7zip-full + - apt install -y expect-dev + - su - flectra -c "mkdir ~/others" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" + - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 + - mkdir ${CI_PROJECT_DIR}/ci_data + - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip + - 7z x -o ${CI_PROJECT_DIR}/ci_data/ ${CI_PROJECT_DIR}/ci_data/test_base.zip + - export PGPASSWORD="flectra" + - createdb -h psql -U flectra -O flectra -T template1 test_mis_builder_demo + - psql -h psql -U flectra -d test_mis_builder_demo -f ${CI_PROJECT_DIR}/ci_data/dump.sql + - su - flectra -c "mkdir -p ~/.local/share/filestore" + - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder_demo + - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder_demo + - su - flectra -c "/opt/flectra/flectra-bin + --addons-path ${CI_PROJECT_DIR},~/others/reporting-engine,~/others/server-tools,~/others/server-ux + --db_host psql + --db_port 5432 + --db_user flectra + --db_password flectra + --database test_mis_builder_demo + --test-enable -i mis_builder_demo + --stop-after-init + --log-level error + --log-handler flectra.addons.mis_builder_demo:TEST" + diff --git a/README.md b/README.md index 3638629..81ffcb1 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Available addons addon | version | summary --- | --- | --- [mis_builder_budget](mis_builder_budget/) | 1.0.3.5.0| Create budgets for MIS reports -[mis_builder_demo](mis_builder_demo/) | 1.0.3.1.1| Demo addon for MIS Builder [mis_builder](mis_builder/) | 1.0.3.6.5| Build 'Management Information System' Reports and Dashboards +[mis_builder_demo](mis_builder_demo/) | 1.0.3.1.1| Demo addon for MIS Builder From e5e3da8db5b24e521b6c20b608ac768e5e82bc4d Mon Sep 17 00:00:00 2001 From: Flectra Community Bot Date: Sun, 10 Oct 2021 02:21:14 +0000 Subject: [PATCH 2/8] Automatic Update form OCA2FC Migrator --- README.md | 2 +- mis_builder/COPYRIGHT | 1 + mis_builder/README.rst | 3 + mis_builder/__manifest__.py | 2 +- mis_builder/i18n/ca.po | 78 +++++++-------- mis_builder/i18n/de.po | 78 +++++++-------- mis_builder/i18n/el.po | 78 +++++++-------- mis_builder/i18n/el_GR.po | 78 +++++++-------- mis_builder/i18n/es.po | 101 ++++++++++---------- mis_builder/i18n/fr.po | 78 +++++++-------- mis_builder/i18n/hr.po | 78 +++++++-------- mis_builder/i18n/it.po | 78 +++++++-------- mis_builder/i18n/mis_builder.pot | 78 +++++++-------- mis_builder/i18n/nl.po | 78 +++++++-------- mis_builder/i18n/nl_NL.po | 78 +++++++-------- mis_builder/i18n/pt.po | 78 +++++++-------- mis_builder/i18n/pt_BR.po | 78 +++++++-------- mis_builder/models/mis_report.py | 7 +- mis_builder/models/mis_report_instance.py | 3 +- mis_builder/models/mis_report_style.py | 5 +- mis_builder/static/description/index.html | 4 + mis_builder/wizard/mis_builder_dashboard.py | 3 +- 22 files changed, 540 insertions(+), 527 deletions(-) diff --git a/README.md b/README.md index 81ffcb1..8f7bd7e 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Available addons addon | version | summary --- | --- | --- [mis_builder_budget](mis_builder_budget/) | 1.0.3.5.0| Create budgets for MIS reports -[mis_builder](mis_builder/) | 1.0.3.6.5| Build 'Management Information System' Reports and Dashboards +[mis_builder](mis_builder/) | 1.0.3.6.6| Build 'Management Information System' Reports and Dashboards [mis_builder_demo](mis_builder_demo/) | 1.0.3.1.1| Demo addon for MIS Builder diff --git a/mis_builder/COPYRIGHT b/mis_builder/COPYRIGHT index 01d3e74..bc23a32 100644 --- a/mis_builder/COPYRIGHT +++ b/mis_builder/COPYRIGHT @@ -12,6 +12,7 @@ Most of the files are Copyright 2019 ACSONE SA/NV () Copyright 2020 ACSONE SA/NV Copyright 2020 ACSONE SA/NV () + Copyright 2020 CorporateHub (https://corporatehub.eu) Copyright 2018 Flectra Community Many files also contain contributions from third diff --git a/mis_builder/README.rst b/mis_builder/README.rst index 208b2d9..0e32785 100644 --- a/mis_builder/README.rst +++ b/mis_builder/README.rst @@ -545,6 +545,9 @@ Contributors * Arnaud Pineux * Ernesto Tejeda * Pedro M. Baeza +* `CorporateHub `__ + + * Alexey Pelykh Maintainers ~~~~~~~~~~~ diff --git a/mis_builder/__manifest__.py b/mis_builder/__manifest__.py index 913ea96..6535868 100644 --- a/mis_builder/__manifest__.py +++ b/mis_builder/__manifest__.py @@ -3,7 +3,7 @@ { "name": "MIS Builder", - "version": "1.0.3.6.5", + "version": "1.0.3.6.6", "category": "Reporting", "summary": """ Build 'Management Information System' Reports and Dashboards diff --git a/mis_builder/i18n/ca.po b/mis_builder/i18n/ca.po index dc99efb..fd9b5e0 100644 --- a/mis_builder/i18n/ca.po +++ b/mis_builder/i18n/ca.po @@ -17,8 +17,8 @@ msgstr "" "X-Generator: Weblate 3.1.1\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "%s (còpia)" @@ -193,7 +193,7 @@ msgstr "" "debit, credit, date, account_id y company_id." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "Un filtre de data és obligatori per aquest origen a la columna %s." @@ -210,7 +210,7 @@ msgid "Accumulation Method" msgstr "Mètode d'agregació" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -312,7 +312,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -331,7 +331,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -342,8 +342,8 @@ msgid "Auto expand" msgstr "Auto expandir" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -376,7 +376,7 @@ msgid "Bold" msgstr "Negreta" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "No es pot actualitzar un kpi múltiple des d'una línia de kpi" @@ -410,13 +410,13 @@ msgid "Column" msgstr "Columna" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, fuzzy, python-format msgid "Column %s cannot be compared to itrec." msgstr "La columna %s no pot ser comparada amb ella mateixa." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, fuzzy, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "La columna %s amb font de dades reals ha de tenir data des de/fins a." @@ -427,7 +427,7 @@ msgid "Columns" msgstr "Columnes" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "Les columnes a comparar han de pertànyer al mateix informe en %s" @@ -537,7 +537,7 @@ msgid "Date From" msgstr "Camp data" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -562,7 +562,7 @@ msgid "Dates" msgstr "Dates" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -594,7 +594,7 @@ msgstr "" "temporal." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -899,7 +899,7 @@ msgid "Indent Level Inherit" msgstr "Nivell de sagnat heretat" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "EL nivell de sagnat ha de ser igual o major que 0" @@ -915,7 +915,7 @@ msgid "KPI" msgstr "KPI" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -928,7 +928,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -943,7 +943,7 @@ msgid "KPI Sequence" msgstr "Seqüència" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, fuzzy, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "El nom ha de ser un identificador Python vàlid" @@ -1168,14 +1168,14 @@ msgid "MIS report instance XLS report" msgstr "Informe XLS d'instància d'informe MIS" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "Màx" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1192,7 +1192,7 @@ msgid "Model" msgstr "Model" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1241,14 +1241,14 @@ msgid "No date filter" msgstr "Sense filtre de dates" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "No es permet un filtre de data per aquesta font a la columna %s." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1272,7 +1272,7 @@ msgid "Number of periods" msgstr "Número de períodes" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1294,8 +1294,8 @@ msgid "Parent column" msgstr "Columna pare" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1322,7 +1322,7 @@ msgid "Pivot date" msgstr "Data pivot" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "Si us plau, introdueixi ambdues columnes a comparar en %s." @@ -1366,7 +1366,7 @@ msgid "Query Company" msgstr "Companyia de la consulta" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, fuzzy, python-format msgid "Query name ({}) must be valid python identifier" msgstr "El nom ha de ser un identificador Python vàlid" @@ -1467,7 +1467,7 @@ msgid "Source" msgstr "Origen" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1535,7 +1535,7 @@ msgid "Sub-KPI Sequence" msgstr "Seqüència" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, fuzzy, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "El nom ha de ser un identificador Python vàlid" @@ -1580,8 +1580,8 @@ msgid "Suffix Inherit" msgstr "Sufix heretat" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1714,7 +1714,7 @@ msgid "Visibility" msgstr "Visibilitat" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1731,7 +1731,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "Factor de normalització incorrecte. Ha de ser positiu!" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1743,13 +1743,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "No pot sumar el període %s amb ell mateix." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "Des de %s fins a %s" @@ -1776,7 +1776,7 @@ msgid "or" msgstr "o" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "pp" diff --git a/mis_builder/i18n/de.po b/mis_builder/i18n/de.po index 11a730c..11e7588 100644 --- a/mis_builder/i18n/de.po +++ b/mis_builder/i18n/de.po @@ -20,8 +20,8 @@ msgstr "" "X-Generator: Weblate 3.4\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "%s (Kopie)" @@ -196,7 +196,7 @@ msgstr "" "Datum, Konto und Unternehmen." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "Ein Datumsfilter ist für diese Quelle in der Spalte %s erforderlich." @@ -213,7 +213,7 @@ msgid "Accumulation Method" msgstr "Akkumulationsmethode" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -313,7 +313,7 @@ msgid "Analytic Account Filter" msgstr "Kostenstelle" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "Kostenstelle: %s" @@ -333,7 +333,7 @@ msgid "Analytic Tags Filter" msgstr "Kostenstellenfilter verbergen" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, fuzzy, python-format msgid "Analytic Tags: %s" msgstr "Kostenstelle: %s" @@ -344,8 +344,8 @@ msgid "Auto expand" msgstr "Automatisch erweitern" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -378,7 +378,7 @@ msgid "Bold" msgstr "Fett" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "Ein Multi-Kpi kann nicht von der Kpi-Zeile aktualisiert werden" @@ -413,13 +413,13 @@ msgid "Column" msgstr "Spalte" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, fuzzy, python-format msgid "Column %s cannot be compared to itrec." msgstr "Die Spalte %s kann nicht mit itrec vergleichen werden." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, fuzzy, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "" @@ -431,7 +431,7 @@ msgid "Columns" msgstr "Spalten" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "Die Vergleichsspalten %s müssen zum gleichen Bericht gehören" @@ -541,7 +541,7 @@ msgid "Date From" msgstr "Datumsfeld" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -566,7 +566,7 @@ msgid "Dates" msgstr "Daten" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -598,7 +598,7 @@ msgstr "" "anteiligen temporären Gewicht gemittelt." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -901,7 +901,7 @@ msgid "Indent Level Inherit" msgstr "Einrückungsebene Vererbung" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "Die angegebene Einrückungsebene sollte größer oder gleich 0 sein" @@ -917,7 +917,7 @@ msgid "KPI" msgstr "KPI" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -930,7 +930,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -944,7 +944,7 @@ msgid "KPI Sequence" msgstr "KPI Sequenz" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, fuzzy, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "Der Name sollte ein valider Python Identifizierer sein" @@ -1160,14 +1160,14 @@ msgid "MIS report instance XLS report" msgstr "MIS Reportbeleg XLS Bericht" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "Max" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1184,7 +1184,7 @@ msgid "Model" msgstr "Modell" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1233,14 +1233,14 @@ msgid "No date filter" msgstr "Kein Datumsfilter" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "Für die Quelle in Spalte %s ist kein Datumsfilter zugelassen." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1264,7 +1264,7 @@ msgid "Number of periods" msgstr "Periodenanzahl" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1286,8 +1286,8 @@ msgid "Parent column" msgstr "Übergeordnete Spalte" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1314,7 +1314,7 @@ msgid "Pivot date" msgstr "Pivot Daten" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "Um in %s zu vergleichen, werden beide Spalten benötigt." @@ -1358,7 +1358,7 @@ msgid "Query Company" msgstr "Unternehmen abfragen" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, fuzzy, python-format msgid "Query name ({}) must be valid python identifier" msgstr "Der Name sollte ein valider Python Identifizierer sein" @@ -1459,7 +1459,7 @@ msgid "Source" msgstr "Quelle" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1527,7 +1527,7 @@ msgid "Sub-KPI Sequence" msgstr "Sub-KPI Sequenz" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, fuzzy, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "Der Name sollte ein valider Python Identifizierer sein" @@ -1572,8 +1572,8 @@ msgid "Suffix Inherit" msgstr "Suffix Vererbung" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1706,7 +1706,7 @@ msgid "Visibility" msgstr "Sichtbarkeit" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1723,7 +1723,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "Falscher Faktor zur Normalisierung, der Wert sollte positiv sein!" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1735,13 +1735,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "Sie können die Periode %s nicht mit sich selbst aufsummieren." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "von %s bis %s" @@ -1768,7 +1768,7 @@ msgid "or" msgstr "oder" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "" diff --git a/mis_builder/i18n/el.po b/mis_builder/i18n/el.po index 3d0bcc5..88c2fe0 100644 --- a/mis_builder/i18n/el.po +++ b/mis_builder/i18n/el.po @@ -15,8 +15,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "" @@ -186,7 +186,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "" @@ -202,7 +202,7 @@ msgid "Accumulation Method" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -295,7 +295,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -314,7 +314,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -325,8 +325,8 @@ msgid "Auto expand" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -359,7 +359,7 @@ msgid "Bold" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "" @@ -392,13 +392,13 @@ msgid "Column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, python-format msgid "Column %s cannot be compared to itrec." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "" @@ -409,7 +409,7 @@ msgid "Columns" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "" @@ -517,7 +517,7 @@ msgid "Date From" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -541,7 +541,7 @@ msgid "Dates" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -567,7 +567,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -867,7 +867,7 @@ msgid "Indent Level Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "" @@ -883,7 +883,7 @@ msgid "KPI" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -896,7 +896,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -910,7 +910,7 @@ msgid "KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "" @@ -1125,14 +1125,14 @@ msgid "MIS report instance XLS report" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1149,7 +1149,7 @@ msgid "Model" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1197,14 +1197,14 @@ msgid "No date filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1228,7 +1228,7 @@ msgid "Number of periods" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1250,8 +1250,8 @@ msgid "Parent column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1278,7 +1278,7 @@ msgid "Pivot date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "" @@ -1322,7 +1322,7 @@ msgid "Query Company" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, python-format msgid "Query name ({}) must be valid python identifier" msgstr "" @@ -1421,7 +1421,7 @@ msgid "Source" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1486,7 +1486,7 @@ msgid "Sub-KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "" @@ -1529,8 +1529,8 @@ msgid "Suffix Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1661,7 +1661,7 @@ msgid "Visibility" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1678,7 +1678,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1690,13 +1690,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "" @@ -1723,7 +1723,7 @@ msgid "or" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "" diff --git a/mis_builder/i18n/el_GR.po b/mis_builder/i18n/el_GR.po index c991dd8..cdb218a 100644 --- a/mis_builder/i18n/el_GR.po +++ b/mis_builder/i18n/el_GR.po @@ -15,8 +15,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "" @@ -186,7 +186,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "" @@ -202,7 +202,7 @@ msgid "Accumulation Method" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -295,7 +295,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -314,7 +314,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -325,8 +325,8 @@ msgid "Auto expand" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -359,7 +359,7 @@ msgid "Bold" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "" @@ -392,13 +392,13 @@ msgid "Column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, python-format msgid "Column %s cannot be compared to itrec." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "" @@ -409,7 +409,7 @@ msgid "Columns" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "" @@ -517,7 +517,7 @@ msgid "Date From" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -541,7 +541,7 @@ msgid "Dates" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -567,7 +567,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -867,7 +867,7 @@ msgid "Indent Level Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "" @@ -883,7 +883,7 @@ msgid "KPI" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -896,7 +896,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -910,7 +910,7 @@ msgid "KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "" @@ -1125,14 +1125,14 @@ msgid "MIS report instance XLS report" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1149,7 +1149,7 @@ msgid "Model" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1197,14 +1197,14 @@ msgid "No date filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1228,7 +1228,7 @@ msgid "Number of periods" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1250,8 +1250,8 @@ msgid "Parent column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1278,7 +1278,7 @@ msgid "Pivot date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "" @@ -1322,7 +1322,7 @@ msgid "Query Company" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, python-format msgid "Query name ({}) must be valid python identifier" msgstr "" @@ -1421,7 +1421,7 @@ msgid "Source" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1486,7 +1486,7 @@ msgid "Sub-KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "" @@ -1529,8 +1529,8 @@ msgid "Suffix Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1661,7 +1661,7 @@ msgid "Visibility" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1678,7 +1678,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1690,13 +1690,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "" @@ -1723,7 +1723,7 @@ msgid "or" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "" diff --git a/mis_builder/i18n/es.po b/mis_builder/i18n/es.po index dfc3e8c..10c4179 100644 --- a/mis_builder/i18n/es.po +++ b/mis_builder/i18n/es.po @@ -20,8 +20,8 @@ msgstr "" "X-Generator: Weblate 4.3.2\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "%s (copia)" @@ -42,8 +42,8 @@ msgstr "" "\n" " balp[('user_type_id', '=',\n" " ref('account.\n" -" " -"data_account_type_receivable').id)][]\n" +" data_account_type_receivable')." +"id)][]\n" " \n" " : variación del balance de todas " "las cuentas\n" @@ -63,8 +63,8 @@ msgid "" " 56." msgstr "" "\n" -" balp[][(" -"'tax_line_id.tag_ids', '=',\n" +" balp[][('tax_line_id." +"tag_ids', '=',\n" " ref('l10n_be.tax_tag_56')." "id)]\n" " \n" @@ -85,8 +85,8 @@ msgid "" " journal BNK1 during the period." msgstr "" "\n" -" debp[55%][(" -"'journal_id.code', '=',\n" +" debp[55%][('journal_id." +"code', '=',\n" " 'BNK1')]\n" " \n" " : suma de todos los débitos en " @@ -276,7 +276,7 @@ msgstr "" "datos de la columna \"Datos Reales\"." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "Un filtro de fecha es obligatorio para este origen en la columna %s." @@ -292,7 +292,7 @@ msgid "Accumulation Method" msgstr "Método de agregación" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -400,7 +400,7 @@ msgid "Analytic Account Filter" msgstr "Filtro de Cuenta Analítica" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "Cuenta Analítica: %s" @@ -419,7 +419,7 @@ msgid "Analytic Tags Filter" msgstr "Filtro de Etiquetas Analíticas" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "Etiquetas Analíticas: %s" @@ -430,8 +430,8 @@ msgid "Auto expand" msgstr "Auto expandir" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -464,7 +464,7 @@ msgid "Bold" msgstr "Negrita" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "No se puede actualizar un kpi múltiple desde una línea de kpi" @@ -498,16 +498,17 @@ msgid "Column" msgstr "Columna" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, python-format msgid "Column %s cannot be compared to itrec." msgstr "La columna %s no puede ser comparada consigo misma." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, python-format msgid "Column %s with move lines source must have from/to dates." -msgstr "La columna %s con fuente de datos reales debe tener fechas desde/hasta." +msgstr "" +"La columna %s con fuente de datos reales debe tener fechas desde/hasta." #. module: mis_builder #: model:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form @@ -515,7 +516,7 @@ msgid "Columns" msgstr "Columnas" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "Las columnas a comparar deben pertenecer al mismo informe en %s" @@ -623,7 +624,7 @@ msgid "Date From" msgstr "Fecha Desde" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -647,7 +648,7 @@ msgid "Dates" msgstr "Fechas" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -679,7 +680,7 @@ msgstr "" "prorrateo temporal." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -802,8 +803,8 @@ msgid "" " kpi2.subkpi1, query1.field1)." msgstr "" "Las expresiones pueden incluir otros KPI, sub KPI y\n" -" resultados de consultas por nombre (" -"ej kpi1 + kpi2,\n" +" resultados de consultas por nombre " +"(ej kpi1 + kpi2,\n" " kpi2.subkpi1, query1.field1)." #. module: mis_builder @@ -997,7 +998,7 @@ msgid "Indent Level Inherit" msgstr "Nivel de sangría heredado" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "El nivel de sangría debe ser igual o mayor que 0" @@ -1013,7 +1014,7 @@ msgid "KPI" msgstr "KPI" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -1033,7 +1034,7 @@ msgstr "" "sub-KPI." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -1049,7 +1050,7 @@ msgid "KPI Sequence" msgstr "Secuencia KPI" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, fuzzy, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "El nombre KPI ({}) debe ser un identificador Python válido" @@ -1269,14 +1270,14 @@ msgid "MIS report instance XLS report" msgstr "Informe XLS de instancia de informe MIS" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "Máx" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1293,7 +1294,7 @@ msgid "Model" msgstr "Modelo" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1342,14 +1343,14 @@ msgid "No date filter" msgstr "Sin filtro de fechas" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "No se permite un filtro de fecha para esta fuente en la columna %s." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1373,7 +1374,7 @@ msgid "Number of periods" msgstr "Número de periodos" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1395,8 +1396,8 @@ msgid "Parent column" msgstr "Columna padre" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1423,7 +1424,7 @@ msgid "Pivot date" msgstr "Fecha pivote" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "Por favor introduzca ambas columnas a comparar en %s." @@ -1467,7 +1468,7 @@ msgid "Query Company" msgstr "Compañía de la consulta" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, python-format msgid "Query name ({}) must be valid python identifier" msgstr "El nombre de consulta ({}) debe ser un identificador Python válido" @@ -1570,7 +1571,7 @@ msgid "Source" msgstr "Origen" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1636,7 +1637,7 @@ msgid "Sub-KPI Sequence" msgstr "Secuencia Sub-KPI" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "El nombre Sub-KPI ({}) debe ser un identificador Python válido" @@ -1679,8 +1680,8 @@ msgid "Suffix Inherit" msgstr "Sufijo heredado" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1779,8 +1780,8 @@ msgstr "" " las expresiones para calcular datos " "contables:\n" " \n" -" {bal|crd|deb|pbal|nbal}{pieu}[" -"account\n" +" {bal|crd|deb|pbal|nbal}{pieu}" +"[account\n" " selector][journal items domain]\n" " \n" " ." @@ -1832,7 +1833,7 @@ msgid "Visibility" msgstr "Visibilidad" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1849,7 +1850,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "Factor de normalización incorrecto. ¡Debe ser positivo!" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1861,13 +1862,13 @@ msgid "Year to date" msgstr "Años para fecha" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "No puede sumar el periodo %s consigo mismo." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "desde %s hasta %s" @@ -1894,7 +1895,7 @@ msgid "or" msgstr "o" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "pp" diff --git a/mis_builder/i18n/fr.po b/mis_builder/i18n/fr.po index d60d565..b8978e1 100644 --- a/mis_builder/i18n/fr.po +++ b/mis_builder/i18n/fr.po @@ -21,8 +21,8 @@ msgstr "" "X-Generator: Weblate 3.2.2\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "%s (copie)" @@ -197,7 +197,7 @@ msgstr "" "account_id et company_id." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "Un filtre date est obligatoire pour cette source dans la colonne %s." @@ -214,7 +214,7 @@ msgid "Accumulation Method" msgstr "Méthode d'accumulation" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -314,7 +314,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -333,7 +333,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -344,8 +344,8 @@ msgid "Auto expand" msgstr "Expansion automatique" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -378,7 +378,7 @@ msgid "Bold" msgstr "Gras" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "Vous ne pouvez pas mettre à  jour un kpi multi depuis la ligne de kpi" @@ -413,13 +413,13 @@ msgid "Column" msgstr "Colonne" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, fuzzy, python-format msgid "Column %s cannot be compared to itrec." msgstr "Colonne %s ne peut pas être comparée à  elle-même." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, fuzzy, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "Colonne %s avec une source pour le réel doit avoir des dates de/à ." @@ -430,7 +430,7 @@ msgid "Columns" msgstr "Colonnes" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "Les colonnes à  comparer doivent appartenir au même rapport %s" @@ -540,7 +540,7 @@ msgid "Date From" msgstr "Champ date" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -565,7 +565,7 @@ msgid "Dates" msgstr "Dates" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -596,7 +596,7 @@ msgstr "" "Moyenne : moyenne au pro-rata temporis des valeurs incluses dans la période." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -900,7 +900,7 @@ msgid "Indent Level Inherit" msgstr "Niveau de retrait par défaut" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "Le niveau de retrait doit être plus grand ou égal à  0" @@ -916,7 +916,7 @@ msgid "KPI" msgstr "KPI" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -929,7 +929,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -944,7 +944,7 @@ msgid "KPI Sequence" msgstr "Séquence" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, fuzzy, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "Le nom doit être un identifiant python valide" @@ -1169,14 +1169,14 @@ msgid "MIS report instance XLS report" msgstr "Instance MIS report XLS report" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "Max" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1193,7 +1193,7 @@ msgid "Model" msgstr "Modèle" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1242,14 +1242,14 @@ msgid "No date filter" msgstr "Pas de filtre date" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "Aucun filtre date n'est autorisé pour cette source dans la colonne %s." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1273,7 +1273,7 @@ msgid "Number of periods" msgstr "Nombre de périodes" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1295,8 +1295,8 @@ msgid "Parent column" msgstr "Colonne parent" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1323,7 +1323,7 @@ msgid "Pivot date" msgstr "Date pivot" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "Merci de renseigner les 2 colonnes à  comparer en %s." @@ -1367,7 +1367,7 @@ msgid "Query Company" msgstr "Société de la requête" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, fuzzy, python-format msgid "Query name ({}) must be valid python identifier" msgstr "Le nom doit être un identifiant python valide" @@ -1470,7 +1470,7 @@ msgid "Source" msgstr "Source" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1539,7 +1539,7 @@ msgid "Sub-KPI Sequence" msgstr "Séquence" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, fuzzy, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "Le nom doit être un identifiant python valide" @@ -1584,8 +1584,8 @@ msgid "Suffix Inherit" msgstr "Suffixe par défaut" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1718,7 +1718,7 @@ msgid "Visibility" msgstr "Visibilité" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1735,7 +1735,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "Facteur de normalisation incorrect, il doit être positif !" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1747,13 +1747,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "Vous ne pouvez pas additionner la période %s avec elle-meme." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "de %s à  %s" @@ -1780,7 +1780,7 @@ msgid "or" msgstr "ou" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "pp" diff --git a/mis_builder/i18n/hr.po b/mis_builder/i18n/hr.po index fb64a32..cc8973a 100644 --- a/mis_builder/i18n/hr.po +++ b/mis_builder/i18n/hr.po @@ -21,8 +21,8 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "" @@ -192,7 +192,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "" @@ -208,7 +208,7 @@ msgid "Accumulation Method" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -301,7 +301,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -320,7 +320,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -331,8 +331,8 @@ msgid "Auto expand" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -365,7 +365,7 @@ msgid "Bold" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "" @@ -398,13 +398,13 @@ msgid "Column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, python-format msgid "Column %s cannot be compared to itrec." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "" @@ -415,7 +415,7 @@ msgid "Columns" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "" @@ -523,7 +523,7 @@ msgid "Date From" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -547,7 +547,7 @@ msgid "Dates" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -573,7 +573,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -873,7 +873,7 @@ msgid "Indent Level Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "" @@ -889,7 +889,7 @@ msgid "KPI" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -902,7 +902,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -916,7 +916,7 @@ msgid "KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "" @@ -1131,14 +1131,14 @@ msgid "MIS report instance XLS report" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1155,7 +1155,7 @@ msgid "Model" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1203,14 +1203,14 @@ msgid "No date filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1234,7 +1234,7 @@ msgid "Number of periods" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1256,8 +1256,8 @@ msgid "Parent column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1284,7 +1284,7 @@ msgid "Pivot date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "" @@ -1328,7 +1328,7 @@ msgid "Query Company" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, python-format msgid "Query name ({}) must be valid python identifier" msgstr "" @@ -1427,7 +1427,7 @@ msgid "Source" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1492,7 +1492,7 @@ msgid "Sub-KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "" @@ -1535,8 +1535,8 @@ msgid "Suffix Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1667,7 +1667,7 @@ msgid "Visibility" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1684,7 +1684,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1696,13 +1696,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "" @@ -1729,7 +1729,7 @@ msgid "or" msgstr "ili" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "" diff --git a/mis_builder/i18n/it.po b/mis_builder/i18n/it.po index 635e092..4f58d42 100644 --- a/mis_builder/i18n/it.po +++ b/mis_builder/i18n/it.po @@ -15,8 +15,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "" @@ -186,7 +186,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "" @@ -202,7 +202,7 @@ msgid "Accumulation Method" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -295,7 +295,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -314,7 +314,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -325,8 +325,8 @@ msgid "Auto expand" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -359,7 +359,7 @@ msgid "Bold" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "" @@ -392,13 +392,13 @@ msgid "Column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, python-format msgid "Column %s cannot be compared to itrec." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "" @@ -409,7 +409,7 @@ msgid "Columns" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "" @@ -517,7 +517,7 @@ msgid "Date From" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -541,7 +541,7 @@ msgid "Dates" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -567,7 +567,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -867,7 +867,7 @@ msgid "Indent Level Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "" @@ -883,7 +883,7 @@ msgid "KPI" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -896,7 +896,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -910,7 +910,7 @@ msgid "KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "" @@ -1125,14 +1125,14 @@ msgid "MIS report instance XLS report" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1149,7 +1149,7 @@ msgid "Model" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1197,14 +1197,14 @@ msgid "No date filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1228,7 +1228,7 @@ msgid "Number of periods" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1250,8 +1250,8 @@ msgid "Parent column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1278,7 +1278,7 @@ msgid "Pivot date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "" @@ -1322,7 +1322,7 @@ msgid "Query Company" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, python-format msgid "Query name ({}) must be valid python identifier" msgstr "" @@ -1421,7 +1421,7 @@ msgid "Source" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1486,7 +1486,7 @@ msgid "Sub-KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "" @@ -1529,8 +1529,8 @@ msgid "Suffix Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1661,7 +1661,7 @@ msgid "Visibility" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1678,7 +1678,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1690,13 +1690,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "" @@ -1723,7 +1723,7 @@ msgid "or" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "" diff --git a/mis_builder/i18n/mis_builder.pot b/mis_builder/i18n/mis_builder.pot index 537a957..41958e5 100644 --- a/mis_builder/i18n/mis_builder.pot +++ b/mis_builder/i18n/mis_builder.pot @@ -14,8 +14,8 @@ msgstr "" "Plural-Forms: \n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "" @@ -146,7 +146,7 @@ msgid "A 'move line like' model, ie having at least debit, credit, date, account msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "" @@ -162,7 +162,7 @@ msgid "Accumulation Method" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "Actual (alternative) models used in columns must have the same account model in the Account field and must be the same defined in the report template: %s" msgstr "" @@ -249,7 +249,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -268,7 +268,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -279,8 +279,8 @@ msgid "Auto expand" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -313,7 +313,7 @@ msgid "Bold" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "" @@ -345,13 +345,13 @@ msgid "Column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, python-format msgid "Column %s cannot be compared to itrec." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "" @@ -362,7 +362,7 @@ msgid "Columns" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "" @@ -470,7 +470,7 @@ msgid "Date From" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -494,7 +494,7 @@ msgid "Dates" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -515,7 +515,7 @@ msgid "Determines how values of this kpi spanning over a time period are transfo msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -805,7 +805,7 @@ msgid "Indent Level Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "" @@ -821,7 +821,7 @@ msgid "KPI" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "KPI \"{}\" has type {} while a tuple was expected.\n" "\n" @@ -832,7 +832,7 @@ msgid "KPI \"{}\" has type {} while a tuple was expected.\n" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is expected." msgstr "" @@ -844,7 +844,7 @@ msgid "KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "" @@ -1059,14 +1059,14 @@ msgid "MIS report instance XLS report" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1083,7 +1083,7 @@ msgid "Model" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1131,14 +1131,14 @@ msgid "No date filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1162,7 +1162,7 @@ msgid "Number of periods" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1184,8 +1184,8 @@ msgid "Parent column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 #: selection:mis.report.kpi,type:0 #, python-format @@ -1213,7 +1213,7 @@ msgid "Pivot date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "" @@ -1257,7 +1257,7 @@ msgid "Query Company" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, python-format msgid "Query name ({}) must be valid python identifier" msgstr "" @@ -1352,7 +1352,7 @@ msgid "Source" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1417,7 +1417,7 @@ msgid "Sub-KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "" @@ -1460,8 +1460,8 @@ msgid "Suffix Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1583,7 +1583,7 @@ msgid "Visibility" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1600,7 +1600,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1612,13 +1612,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "" @@ -1645,7 +1645,7 @@ msgid "or" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "" diff --git a/mis_builder/i18n/nl.po b/mis_builder/i18n/nl.po index ee3cd19..059fea0 100644 --- a/mis_builder/i18n/nl.po +++ b/mis_builder/i18n/nl.po @@ -19,8 +19,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "%s (kopie)" @@ -195,7 +195,7 @@ msgstr "" "datum, account_id en company_id velden" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "Een datum filter is verplicht voor deze bron in kolom %s." @@ -212,7 +212,7 @@ msgid "Accumulation Method" msgstr "Accumulatiemethode" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -312,7 +312,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -331,7 +331,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -342,8 +342,8 @@ msgid "Auto expand" msgstr "automatisch uitbreiden" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -376,7 +376,7 @@ msgid "Bold" msgstr "Vet" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "Kan een multi-kpi niet bijwerken vanaf de kpi-regel" @@ -411,13 +411,13 @@ msgid "Column" msgstr "Kolom" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, fuzzy, python-format msgid "Column %s cannot be compared to itrec." msgstr "Kolom %skan niet met zichzelf worden vergeleken." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, fuzzy, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "Kolom %s met Actuele waardes moet van/tot data hebben." @@ -428,7 +428,7 @@ msgid "Columns" msgstr "Kolommen" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "Te vergelijken kolommen moeten tot hetzelfde rapport in %s behoren" @@ -538,7 +538,7 @@ msgid "Date From" msgstr "Datumveld" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -563,7 +563,7 @@ msgid "Dates" msgstr "Data" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -595,7 +595,7 @@ msgstr "" "rata temporis-gewicht." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -902,7 +902,7 @@ msgid "Indent Level Inherit" msgstr "Inspring Niveau Overerven" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "Inspring niveau moet groter of gelijk zijn aan 0" @@ -918,7 +918,7 @@ msgid "KPI" msgstr "KPI" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -931,7 +931,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -946,7 +946,7 @@ msgid "KPI Sequence" msgstr "Reeks" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, fuzzy, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "De naam moet een geldige python identifier zijn" @@ -1171,14 +1171,14 @@ msgid "MIS report instance XLS report" msgstr "MIS rapportage instantie XLS rapport" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "Max" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1195,7 +1195,7 @@ msgid "Model" msgstr "Model" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1244,14 +1244,14 @@ msgid "No date filter" msgstr "Geen datum filter" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "Een datum filter is niet toegestaan voor deze bron in kolom %s." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1275,7 +1275,7 @@ msgid "Number of periods" msgstr "Aantal periodes" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1297,8 +1297,8 @@ msgid "Parent column" msgstr "Bovenliggende kolom" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1325,7 +1325,7 @@ msgid "Pivot date" msgstr "Uitgangsdatum" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "Geef beide kolommen op om te vergelijken in %s." @@ -1369,7 +1369,7 @@ msgid "Query Company" msgstr "Query Bedrijf" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, fuzzy, python-format msgid "Query name ({}) must be valid python identifier" msgstr "De naam moet een geldige python identifier zijn" @@ -1470,7 +1470,7 @@ msgid "Source" msgstr "Bron" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1538,7 +1538,7 @@ msgid "Sub-KPI Sequence" msgstr "Reeks" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, fuzzy, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "De naam moet een geldige python identifier zijn" @@ -1583,8 +1583,8 @@ msgid "Suffix Inherit" msgstr "Achtervoegsel Overerven" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1717,7 +1717,7 @@ msgid "Visibility" msgstr "Zichtbaarheid" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1734,7 +1734,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "Ongeldige normalisatie factor, moet positief zijn!" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1746,13 +1746,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "Periode %s kan niet bij zichzelf worden opgeteld." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "van %s tot %s" @@ -1779,7 +1779,7 @@ msgid "or" msgstr "of" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "pp" diff --git a/mis_builder/i18n/nl_NL.po b/mis_builder/i18n/nl_NL.po index 0b71f20..fe644cb 100644 --- a/mis_builder/i18n/nl_NL.po +++ b/mis_builder/i18n/nl_NL.po @@ -22,8 +22,8 @@ msgstr "" "X-Generator: Weblate 3.0.1\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "%s (kopie)" @@ -198,7 +198,7 @@ msgstr "" "datum, account_id en company_id velden" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "Een datum filter is verplicht voor deze bron in kolom %s." @@ -215,7 +215,7 @@ msgid "Accumulation Method" msgstr "Accumulatiemethode" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -315,7 +315,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -334,7 +334,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -345,8 +345,8 @@ msgid "Auto expand" msgstr "automatisch uitbreiden" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -379,7 +379,7 @@ msgid "Bold" msgstr "Vet" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "Kan een multi-kpi niet bijwerken vanaf de kpi-regel" @@ -414,13 +414,13 @@ msgid "Column" msgstr "Kolom" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, fuzzy, python-format msgid "Column %s cannot be compared to itrec." msgstr "Kolom %skan niet met zichzelf worden vergeleken." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, fuzzy, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "Kolom %s met Actuele waardes moet van/tot data hebben." @@ -431,7 +431,7 @@ msgid "Columns" msgstr "Kolommen" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "Te vergelijken kolommen moeten tot hetzelfde rapport in %s behoren" @@ -541,7 +541,7 @@ msgid "Date From" msgstr "Datumveld" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -566,7 +566,7 @@ msgid "Dates" msgstr "Data" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -598,7 +598,7 @@ msgstr "" "rata temporis-gewicht." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -905,7 +905,7 @@ msgid "Indent Level Inherit" msgstr "Inspring Niveau Overerven" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "Inspring niveau moet groter of gelijk zijn aan 0" @@ -921,7 +921,7 @@ msgid "KPI" msgstr "KPI" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -934,7 +934,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -949,7 +949,7 @@ msgid "KPI Sequence" msgstr "Reeks" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, fuzzy, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "De naam moet een geldige python identifier zijn" @@ -1174,14 +1174,14 @@ msgid "MIS report instance XLS report" msgstr "MIS rapportage instantie XLS rapport" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "Max" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1198,7 +1198,7 @@ msgid "Model" msgstr "Model" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1247,14 +1247,14 @@ msgid "No date filter" msgstr "Geen datum filter" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "Een datum filter is niet toegestaan voor deze bron in kolom %s." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1278,7 +1278,7 @@ msgid "Number of periods" msgstr "Aantal periodes" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1300,8 +1300,8 @@ msgid "Parent column" msgstr "Bovenliggende kolom" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1328,7 +1328,7 @@ msgid "Pivot date" msgstr "Uitgangsdatum" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "Geef beide kolommen op om te vergelijken in %s." @@ -1372,7 +1372,7 @@ msgid "Query Company" msgstr "Query Bedrijf" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, fuzzy, python-format msgid "Query name ({}) must be valid python identifier" msgstr "De naam moet een geldige python identifier zijn" @@ -1473,7 +1473,7 @@ msgid "Source" msgstr "Bron" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1541,7 +1541,7 @@ msgid "Sub-KPI Sequence" msgstr "Reeks" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, fuzzy, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "De naam moet een geldige python identifier zijn" @@ -1586,8 +1586,8 @@ msgid "Suffix Inherit" msgstr "Achtervoegsel Overerven" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1720,7 +1720,7 @@ msgid "Visibility" msgstr "Zichtbaarheid" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1737,7 +1737,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "Ongeldige normalisatie factor, moet positief zijn!" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1749,13 +1749,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "Periode %s kan niet bij zichzelf worden opgeteld." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "van %s tot %s" @@ -1782,7 +1782,7 @@ msgid "or" msgstr "of" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "pp" diff --git a/mis_builder/i18n/pt.po b/mis_builder/i18n/pt.po index 02c37dc..9ce3a6b 100644 --- a/mis_builder/i18n/pt.po +++ b/mis_builder/i18n/pt.po @@ -19,8 +19,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "" @@ -190,7 +190,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "" @@ -206,7 +206,7 @@ msgid "Accumulation Method" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -299,7 +299,7 @@ msgid "Analytic Account Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "" @@ -318,7 +318,7 @@ msgid "Analytic Tags Filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, python-format msgid "Analytic Tags: %s" msgstr "" @@ -329,8 +329,8 @@ msgid "Auto expand" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -363,7 +363,7 @@ msgid "Bold" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "" @@ -396,13 +396,13 @@ msgid "Column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, python-format msgid "Column %s cannot be compared to itrec." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "" @@ -413,7 +413,7 @@ msgid "Columns" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "" @@ -521,7 +521,7 @@ msgid "Date From" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -545,7 +545,7 @@ msgid "Dates" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -571,7 +571,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -871,7 +871,7 @@ msgid "Indent Level Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "" @@ -887,7 +887,7 @@ msgid "KPI" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -900,7 +900,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -914,7 +914,7 @@ msgid "KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "" @@ -1129,14 +1129,14 @@ msgid "MIS report instance XLS report" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1153,7 +1153,7 @@ msgid "Model" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1201,14 +1201,14 @@ msgid "No date filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1232,7 +1232,7 @@ msgid "Number of periods" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1254,8 +1254,8 @@ msgid "Parent column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1282,7 +1282,7 @@ msgid "Pivot date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "" @@ -1326,7 +1326,7 @@ msgid "Query Company" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, python-format msgid "Query name ({}) must be valid python identifier" msgstr "" @@ -1425,7 +1425,7 @@ msgid "Source" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1490,7 +1490,7 @@ msgid "Sub-KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "" @@ -1533,8 +1533,8 @@ msgid "Suffix Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1665,7 +1665,7 @@ msgid "Visibility" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1682,7 +1682,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1694,13 +1694,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "" @@ -1727,7 +1727,7 @@ msgid "or" msgstr "ou" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "" diff --git a/mis_builder/i18n/pt_BR.po b/mis_builder/i18n/pt_BR.po index 34c417b..f35e256 100644 --- a/mis_builder/i18n/pt_BR.po +++ b/mis_builder/i18n/pt_BR.po @@ -17,8 +17,8 @@ msgstr "" "X-Generator: Weblate 3.6.1\n" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:530 -#: code:addons/mis_builder/models/mis_report_instance.py:619 +#: code:addons/mis_builder/models/mis_report.py:531 +#: code:addons/mis_builder/models/mis_report_instance.py:620 #, python-format msgid "%s (copy)" msgstr "%s (cópia)" @@ -193,7 +193,7 @@ msgstr "" "credit, date, account_id e company_id." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:429 +#: code:addons/mis_builder/models/mis_report_instance.py:430 #, python-format msgid "A date filter is mandatory for this source in column %s." msgstr "Um filtro de data é obrigatório para esta fonte na coluna %s." @@ -209,7 +209,7 @@ msgid "Accumulation Method" msgstr "Método de Acumulação" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:323 +#: code:addons/mis_builder/models/mis_report_instance.py:324 #, python-format msgid "" "Actual (alternative) models used in columns must have the same account model " @@ -310,7 +310,7 @@ msgid "Analytic Account Filter" msgstr "Conta Analítica" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:583 +#: code:addons/mis_builder/models/mis_report_instance.py:584 #, python-format msgid "Analytic Account: %s" msgstr "Conta Analítica: %s" @@ -330,7 +330,7 @@ msgid "Analytic Tags Filter" msgstr "Esconder Filtros Analíticos" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:591 +#: code:addons/mis_builder/models/mis_report_instance.py:592 #, fuzzy, python-format msgid "Analytic Tags: %s" msgstr "Conta Analítica: %s" @@ -341,8 +341,8 @@ msgid "Auto expand" msgstr "Expandir Automaticamente" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:384 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:385 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -375,7 +375,7 @@ msgid "Bold" msgstr "Negrito" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:184 +#: code:addons/mis_builder/models/mis_report.py:185 #, python-format msgid "Can not update a multi kpi from the kpi line" msgstr "Não é possível atualizar um multi kpi da linha kpi" @@ -410,13 +410,13 @@ msgid "Column" msgstr "Coluna" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:449 +#: code:addons/mis_builder/models/mis_report_instance.py:450 #, python-format msgid "Column %s cannot be compared to itrec." msgstr "Coluna %s não pode ser comparada a itrec." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:735 +#: code:addons/mis_builder/models/mis_report_instance.py:736 #, fuzzy, python-format msgid "Column %s with move lines source must have from/to dates." msgstr "Coluna %s com pesquisas atuais devem ter datas de/para." @@ -427,7 +427,7 @@ msgid "Columns" msgstr "Colunas" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:458 +#: code:addons/mis_builder/models/mis_report_instance.py:459 #, python-format msgid "Columns to compare must belong to the same report in %s" msgstr "Colunas para comparar devem pertencer ao mesmo relatório em %s" @@ -537,7 +537,7 @@ msgid "Date From" msgstr "Campo de Data" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:193 +#: code:addons/mis_builder/models/mis_report_instance.py:194 #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_date_range_id #: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_date_range_id #: selection:mis.report.instance.period,type:0 @@ -562,7 +562,7 @@ msgid "Dates" msgstr "Datas" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:189 +#: code:addons/mis_builder/models/mis_report_instance.py:190 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Day" @@ -592,7 +592,7 @@ msgstr "" "ou parcialmente sobrepostos são ajustados pro-rata temporis." #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:115 +#: code:addons/mis_builder/models/mis_report.py:116 #: selection:mis.report.kpi,compare_method:0 #, python-format msgid "Difference" @@ -895,7 +895,7 @@ msgid "Indent Level Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:59 +#: code:addons/mis_builder/models/mis_report_style.py:60 #, python-format msgid "Indent level must be greater than or equal to 0" msgstr "" @@ -911,7 +911,7 @@ msgid "KPI" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:734 +#: code:addons/mis_builder/models/mis_report.py:735 #, python-format msgid "" "KPI \"{}\" has type {} while a tuple was expected.\n" @@ -924,7 +924,7 @@ msgid "" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:724 +#: code:addons/mis_builder/models/mis_report.py:725 #, python-format msgid "" "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} is " @@ -938,7 +938,7 @@ msgid "KPI Sequence" msgstr "KPI sequencia" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:161 +#: code:addons/mis_builder/models/mis_report.py:162 #, python-format msgid "KPI name ({}) must be a valid python identifier" msgstr "" @@ -1154,14 +1154,14 @@ msgid "MIS report instance XLS report" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:386 +#: code:addons/mis_builder/models/mis_report.py:387 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Max" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:385 +#: code:addons/mis_builder/models/mis_report.py:386 #: selection:mis.report.query,aggregate:0 #, python-format msgid "Min" @@ -1178,7 +1178,7 @@ msgid "Model" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:191 +#: code:addons/mis_builder/models/mis_report_instance.py:192 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Month" @@ -1226,14 +1226,14 @@ msgid "No date filter" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:435 +#: code:addons/mis_builder/models/mis_report_instance.py:436 #, python-format msgid "No date filter is allowed for this source in column %s." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:117 -#: code:addons/mis_builder/models/mis_report.py:124 +#: code:addons/mis_builder/models/mis_report.py:118 +#: code:addons/mis_builder/models/mis_report.py:125 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.kpi,compare_method:0 #, python-format @@ -1257,7 +1257,7 @@ msgid "Number of periods" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:105 +#: code:addons/mis_builder/models/mis_report.py:106 #: selection:mis.report.kpi,type:0 #, python-format msgid "Numeric" @@ -1279,8 +1279,8 @@ msgid "Parent column" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:106 -#: code:addons/mis_builder/models/mis_report.py:116 +#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:117 #: selection:mis.report.kpi,compare_method:0 selection:mis.report.kpi,type:0 #, python-format msgid "Percentage" @@ -1307,7 +1307,7 @@ msgid "Pivot date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:445 +#: code:addons/mis_builder/models/mis_report_instance.py:446 #, python-format msgid "Please provide both columns to compare in %s." msgstr "" @@ -1351,7 +1351,7 @@ msgid "Query Company" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:408 +#: code:addons/mis_builder/models/mis_report.py:409 #, python-format msgid "Query name ({}) must be valid python identifier" msgstr "" @@ -1450,7 +1450,7 @@ msgid "Source" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:107 +#: code:addons/mis_builder/models/mis_report.py:108 #: selection:mis.report.kpi,type:0 #, python-format msgid "String" @@ -1515,7 +1515,7 @@ msgid "Sub-KPI Sequence" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:269 +#: code:addons/mis_builder/models/mis_report.py:270 #, python-format msgid "Sub-KPI name ({}) must be a valid python identifier" msgstr "" @@ -1558,8 +1558,8 @@ msgid "Suffix Inherit" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report.py:124 -#: code:addons/mis_builder/models/mis_report.py:383 +#: code:addons/mis_builder/models/mis_report.py:125 +#: code:addons/mis_builder/models/mis_report.py:384 #: selection:mis.report.kpi,accumulation_method:0 #: selection:mis.report.query,aggregate:0 #, python-format @@ -1690,7 +1690,7 @@ msgid "Visibility" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:190 +#: code:addons/mis_builder/models/mis_report_instance.py:191 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Week" @@ -1707,7 +1707,7 @@ msgid "Wrong normalize factor, it must be positive!" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:192 +#: code:addons/mis_builder/models/mis_report_instance.py:193 #: selection:mis.report.instance.period,type:0 #, python-format msgid "Year" @@ -1719,13 +1719,13 @@ msgid "Year to date" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:60 +#: code:addons/mis_builder/models/mis_report_instance.py:61 #, python-format msgid "You cannot sum period %s with itself." msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_instance.py:809 +#: code:addons/mis_builder/models/mis_report_instance.py:810 #, python-format msgid "from %s to %s" msgstr "" @@ -1752,7 +1752,7 @@ msgid "or" msgstr "" #. module: mis_builder -#: code:addons/mis_builder/models/mis_report_style.py:239 +#: code:addons/mis_builder/models/mis_report_style.py:240 #, python-format msgid "pp" msgstr "" diff --git a/mis_builder/models/mis_report.py b/mis_builder/models/mis_report.py index 4625e15..ce178b9 100644 --- a/mis_builder/models/mis_report.py +++ b/mis_builder/models/mis_report.py @@ -1,4 +1,5 @@ # Copyright 2014 ACSONE SA/NV () +# Copyright 2020 CorporateHub (https://corporatehub.eu) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). import datetime @@ -72,7 +73,7 @@ class MisReportKpi(models.Model): _name = "mis.report.kpi" _description = "MIS Report KPI" - name = fields.Char(size=32, required=True, string="Name") + name = fields.Char(required=True, string="Name") description = fields.Char(required=True, string="Description", translate=True) multi = fields.Boolean() expression = fields.Char( @@ -257,7 +258,7 @@ class MisReportSubkpi(models.Model): report_id = fields.Many2one( comodel_name="mis.report", required=True, ondelete="cascade" ) - name = fields.Char(size=32, required=True, string="Name") + name = fields.Char(required=True, string="Name") description = fields.Char(required=True, string="Description", translate=True) expression_ids = fields.One2many("mis.report.kpi.expression", "subkpi_id") @@ -368,7 +369,7 @@ class MisReportQuery(models.Model): field_names = [field.name for field in record.field_ids] record.field_names = ", ".join(field_names) - name = fields.Char(size=32, required=True, string="Name") + name = fields.Char(required=True, string="Name") model_id = fields.Many2one( "ir.model", required=True, string="Model", ondelete="restrict" ) diff --git a/mis_builder/models/mis_report_instance.py b/mis_builder/models/mis_report_instance.py index d81ea1a..a2e29c6 100644 --- a/mis_builder/models/mis_report_instance.py +++ b/mis_builder/models/mis_report_instance.py @@ -1,4 +1,5 @@ # Copyright 2014 ACSONE SA/NV () +# Copyright 2020 CorporateHub (https://corporatehub.eu) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). import datetime @@ -174,7 +175,7 @@ class MisReportInstancePeriod(models.Model): _name = "mis.report.instance.period" _description = "MIS Report Instance Period" - name = fields.Char(size=32, required=True, string="Label", translate=True) + name = fields.Char(required=True, string="Label", translate=True) mode = fields.Selection( [ (MODE_FIX, "Fixed dates"), diff --git a/mis_builder/models/mis_report_style.py b/mis_builder/models/mis_report_style.py index 6fac240..a486cf7 100644 --- a/mis_builder/models/mis_report_style.py +++ b/mis_builder/models/mis_report_style.py @@ -1,5 +1,6 @@ # Copyright 2016 Therp BV () # Copyright 2016 ACSONE SA/NV () +# Copyright 2020 CorporateHub (https://corporatehub.eu) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). import sys @@ -111,9 +112,9 @@ class MisReportKpiStyle(models.Model): indent_level = fields.Integer() # number format prefix_inherit = fields.Boolean(default=True) - prefix = fields.Char(size=16, string="Prefix") + prefix = fields.Char(string="Prefix") suffix_inherit = fields.Boolean(default=True) - suffix = fields.Char(size=16, string="Suffix") + suffix = fields.Char(string="Suffix") dp_inherit = fields.Boolean(default=True) dp = fields.Integer(string="Rounding", default=0) divider_inherit = fields.Boolean(default=True) diff --git a/mis_builder/static/description/index.html b/mis_builder/static/description/index.html index 8796dca..40b4b45 100644 --- a/mis_builder/static/description/index.html +++ b/mis_builder/static/description/index.html @@ -905,6 +905,10 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
  • Arnaud Pineux <arnaud.pineux@acsone.eu>
  • Ernesto Tejeda <ernesto.tejeda@tecnativa.com>
  • Pedro M. Baeza <pedro.baeza@tecnativa.com>
  • +
  • CorporateHub +
  • diff --git a/mis_builder/wizard/mis_builder_dashboard.py b/mis_builder/wizard/mis_builder_dashboard.py index 12e438e..b9ffe73 100644 --- a/mis_builder/wizard/mis_builder_dashboard.py +++ b/mis_builder/wizard/mis_builder_dashboard.py @@ -1,4 +1,5 @@ # Copyright 2014 ACSONE SA/NV () +# Copyright 2020 CorporateHub (https://corporatehub.eu) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from lxml import etree @@ -10,7 +11,7 @@ class AddMisReportInstanceDashboard(models.TransientModel): _name = "add.mis.report.instance.dashboard.wizard" _description = "MIS Report Add to Dashboard Wizard" - name = fields.Char("Name", size=32, required=True) + name = fields.Char("Name", required=True) dashboard_id = fields.Many2one( "ir.actions.act_window", From 0aa6ea69edfa059fa21e1a6938d8a0b9192546a4 Mon Sep 17 00:00:00 2001 From: Flectra Community Bot Date: Sun, 17 Oct 2021 02:22:08 +0000 Subject: [PATCH 3/8] Automatic Update form OCA2FC Migrator --- .gitlab-ci.yml | 96 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f43ce22..9a1108d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,9 +25,31 @@ test_all_modules: - apt-get install -y p7zip-full - apt-get install -y expect-dev - su - flectra -c "mkdir ~/others" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-closing.git ~/others/account-closing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-invoicing.git ~/others/account-invoicing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-payment.git ~/others/account-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/bank-payment.git ~/others/bank-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/brand.git ~/others/brand" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/community-data-files.git ~/others/community-data-files" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/connector.git ~/others/connector" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/edi.git ~/others/edi" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/partner-contact.git ~/others/partner-contact" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/product-attribute.git ~/others/product-attribute" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/queue.git ~/others/queue" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/report-print-send.git ~/others/report-print-send" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/social.git ~/others/social" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-transport.git ~/others/stock-logistics-transport" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-warehouse.git ~/others/stock-logistics-warehouse" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-workflow.git ~/others/stock-logistics-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/storage.git ~/others/storage" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/web.git ~/others/web" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/wms.git ~/others/wms" - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 - mkdir ${CI_PROJECT_DIR}/ci_data - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip @@ -39,7 +61,7 @@ test_all_modules: - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_all - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_all - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/reporting-engine,~/others/server-tools,~/others/server-ux + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms --db_host psql --db_port 5432 --db_user flectra @@ -65,9 +87,31 @@ test_module_mis_builder_budget: - apt-get install -y p7zip-full - apt install -y expect-dev - su - flectra -c "mkdir ~/others" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-closing.git ~/others/account-closing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-invoicing.git ~/others/account-invoicing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-payment.git ~/others/account-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/bank-payment.git ~/others/bank-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/brand.git ~/others/brand" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/community-data-files.git ~/others/community-data-files" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/connector.git ~/others/connector" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/edi.git ~/others/edi" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/partner-contact.git ~/others/partner-contact" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/product-attribute.git ~/others/product-attribute" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/queue.git ~/others/queue" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/report-print-send.git ~/others/report-print-send" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/social.git ~/others/social" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-transport.git ~/others/stock-logistics-transport" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-warehouse.git ~/others/stock-logistics-warehouse" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-workflow.git ~/others/stock-logistics-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/storage.git ~/others/storage" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/web.git ~/others/web" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/wms.git ~/others/wms" - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 - mkdir ${CI_PROJECT_DIR}/ci_data - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip @@ -79,7 +123,7 @@ test_module_mis_builder_budget: - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder_budget - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder_budget - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/reporting-engine,~/others/server-tools,~/others/server-ux + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms --db_host psql --db_port 5432 --db_user flectra @@ -100,9 +144,31 @@ test_module_mis_builder: - apt-get install -y p7zip-full - apt install -y expect-dev - su - flectra -c "mkdir ~/others" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-closing.git ~/others/account-closing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-invoicing.git ~/others/account-invoicing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-payment.git ~/others/account-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/bank-payment.git ~/others/bank-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/brand.git ~/others/brand" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/community-data-files.git ~/others/community-data-files" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/connector.git ~/others/connector" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/edi.git ~/others/edi" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/partner-contact.git ~/others/partner-contact" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/product-attribute.git ~/others/product-attribute" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/queue.git ~/others/queue" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/report-print-send.git ~/others/report-print-send" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/social.git ~/others/social" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-transport.git ~/others/stock-logistics-transport" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-warehouse.git ~/others/stock-logistics-warehouse" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-workflow.git ~/others/stock-logistics-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/storage.git ~/others/storage" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/web.git ~/others/web" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/wms.git ~/others/wms" - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 - mkdir ${CI_PROJECT_DIR}/ci_data - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip @@ -114,7 +180,7 @@ test_module_mis_builder: - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/reporting-engine,~/others/server-tools,~/others/server-ux + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms --db_host psql --db_port 5432 --db_user flectra @@ -135,9 +201,31 @@ test_module_mis_builder_demo: - apt-get install -y p7zip-full - apt install -y expect-dev - su - flectra -c "mkdir ~/others" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-closing.git ~/others/account-closing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-invoicing.git ~/others/account-invoicing" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/account-payment.git ~/others/account-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/bank-payment.git ~/others/bank-payment" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/brand.git ~/others/brand" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/community-data-files.git ~/others/community-data-files" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/connector.git ~/others/connector" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/edi.git ~/others/edi" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/partner-contact.git ~/others/partner-contact" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/product-attribute.git ~/others/product-attribute" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/queue.git ~/others/queue" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/report-print-send.git ~/others/report-print-send" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/social.git ~/others/social" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-transport.git ~/others/stock-logistics-transport" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-warehouse.git ~/others/stock-logistics-warehouse" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/stock-logistics-workflow.git ~/others/stock-logistics-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/storage.git ~/others/storage" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/web.git ~/others/web" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/wms.git ~/others/wms" - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 - mkdir ${CI_PROJECT_DIR}/ci_data - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip @@ -149,7 +237,7 @@ test_module_mis_builder_demo: - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder_demo - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder_demo - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/reporting-engine,~/others/server-tools,~/others/server-ux + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms --db_host psql --db_port 5432 --db_user flectra From 2125405b4287fdb29c96a6c3378ef2506df5bed4 Mon Sep 17 00:00:00 2001 From: Flectra Community Bot Date: Sun, 31 Oct 2021 03:21:34 +0000 Subject: [PATCH 4/8] Automatic Update form OCA2FC Migrator --- .gitlab-ci.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9a1108d..2d68205 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,6 +40,7 @@ test_all_modules: - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-auth.git ~/others/server-auth" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" @@ -61,7 +62,7 @@ test_all_modules: - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_all - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_all - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-auth,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms --db_host psql --db_port 5432 --db_user flectra @@ -102,6 +103,7 @@ test_module_mis_builder_budget: - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-auth.git ~/others/server-auth" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" @@ -123,7 +125,7 @@ test_module_mis_builder_budget: - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder_budget - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder_budget - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-auth,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms --db_host psql --db_port 5432 --db_user flectra @@ -159,6 +161,7 @@ test_module_mis_builder: - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-auth.git ~/others/server-auth" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" @@ -180,7 +183,7 @@ test_module_mis_builder: - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-auth,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms --db_host psql --db_port 5432 --db_user flectra @@ -216,6 +219,7 @@ test_module_mis_builder_demo: - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/reporting-engine.git ~/others/reporting-engine" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/rest-framework.git ~/others/rest-framework" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/sale-workflow.git ~/others/sale-workflow" + - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-auth.git ~/others/server-auth" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-env.git ~/others/server-env" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-tools.git ~/others/server-tools" - su - flectra -c "git clone --branch 20-fixed --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/flectra-community/server-ux.git ~/others/server-ux" @@ -237,7 +241,7 @@ test_module_mis_builder_demo: - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder_demo - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder_demo - su - flectra -c "/opt/flectra/flectra-bin - --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms + --addons-path ${CI_PROJECT_DIR},~/others/account-closing,~/others/account-invoicing,~/others/account-payment,~/others/bank-payment,~/others/brand,~/others/community-data-files,~/others/connector,~/others/edi,~/others/partner-contact,~/others/product-attribute,~/others/queue,~/others/report-print-send,~/others/reporting-engine,~/others/rest-framework,~/others/sale-workflow,~/others/server-auth,~/others/server-env,~/others/server-tools,~/others/server-ux,~/others/social,~/others/stock-logistics-transport,~/others/stock-logistics-warehouse,~/others/stock-logistics-workflow,~/others/storage,~/others/web,~/others/wms --db_host psql --db_port 5432 --db_user flectra From dadcbbc470fb88d57a61aa6a25062dff85e5db3b Mon Sep 17 00:00:00 2001 From: Renzo Meister Date: Tue, 8 Jun 2021 13:33:25 +0200 Subject: [PATCH 5/8] apply from old repository apply from old repository --- mis_builder/models/kpimatrix.py | 4 +- mis_builder/models/mis_report.py | 23 ++- mis_builder/models/mis_report_instance.py | 1 + .../report/mis_report_instance_qweb.xml | 72 ++++---- mis_builder/static/src/css/report.css | 39 ++--- mis_builder/views/mis_report.xml | 1 + mis_builder/views/mis_report_instance.xml | 1 + mis_builder/wizard/mis_builder_dashboard.py | 2 +- .../models/mis_budget_by_account_item.py | 6 + mis_builder_expimp/__init__.py | 1 + mis_builder_expimp/__manifest__.py | 16 ++ .../static/description/icon.png | Bin 0 -> 4770 bytes .../static/description/index.html | 69 ++++++++ .../static/description/screenshot.png | Bin 0 -> 73830 bytes mis_builder_expimp/wizards/__init__.py | 2 + .../wizards/mis_builder_export_views.xml | 45 +++++ .../wizards/mis_builder_export_wizard.py | 162 ++++++++++++++++++ .../wizards/mis_builder_import_views.xml | 34 ++++ .../wizards/mis_builder_import_wizard.py | 153 +++++++++++++++++ 19 files changed, 571 insertions(+), 60 deletions(-) create mode 100644 mis_builder_expimp/__init__.py create mode 100644 mis_builder_expimp/__manifest__.py create mode 100644 mis_builder_expimp/static/description/icon.png create mode 100644 mis_builder_expimp/static/description/index.html create mode 100644 mis_builder_expimp/static/description/screenshot.png create mode 100644 mis_builder_expimp/wizards/__init__.py create mode 100644 mis_builder_expimp/wizards/mis_builder_export_views.xml create mode 100644 mis_builder_expimp/wizards/mis_builder_export_wizard.py create mode 100644 mis_builder_expimp/wizards/mis_builder_import_views.xml create mode 100644 mis_builder_expimp/wizards/mis_builder_import_wizard.py diff --git a/mis_builder/models/kpimatrix.py b/mis_builder/models/kpimatrix.py index 764eacb..a626a9d 100644 --- a/mis_builder/models/kpimatrix.py +++ b/mis_builder/models/kpimatrix.py @@ -6,6 +6,7 @@ from collections import OrderedDict, defaultdict from flectra import _ from flectra.exceptions import UserError +from flectra.tools import float_is_zero from .accounting_none import AccountingNone from .mis_kpi_data import ACC_SUM @@ -71,7 +72,8 @@ class KpiMatrixRow(object): def is_empty(self): for cell in self.iter_cells(): - if cell and cell.val not in (AccountingNone, None): + dp = cell and cell.row.kpi.env.user.company_id.currency_id.decimal_places or 6 + if cell and not float_is_zero(cell.val, dp) and cell.val not in (AccountingNone, None): return False return True diff --git a/mis_builder/models/mis_report.py b/mis_builder/models/mis_report.py index ce178b9..8869cf7 100644 --- a/mis_builder/models/mis_report.py +++ b/mis_builder/models/mis_report.py @@ -390,10 +390,15 @@ class MisReportQuery(models.Model): ) date_field = fields.Many2one( comodel_name="ir.model.fields", - required=True, + required=False, domain=[("ttype", "in", ("date", "datetime"))], ondelete="restrict", ) + query_context = fields.Text( + string='Context', + translate=False, + default='{}', + ) domain = fields.Char(string="Domain") report_id = fields.Many2one( comodel_name="mis.report", string="Report", required=True, ondelete="cascade" @@ -580,7 +585,21 @@ class MisReport(models.Model): self.ensure_one() res = {} for query in self.query_ids: - model = self.env[query.model_id.model] + eval_context = { + "env": self.env, + "fields": fields, + "time": time, + "datetime": datetime, + "dateutil": dateutil, + # deprecated + "uid": self.env.uid, + "context": self.env.context, + "date_from": date_from, + "date_to": date_to, + + } + ctx = query.query_context and safe_eval(query.query_context, eval_context) or {} + model = self.env[query.model_id.model].with_context(ctx) eval_context = { "env": self.env, "time": time, diff --git a/mis_builder/models/mis_report_instance.py b/mis_builder/models/mis_report_instance.py index a2e29c6..39cceb4 100644 --- a/mis_builder/models/mis_report_instance.py +++ b/mis_builder/models/mis_report_instance.py @@ -534,6 +534,7 @@ class MisReportInstance(models.Model): ) landscape_pdf = fields.Boolean(string="Landscape PDF") no_auto_expand_accounts = fields.Boolean(string="Disable account details expansion") + use_external_layout = fields.Boolean(string='Use External Layout') display_columns_description = fields.Boolean( help="Display the date range details in the column headers." ) diff --git a/mis_builder/report/mis_report_instance_qweb.xml b/mis_builder/report/mis_report_instance_qweb.xml index ca5f923..09966d0 100644 --- a/mis_builder/report/mis_report_instance_qweb.xml +++ b/mis_builder/report/mis_report_instance_qweb.xml @@ -20,7 +20,21 @@ + + diff --git a/mis_builder/static/src/css/report.css b/mis_builder/static/src/css/report.css index 0d58939..60c111b 100644 --- a/mis_builder/static/src/css/report.css +++ b/mis_builder/static/src/css/report.css @@ -1,46 +1,39 @@ .mis_table { - display: table; width: 100%; - table-layout: fixed; } .mis_row { - display: table-row; page-break-inside: avoid; } .mis_cell { - display: table-cell; page-break-inside: avoid; } -.mis_thead { - display: table-header-group; -} -.mis_tbody { - display: table-row-group; -} -.mis_table, -.mis_table .mis_row { - border-left: 0px; - border-right: 0px; - text-align: left; - padding-right: 3px; - padding-left: 3px; - padding-top: 2px; - padding-bottom: 2px; - border-collapse: collapse; -} + .mis_table .mis_row { border-color: grey; border-bottom: 1px solid lightGrey; } -.mis_table .mis_cell.mis_collabel { + +.mis_table .mis_cell.mis_collabel_group { font-weight: bold; background-color: #f0f0f0; text-align: center; } + +.mis_table .mis_cell.mis_collabel_group, .mis_table .mis_cell.mis_collabel.mis_first { + border-left: 2px solid #fff; +} + +.mis_table .mis_cell.mis_collabel { + font-weight: bold; + background-color: #f0f0f0; + text-align: right; + padding-right: 5px; +} .mis_table .mis_cell.mis_rowlabel { text-align: left; - /*white-space: nowrap;*/ + white-space: nowrap; } .mis_table .mis_cell.mis_amount { text-align: right; + padding-right: 5px; } diff --git a/mis_builder/views/mis_report.xml b/mis_builder/views/mis_report.xml index 14b8f1f..0cd66d4 100644 --- a/mis_builder/views/mis_report.xml +++ b/mis_builder/views/mis_report.xml @@ -68,6 +68,7 @@ name="date_field" domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]" /> + diff --git a/mis_builder/views/mis_report_instance.xml b/mis_builder/views/mis_report_instance.xml index 70adfee..73cc57a 100644 --- a/mis_builder/views/mis_report_instance.xml +++ b/mis_builder/views/mis_report_instance.xml @@ -189,6 +189,7 @@ + diff --git a/mis_builder/wizard/mis_builder_dashboard.py b/mis_builder/wizard/mis_builder_dashboard.py index b9ffe73..b58b8b0 100644 --- a/mis_builder/wizard/mis_builder_dashboard.py +++ b/mis_builder/wizard/mis_builder_dashboard.py @@ -17,7 +17,7 @@ class AddMisReportInstanceDashboard(models.TransientModel): "ir.actions.act_window", string="Dashboard", required=True, - domain="[('res_model', '=', " "'board.board')]", + domain="[('res_model', '=', 'board.board')]", ) @api.model diff --git a/mis_builder_budget/models/mis_budget_by_account_item.py b/mis_builder_budget/models/mis_budget_by_account_item.py index b14a219..9e30891 100644 --- a/mis_builder_budget/models/mis_budget_by_account_item.py +++ b/mis_builder_budget/models/mis_budget_by_account_item.py @@ -37,6 +37,12 @@ class MisBudgetByAccountItem(models.Model): required=True, # TODO domain (company_id) ) + user_type_id = fields.Many2one( + comodel_name='account.account.type', + related='account_id.user_type_id', + store=True, + readonly=True, + ) _sql_constraints = [ ( diff --git a/mis_builder_expimp/__init__.py b/mis_builder_expimp/__init__.py new file mode 100644 index 0000000..326c3db --- /dev/null +++ b/mis_builder_expimp/__init__.py @@ -0,0 +1 @@ +from . import wizards \ No newline at end of file diff --git a/mis_builder_expimp/__manifest__.py b/mis_builder_expimp/__manifest__.py new file mode 100644 index 0000000..7456fc5 --- /dev/null +++ b/mis_builder_expimp/__manifest__.py @@ -0,0 +1,16 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "MIS Builder Import / Export", + "summary": """Import / Export Reports with all dependencies""", + "version": "1.0.1.0.0", + "license": "AGPL-3", + "author": "Jamotion GmbH", + "website": "https://gitlab.com/flectra-community/mis-builder", + "depends": ["mis_builder"], + "data": [ + "wizards/mis_builder_export_views.xml", + "wizards/mis_builder_import_views.xml", + ], + "installable": True, +} diff --git a/mis_builder_expimp/static/description/icon.png b/mis_builder_expimp/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1afa781fabb8088818f3940ef56711e6281bd31e GIT binary patch literal 4770 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 +
    +
    +
    + +

    MIS Builder - Import / Export

    +

    Function to import / export MIS Report Templates

    +
    +
    +
    + +
    +
    +

    Full export and import of report template

    +
    + +
    +
    +

    + When exporting a report, all related data are exported too: +

    +
      +
    • KPIs
    • +
    • SubKPIs
    • +
    • Expressions
    • +
    • Queries
    • +
    • Sub Reports
    • +
    • Styles
    • +
    +
    +
    +
    + +
    +
    +

    Quick Start

    +
    +

    Installation

    +
    +

    + There are no dependencies other than flectra base modules, so you can simply install the module. +

    +
    +
    +
    +

    Configuration

    +
    +

    + No configuration options available. +

    +
    +
    +
    +

    Usage

    +
    +

    + You will find two new menu items at Finance -> Configuration -> MIS Reporting: +

    +
      +
    • Export MIS Report -> shows a PopUp to select the report to export
    • +
    • Import MIS Report -> shows a PopUp to select the file of exported report to import
    • +
    +
    +
    + +
    +
    + +
    \ No newline at end of file diff --git a/mis_builder_expimp/static/description/screenshot.png b/mis_builder_expimp/static/description/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9cbb176a16c35c0e6a21bf092b8ffc9ddccb8aaa GIT binary patch literal 73830 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 z5f=ae0000001+1e00000000pe00000000ni0RR910000GaRC4T000005ODzj00000 z01$Bj00000000ni0RR910000H7XSbN000005f=ae0000001+1e00000000pe00000 z000ni0RR910000GaRC4T000005ODzj0000001$Bj00000000s9me3XL-@N*8o)+Z_ z00000004KK=;q$WsW0#R{b)&(DF&;+2gmob_wo%A+e%Tcw^@CCJqiH;00000;MPQ3 zA~IR|#EgydG>2Y}BO(gy-5-St00000004JG#I3EZRVtModoRm3|dya^7)#)k6(h92eBy#fU)4#93f+3=slcZ z000000Kk12aWxtZ5p_7_w#TF{$j}ZPHO^CEtj*fHYj2jzBVCl@vI_@txUk_5`zeeS zM|N&Ind1@bFC`)}R_0#ud2r-7I}u-ad`nVF?$`mooNL5{$0CGyd*%4HR5sF6#!!8B z(veH{k;CFVtu@7`4;&gl*{U_9NDz#I1v$P?R$)T zu$z60IT*(-p&oJ~o>Thy*&ZmXqAp6kbFWeH#BoH#*tt7M(^Wbm;o4o^t9v&)5fQQO z{$6}?c|Gr|WEz%KnZEaAZQ#(sZXB`d;!AbTy@q%yIU(Px+9hEGhld(y;NLseD$g8Yzjm5xrdJB1V)c>YZ#}Q zw^B&0{G-Q4`EngvBLDyZ0002oCoJC=S0&s3b+?R(t=l}o!0001hrKZ!{mv4zk9uU^M zD0%z(6r;?+yGOSksb>-rWseLBvYfvSg=aEK4OFppeKHXdapK-XCv>s%jfqwtO-bC8 zR8KOcclXHda_mR|000000AS|Mo!j*JjodT{ZU)cu7N_vdnHm|5Mx)VaGMNkpgYdYt zv~lVVW>00000004l93jhEB0001hhzkG!00000fQSnK z000000Dy=K00000008$g5sKh`P(307h0t+!+fUrWrRj9KPFfBUi3F7a00000Iv2F! z0ssI20000YE&u=k00000A}#;`0000003t2`00000001H`00000001E30ssI20000W z;sO8w00000AmRc50000003hN500000001H`Kxbtb_=(4FU)jo8UK*$T?I#C0>b7O7 zKRF_=)5%YzyF&a_BRWmAbG>;KaO3g))8^Ok&~WzD%y!br33%~002P5 zg_|JeUs>+lGrjKhhbpe9$t_AY_hY9ig@wPIy94Vsc@B{e(W}?)>iAnE8Q+w@u&ikU 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 z&T&!8#y8Wi6qxI5>l~k1l@wYEkbR?EW?H?tF&ULY!Lf(WYL-b0Cjq->PlN#&0 zGwmxq3Yukk7jk=U`#1Kol;Ce-~5>C&h6WV56)RtqFSGH^1?CG00000 z0I-kj{9Ig76n8u6RIDRorMGETd&nkkDVEk&e0*GdoXFG4XwQT@EJc3h4#wNfXSH!7s z`~d&}0000E5cb(;pKX1;`-cVrJdM}uWgIWdL`1SIZ+szHmN#F@B-7fO&t{87bpZeX z006*lOiaw`bZTP67$ahgF~*2!^DCq61C^0)0RR91003a05>N%OkNEwV@EQOB007{C z5XF~2@h^vJ1poj5004l40TCAf0000001$Bj00000000ni0RR910000GaRC4T00000 z5ODzj0000001+1e00000000pe000000000H7XSbN000005f=ae000005ODzj00000 z01$Bj00000000ni0RR910000GaRC4T000005ODzj0000001+1e00000000pe00000 z0000H7XSbN000005f=ae000005ODzj0000001$Bj00000003Ss0aXA1000MuEX(WP zFvd_D003_w^x^^l0KkEYxV5#{L!r=S)&&3nMBIHT*ni`TZ(F9GzQC&U@|W!kIOG5T z00)>PNevBmYiqCj{XV2z0Dw2puNeFKm)x*N&rc2*Hkdxnj|EQVq zzQLbtah|KiZyx*zV!A0BgPwk_#NDF54I z4uMGaOn2UCxISS1I8(pdh-*o!u>7hwBCRbf`*dgv00007#hp8MDk>@jL8z)as#2+t zasdDkai32XVjb$4`xE|5he$+hc4$x&?_ks3ZA-c*XI5-Q1@T5ABCX|6&2iPTMziBO ziRXEqCnAF_%dT&qU!_bv5lM6X^(|c!t3f74CzV!J*>ps->in^RPmh}I8Cz8)zkRmS z-T0q9(I1`4)DUsOx!wk6_v}i5L_=Efv7)5)pv?T!9ar!4FZd+2#a?x!(xT$V?)>k& z;{i#U`{Iih;x*+L-*vFX?uPpN(`zAKh_M$}mZi%Nu3Q;Qc=u$sk{B&_T>7~u^Xw;C zCL)UT-}rpg_R*{@9&k2xjV|~}5pBz^ zC_8Kr7`gj?uA5D?1_npnk`&e@K3o_8003TCYHI53+qbK$s|7((R#t(O3jlzKy9*L$ zO|^6nj|Uv-Dv}llrxnTN`r#cSt|lf*+uYtb!sjPi)I3F$W_#>&*3AW%$0j|-R09!l zfyq0!@A*qlerz|&bDg!f?{u6wo3Cd?(#*hc{Hb?7G6_UP?#-VLjMUv}Hx!@y&~B9G zI&R*&I$-)RO;1F=krB_4lNW93$UwvQb9aQ003`B#P$3AZnt||mJs#&=L`~N@s3ni_n<#5N0{%Q71Q(8G`!PdNoD7yPS^eV z9~ykJHagapnw^stqugOh?PSw8Upk4TNKldzO3$U~iHJ=N4HL5S5DSH z`I)XHNlXfReg3ehjwyNjQzDrtDcMvvJ{z{#{8O{RoZ`&>zEMw(Sv5bhtk0-cbH1Sm zYnFnOHa$M)RT0tR$XMWTO;(hOhzuD;Sr2XuEXWCFBI1nM*;XYH z@#f?NQ{BQMrN^U%0ssKKxNtbk^L#-;!7so3a_ZD6K@f_IipP-iU}RiXsth zO}V?tw?rhV;xb~LwNt(v)#$L!aZ$_0cV3X!q!b=aDP&U6y)-@9*>W39f&q6csxpYM*CK)aoDh_Q^_d zvoBQCiVp*^g6COer+tki6rD_Sxo&;e<`=Ya$%l&z(hY(-KGD)Qz92<;CM5fjM90d# zYtz0W-Nd*)@okZ@MNhyt+VI8a4VyI+XOVVZ74!K*;Rio_-nzL#RqXnHFoj0_a8G%q zK;8(NCjbDzuOdm3BuRoGl$V$P_~Vb~&z~0rAwNGKDHj0Xjfl8Uq}*NR+w~}BNwtOt zCZ|+$Vrrg-LOcJNnH?R~CONcB=9Rh_dsbz5{JY^fDQo*|$q`bk54#MPuu&)$!e|6zv!08!V?j3e)l5jOd_M*4$D?W=Tx1}sfzfQXS-Xj z-|dY%muoO4q$~P|r^Z)VLaA0TJFKi@d`dsZk`L>NWVKeMb{u)HDw%)&s?=&xRr>bs zr_llc0Du=24u=In5CnmUjvhVw_19m2@WBUyAmrraC=?2$TmXOr?9ojr>&f;-@+}dO z9P7wf>1~?T98AW0$r@@QxOv?12A(>;}J<5O2D;$I%@pAJUF z7>Fp=k-E}dH?$Za;`|HuZ{4})e%52|B(*IgYRTC;>XwKLE)U(k@$=BiGjlpG%B#~0 zzTndAf?tmG-}=k#z8SyFiF%_!$?-f9$)r!RE2o`3E3t`DMB$i}kymM{0Z;X10XvbAWIg(U8&0X_8B9ayd8*X<`OK67x001wOBuU|LI2>Mo z79pKJefoq*JQoD*MqDm+`=5K1L{iew$ z^ZKZavSa#ZfB33OK6=F0;Jo@}eSjAYX~pNWOwU+4BE;q7YHwZr_A6!d;p1<`q~@0{ zI2$jw`XpWvZ7ZzESWo=A#CS#5uqD|@L^6wZ#8c;@&Au_|@x~T!ep%-wQJ<7uo~tmJIOD-92@U;l_)mgS8vB+K&VOPOR^Tl3j$v8XNp0C
      ^D8bn+G001~> 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 + + + + mis.builder.export.wizard.view + mis.builder.export.wizard + +

      + + +
      +

      This wizard will export a MIS Report including all dependencies. +
      After export you can import this file in another system to have the same MIS Report. +

      +
      + + + + + + + + +
      +
      + +
      + + + Export MIS Report + ir.actions.act_window + mis.builder.export.wizard + form + new + + + + \ No newline at end of file diff --git a/mis_builder_expimp/wizards/mis_builder_export_wizard.py b/mis_builder_expimp/wizards/mis_builder_export_wizard.py new file mode 100644 index 0000000..4613aaa --- /dev/null +++ b/mis_builder_expimp/wizards/mis_builder_export_wizard.py @@ -0,0 +1,162 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +import base64 +import json + +from lxml import etree + +from flectra import api, fields, models, _ + +QUERY_FIELDS = ['name', 'model_id', 'field_ids', 'aggregate', 'date_field', 'query_context', 'domain'] + +REPORT_FIELDS = ['name', 'description', 'account_model', 'subreport_ids'] + +KPI_FIELDS = [ + 'name', 'description', 'multi', 'auto_expand_accounts', 'style_expression', + 'type', 'compare_method', 'accumulation_method', 'sequence', 'budgetable', + 'expression' +] + +STYLE_FIELDS = [ + 'name', + 'color_inherit', 'color', + 'background_color_inherit', 'background_color', + 'font_style_inherit', 'font_style', + 'font_weight_inherit', 'font_weight', + 'font_size_inherit', 'font_size', + 'indent_level_inherit', 'indent_level', + 'prefix_inherit', 'prefix', + 'suffix_inherit', 'suffix', + 'dp_inherit', 'dp', + 'divider_inherit', 'divider', + 'hide_empty_inherit', 'hide_empty', + 'hide_always_inherit', 'hide_alway', +] + + +class MisBuilderExportWizard(models.TransientModel): + _name = "mis.builder.export.wizard" + _description = "Export MIS Builder Report" + + report_id = fields.Many2one( + comodel_name='mis.report', + string='Report', + required=True, + ) + + name = fields.Char( + string='File Name', + default='mis_report.json', + ) + + file_save = fields.Binary( + string='Settings File', + readonly=True, + ) + + state = fields.Selection([ + ('draft', 'Draft'), + ('download', 'Download') + ], default='draft') + + def export(self): + self.ensure_one() + + report_data = self._read_subreport_data(self.report_id.subreport_ids) + report_data.append(self._read_report_data(self.report_id)) + + json_data = json.dumps(report_data, indent=2) + # change state of the wizard + self.write({ + 'name': '%s.json' % self.report_id.name, + 'file_save': base64.b64encode(json_data.encode()), + 'state': 'download' + }) + + return { + 'name': _('Save'), + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': self._name, + 'type': 'ir.actions.act_window', + 'target': 'new', + 'res_id': self.id, + } + + @api.model + def _read_subreport_data(self, subreport_ids): + report_data = [] + for subreport_id in subreport_ids: + report_data.extend(self._read_subreport_data(subreport_id.subreport_id.subreport_ids)) + report_data.append(self._read_report_data(subreport_id.subreport_id)) + + return report_data + + @api.model + def _read_report_data(self, report_id): + report_data = report_id.read(REPORT_FIELDS)[0] + del report_data['id'] + report_data['extid'] = '__export__.mis_report_%s' % report_id.id + report_data['move_lines_source'] = report_id.move_lines_source.model + if report_id.style_id: + report_data['style_id'] = report_id.style_id.read(STYLE_FIELDS)[0] + del report_data['style_id']['id'] + report_data['style_id']['extid'] = '__export__.mis_report_style_%s' % report_id.style_id.id + if report_id.query_ids: + report_data['query_ids'] = [] + for query_id in report_id.query_ids: + query_data = query_id.read(QUERY_FIELDS)[0] + del query_data['id'] + query_data['model_id'] = query_id.model_id.model + query_data['field_ids'] = query_id.field_ids.mapped('name') + query_data['extid'] = '__export__.mis_report_query_%s' % query_id.id + report_data['query_ids'].append(query_data) + if report_id.kpi_ids: + report_data['kpi_ids'] = [] + last_kpi_sequence = -1 + for kpi_id in report_id.kpi_ids.sorted(key=lambda s: s.sequence): + kpi_data = kpi_id.read(KPI_FIELDS)[0] + # Fix of sequences to be unique - otherwise there are problems on importing reports with subkpis + if kpi_id.sequence <= last_kpi_sequence: + kpi_data['sequence'] = last_kpi_sequence + 1 + last_kpi_sequence = kpi_data['sequence'] + del kpi_data['id'] + if kpi_id.style_id: + kpi_data['style_id'] = kpi_id.style_id.read(STYLE_FIELDS)[0] + del kpi_data['style_id']['id'] + kpi_data['style_id']['extid'] = '__export__.mis_report_style_%s' % kpi_id.style_id.id + if kpi_id.auto_expand_accounts_style_id: + kpi_data['auto_expand_accounts_style_id'] = kpi_id.auto_expand_accounts_style_id.read(STYLE_FIELDS)[0] + del kpi_data['auto_expand_accounts_style_id']['id'] + kpi_data['auto_expand_accounts_style_id'][ + 'extid'] = '__export__.mis_report_style_%s' % kpi_id.auto_expand_accounts_style_id.id + kpi_data['extid'] = '__export__.mis_report_kpi_%s' % kpi_id.id + kpi_data['expression_ids'] = [] + for expression_id in kpi_id.expression_ids: + expression_data = expression_id.read(['sequence', 'name'])[0] + del expression_data['id'] + expression_data['extid'] = '__export__.mis_report_kpi_expression_%s' % expression_id.id + kpi_data['expression_ids'].append(expression_data) + report_data['kpi_ids'].append(kpi_data) + if report_id.subkpi_ids: + report_data['subkpi_ids'] = [] + for subkpi_id in report_id.subkpi_ids: + subkpi_data = subkpi_id.read(['sequence', 'name', 'description'])[0] + del subkpi_data['id'] + subkpi_data['extid'] = '__export__.mis_report_subkpi_%s' % subkpi_id.id + subkpi_data['expression_ids'] = [] + for expression_id in subkpi_id.expression_ids: + expression_data = expression_id.read(['sequence', 'name'])[0] + del expression_data['id'] + expression_data['kpi_id'] = '__export__.mis_report_kpi_%s' % expression_id.kpi_id.id + expression_data['extid'] = '__export__.mis_report_kpi_expression_%s' % expression_id.id + subkpi_data['expression_ids'].append(expression_data) + report_data['subkpi_ids'].append(subkpi_data) + if report_id.subreport_ids: + report_data['subreport_ids'] = [] + for subreport_id in report_id.subreport_ids: + subreport_data = subreport_id.read(['name'])[0] + del subreport_data['id'] + subreport_data['subreport_id'] = '__export__.mis_report_%s' % subreport_id.subreport_id.id + report_data['subreport_ids'].append(subreport_data) + return report_data diff --git a/mis_builder_expimp/wizards/mis_builder_import_views.xml b/mis_builder_expimp/wizards/mis_builder_import_views.xml new file mode 100644 index 0000000..b2f57ab --- /dev/null +++ b/mis_builder_expimp/wizards/mis_builder_import_views.xml @@ -0,0 +1,34 @@ + + + + + mis.builder.import.wizard.view + mis.builder.import.wizard + +
      +
      +

      This wizard will import a MIS report from json File.

      +
      + +
      +
      + +
      +
      + + Import MIS Report + ir.actions.act_window + mis.builder.import.wizard + form + new + + +
      +
      \ No newline at end of file diff --git a/mis_builder_expimp/wizards/mis_builder_import_wizard.py b/mis_builder_expimp/wizards/mis_builder_import_wizard.py new file mode 100644 index 0000000..19d674e --- /dev/null +++ b/mis_builder_expimp/wizards/mis_builder_import_wizard.py @@ -0,0 +1,153 @@ +import copy +import json +import logging +import subprocess +import sys +from io import StringIO +from pathlib import Path + +from flectra import models, fields, api, _ +from flectra.tools import config, etree, base64, convert_xml_import, tempfile + +import os + +from flectra.exceptions import ValidationError + +_logger = logging.getLogger(__name__) + + +class MisBuilderImportWizard(models.TransientModel): + # Private attributes + _name = "mis.builder.import.wizard" + _description = "Import MIS Builder Report" + + file = fields.Binary( + string='Settings File', + required=True, + ) + + def __int__(self): + super(MisBuilderImportWizard, self).__int__() + + def import_report(self): + self.ensure_one() + + json_data = base64.b64decode(self.file) + report_data = json.loads(json_data) + + for report_entry in report_data: + report_values = self.__prepare_report_values(report_entry) + + self.__prepare_style_values(report_entry, report_values) + + self.__prepare_subreport_values(report_entry, report_values) + + self.__prepare_query_values(report_values) + + self.__prepare_kpi_values(report_values) + + subkpi_values = [] + if report_values.get('subkpi_ids'): + for subkpi_value in report_values['subkpi_ids']: + subkpi_values.append(subkpi_value) + del report_values['subkpi_ids'] + + new_report = self.env['mis.report'].create(report_values) + self._create_external_reference(new_report, report_entry['extid']) + + self.__update_subkpi_values(new_report, report_entry, subkpi_values) + + def __prepare_style_values(self, report_entry, report_values): + if report_entry.get('style_id'): + report_values['style_id'] = self._create_style(report_values['style_id']).id + + def __prepare_report_values(self, report_entry): + result = self.env['ir.model.data'].xmlid_to_res_id(report_entry['extid']) + if result: + raise ValidationError('Report already exists! Please delete it first before importing') + report_values = copy.deepcopy(report_entry) + report_values['move_lines_source'] = self.env['ir.model'].search([('model', '=', report_values['move_lines_source'])]).id + return report_values + + def __update_subkpi_values(self, new_report, report_entry, subkpi_values): + temporary_extids = self.env['ir.model.data'] + subkpi_updates = [] + if subkpi_values: + for kpi_id in new_report.kpi_ids: + for kpi_data in report_entry['kpi_ids']: + if kpi_id.sequence == kpi_data['sequence']: + temporary_extids |= self._create_external_reference(kpi_id, kpi_data['extid']) + for subkpi_value in subkpi_values: + expression_updates = [] + for expression_value in subkpi_value['expression_ids']: + expression_value['kpi_id'] = self.env.ref(expression_value['kpi_id']).id + expression_updates.append((0, False, expression_value)) + subkpi_value['expression_ids'] = expression_updates + subkpi_updates.append((0, False, subkpi_value)) + if subkpi_updates: + new_report.write({'subkpi_ids': subkpi_updates}) + if temporary_extids: + temporary_extids.unlink() + + def __prepare_kpi_values(self, report_values): + if report_values.get('kpi_ids'): + kpi_values = [] + for kpi_value in report_values['kpi_ids']: + self.__prepare_style_values(kpi_value, kpi_value) + if kpi_value.get('auto_expand_accounts_style_id'): + kpi_value['auto_expand_accounts_style_id'] = self._create_style(kpi_value['auto_expand_accounts_style_id']).id + if report_values.get('subkpi_ids'): + del kpi_value['expression'] + del kpi_value['expression_ids'] + else: + if kpi_value.get('expression_ids'): + expression_values = [(0, False, v) for v in kpi_value['expression_ids']] + kpi_value['expression_ids'] = expression_values + kpi_values.append((0, False, kpi_value)) + report_values['kpi_ids'] = kpi_values + + def __prepare_query_values(self, report_values): + if report_values.get('query_ids'): + query_values = [] + for query_value in report_values['query_ids']: + query_model = self.env['ir.model'].search([('model', '=', query_value['model_id'])]) + query_value['model_id'] = query_model.id + query_value['field_ids'] = [(6, 0, [f.id for f in query_model.field_id if f.name in query_value['field_ids']])] + query_values.append((0, False, query_value)) + report_values['query_ids'] = query_values + + def __prepare_subreport_values(self, report_entry, report_values): + if report_entry.get('subreport_ids'): + subreport_values = [] + for subreport_value in report_entry['subreport_ids']: + subreport_value['subreport_id'] = self.env.ref(subreport_value['subreport_id']).id + subreport_values.append((0, False, subreport_value)) + report_values['subreport_ids'] = subreport_values + + @api.model + def _create_style(self, style_data): + result = self.env['ir.model.data'].xmlid_to_object(style_data['extid']) + if result: + return result + + new_style = self.env['mis.report.style'].create(style_data) + self._create_external_reference(new_style, style_data['extid']) + return new_style + + def _create_external_reference(self, obj, extid, temporary=False): + module, name = extid.split('.', 1) + existing = self.env['ir.model.data'].search([ + ('module', '=', module), + ('model', '=', obj._name), + ('name', '=', name), + ], limit=1) + if existing: + existing.res_id = obj.id + return existing + + return self.env['ir.model.data'].create({ + 'module': module, + 'model': obj._name, + 'name': name, + 'res_id': obj.id, + }) From 231687278619f08e8432758db48f2c2589d27451 Mon Sep 17 00:00:00 2001 From: Thomas Winteler Date: Fri, 11 Jun 2021 07:50:40 +0200 Subject: [PATCH 6/8] [FIX] Update from old repo --- mis_builder/models/mis_report.py | 37 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/mis_builder/models/mis_report.py b/mis_builder/models/mis_report.py index 8869cf7..021f5c2 100644 --- a/mis_builder/models/mis_report.py +++ b/mis_builder/models/mis_report.py @@ -612,24 +612,25 @@ class MisReport(models.Model): domain = query.domain and safe_eval(query.domain, eval_context) or [] if get_additional_query_filter: domain.extend(get_additional_query_filter(query)) - if query.date_field.ttype == "date": - domain.extend( - [ - (query.date_field.name, ">=", date_from), - (query.date_field.name, "<=", date_to), - ] - ) - else: - datetime_from = _utc_midnight(date_from, self._context.get("tz", "UTC")) - datetime_to = _utc_midnight( - date_to, self._context.get("tz", "UTC"), add_day=1 - ) - domain.extend( - [ - (query.date_field.name, ">=", datetime_from), - (query.date_field.name, "<", datetime_to), - ] - ) + if query.date_field.ttype: + if query.date_field.ttype == "date": + domain.extend( + [ + (query.date_field.name, ">=", date_from), + (query.date_field.name, "<=", date_to), + ] + ) + else: + datetime_from = _utc_midnight(date_from, self._context.get("tz", "UTC")) + datetime_to = _utc_midnight( + date_to, self._context.get("tz", "UTC"), add_day=1 + ) + domain.extend( + [ + (query.date_field.name, ">=", datetime_from), + (query.date_field.name, "<", datetime_to), + ] + ) field_names = [f.name for f in query.field_ids] all_stored = all([model._fields[f].store for f in field_names]) if not query.aggregate: From fdfeedc5aa5a0832257ce7e6218c3c38b232e31b Mon Sep 17 00:00:00 2001 From: Thomas Winteler Date: Fri, 11 Jun 2021 07:51:18 +0200 Subject: [PATCH 7/8] [FIX] Update from old repo --- mis_builder/models/mis_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mis_builder/models/mis_report.py b/mis_builder/models/mis_report.py index 021f5c2..2157786 100644 --- a/mis_builder/models/mis_report.py +++ b/mis_builder/models/mis_report.py @@ -612,7 +612,7 @@ class MisReport(models.Model): domain = query.domain and safe_eval(query.domain, eval_context) or [] if get_additional_query_filter: domain.extend(get_additional_query_filter(query)) - if query.date_field.ttype: + if query.date_field: if query.date_field.ttype == "date": domain.extend( [ From e010e48f862d7a9b47e937260b4c00f98a5d32b9 Mon Sep 17 00:00:00 2001 From: Renzo Meister Date: Tue, 15 Jun 2021 09:17:38 +0200 Subject: [PATCH 8/8] [FIX] mis_builder: ignore float_is_zero error --- mis_builder/models/kpimatrix.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mis_builder/models/kpimatrix.py b/mis_builder/models/kpimatrix.py index a626a9d..1545285 100644 --- a/mis_builder/models/kpimatrix.py +++ b/mis_builder/models/kpimatrix.py @@ -73,7 +73,10 @@ class KpiMatrixRow(object): def is_empty(self): for cell in self.iter_cells(): dp = cell and cell.row.kpi.env.user.company_id.currency_id.decimal_places or 6 - if cell and not float_is_zero(cell.val, dp) and cell.val not in (AccountingNone, None): + try: + if cell and not float_is_zero(cell.val, dp) and cell.val not in (AccountingNone, None): + return False + except Exception: return False return True