From 0be36d56b1d4f3e907326463d61d152b31339671 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 25 Jan 2023 15:14:45 +0100 Subject: [PATCH 1/7] Update from template --- .copier-answers.yml | 26 +++ .editorconfig | 4 +- .flake8 | 11 ++ .github/workflows/pre-commit.yml | 37 +++++ .github/workflows/stale.yml | 69 ++++++++ .github/workflows/test.yml | 69 ++++++++ .gitignore | 20 ++- .pre-commit-config.yaml | 60 +++++++ .pylintrc | 156 ++++++++++++++++++ .pylintrc-mandatory | 68 ++++++++ .travis.yml | 37 ----- LICENSE | 8 +- README.md | 71 +++----- kpi/__manifest__.py | 2 +- kpi_dashboard_bokeh/__manifest__.py | 2 +- report_csv/__manifest__.py | 2 +- report_py3o/__manifest__.py | 2 +- .../__manifest__.py | 2 +- report_qweb_parameter/__manifest__.py | 2 +- report_qweb_pdf_watermark/__manifest__.py | 2 +- report_qweb_signer/__manifest__.py | 2 +- report_wkhtmltopdf_param/__manifest__.py | 2 +- report_xlsx/__manifest__.py | 2 +- report_xlsx_helper_demo/__manifest__.py | 1 + requirements.txt | 6 +- 25 files changed, 558 insertions(+), 105 deletions(-) create mode 100644 .copier-answers.yml create mode 100644 .flake8 create mode 100644 .github/workflows/pre-commit.yml create mode 100644 .github/workflows/stale.yml create mode 100644 .github/workflows/test.yml create mode 100644 .pre-commit-config.yaml create mode 100644 .pylintrc create mode 100644 .pylintrc-mandatory delete mode 100644 .travis.yml diff --git a/.copier-answers.yml b/.copier-answers.yml new file mode 100644 index 000000000..da912ac93 --- /dev/null +++ b/.copier-answers.yml @@ -0,0 +1,26 @@ +# Do NOT update manually; changes here will be overwritten by Copier +_commit: v1.14.0 +_src_path: https://github.com/OCA/oca-addons-repo-template.git +ci: GitHub +dependency_installation_mode: PIP +generate_requirements_txt: true +github_check_license: true +github_ci_extra_env: {} +github_enable_codecov: true +github_enable_makepot: true +github_enable_stale_action: true +github_enforce_dev_status_compatibility: true +include_wkhtmltopdf: false +odoo_version: 12.0 +org_name: Odoo Community Association (OCA) +org_slug: OCA +rebel_module_groups: [] +repo_description: Report engines for Odoo +repo_name: 'Odoo Alternative Reporting Engine + + ' +repo_slug: reporting-engine +repo_website: https://github.com/OCA/reporting-engine +travis_apt_packages: [] +travis_apt_sources: [] + diff --git a/.editorconfig b/.editorconfig index 62276b0d5..bfd7ac53d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,11 +7,11 @@ indent_style = space insert_final_newline = true trim_trailing_whitespace = true -[.eslintrc,*.{json,yml,yaml,rst,md}] +[*.{json,yml,yaml,rst,md}] indent_size = 2 # Do not configure editor for libs and autogenerated content -[*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst] +[{*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst}] charset = unset end_of_line = unset indent_size = unset diff --git a/.flake8 b/.flake8 new file mode 100644 index 000000000..6363964b5 --- /dev/null +++ b/.flake8 @@ -0,0 +1,11 @@ +[flake8] +# E123,E133,E226,E241,E242 are ignored by default by pep8 and flake8 +# F811 is legal in odoo 8 when we implement 2 interfaces for a method +# F601 pylint support this case with expected tests +# W503 changed by W504 and OCA prefers allow both +# E203: whitespace before ':' (black behaviour and not pep8 compliant) +ignore = E123,E133,E226,E241,E242,F811,F601,W503,W504,E203 +max-line-length = 88 +per-file-ignores= + __init__.py:F401 + diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 000000000..f86d41826 --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,37 @@ +name: pre-commit + +on: + pull_request: + branches: + - "12.0*" + push: + branches: + - "12.0" + - "12.0-ocabot-*" + +jobs: + pre-commit: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: "3.6" + - name: Get python version + run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV + - uses: actions/cache@v1 + with: + path: ~/.cache/pre-commit + key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }} + - name: Install pre-commit + run: pip install pre-commit + - name: Run pre-commit + run: pre-commit run --all-files --show-diff-on-failure --color=always + - name: Check that all files generated by pre-commit are in git + run: | + newfiles="$(git ls-files --others --exclude-from=.gitignore)" + if [ "$newfiles" != "" ] ; then + echo "Please check-in the following files:" + echo "$newfiles" + exit 1 + fi diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..1693a1253 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,69 @@ +name: Mark stale issues and pull requests + +on: + schedule: + - cron: "0 12 * * 0" + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - name: Stale PRs and issues policy + uses: actions/stale@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + # General settings. + ascending: true + remove-stale-when-updated: true + # Pull Requests settings. + # 120+30 day stale policy for PRs + # * Except PRs marked as "no stale" + days-before-pr-stale: 120 + days-before-pr-close: 30 + exempt-pr-labels: "no stale" + stale-pr-label: "stale" + stale-pr-message: > + There hasn't been any activity on this pull request in the past 4 months, so + it has been marked as stale and it will be closed automatically if no + further activity occurs in the next 30 days. + + If you want this PR to never become stale, please ask a PSC member to apply + the "no stale" label. + # Issues settings. + # 180+30 day stale policy for open issues + # * Except Issues marked as "no stale" + days-before-issue-stale: 180 + days-before-issue-close: 30 + exempt-issue-labels: "no stale,needs more information" + stale-issue-label: "stale" + stale-issue-message: > + There hasn't been any activity on this issue in the past 6 months, so it has + been marked as stale and it will be closed automatically if no further + activity occurs in the next 30 days. + + If you want this issue to never become stale, please ask a PSC member to + apply the "no stale" label. + + # 15+30 day stale policy for issues pending more information + # * Issues that are pending more information + # * Except Issues marked as "no stale" + - name: Needs more information stale issues policy + uses: actions/stale@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + ascending: true + only-labels: "needs more information" + exempt-issue-labels: "no stale" + days-before-stale: 15 + days-before-close: 30 + days-before-pr-stale: -1 + days-before-pr-close: -1 + remove-stale-when-updated: true + stale-issue-label: "stale" + stale-issue-message: > + This issue needs more information and there hasn't been any activity + recently, so it has been marked as stale and it will be closed automatically + if no further activity occurs in the next 30 days. + + If you think this is a mistake, please ask a PSC member to remove the "needs + more information" label. diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..20bf055d4 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,69 @@ +name: tests + +on: + pull_request: + branches: + - "12.0*" + push: + branches: + - "12.0" + - "12.0-ocabot-*" + +jobs: + unreleased-deps: + runs-on: ubuntu-latest + name: Detect unreleased dependencies + steps: + - uses: actions/checkout@v2 + - run: | + for reqfile in requirements.txt test-requirements.txt ; do + if [ -f ${reqfile} ] ; then + result=0 + # reject non-comment lines that contain a / (i.e. URLs, relative paths) + grep "^[^#].*/" ${reqfile} || result=$? + if [ $result -eq 0 ] ; then + echo "Unreleased dependencies found in ${reqfile}." + exit 1 + fi + fi + done + test: + runs-on: ubuntu-20.04 + container: ${{ matrix.container }} + name: ${{ matrix.name }} + strategy: + fail-fast: false + matrix: + include: + - container: ghcr.io/oca/oca-ci/py3.6-odoo12.0:latest + makepot: "true" + name: test with Odoo + - container: ghcr.io/oca/oca-ci/py3.6-ocb12.0:latest + name: test with OCB + services: + postgres: + image: postgres:9.6 + env: + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_DB: odoo + ports: + - 5432:5432 + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + - name: Install addons and dependencies + run: oca_install_addons + - name: Check licenses + run: manifestoo -d . check-licenses + - name: Check development status + run: manifestoo -d . check-dev-status --default-dev-status=Beta + - name: Initialize test db + run: oca_init_test_database + - name: Run tests + run: oca_run_tests + - uses: codecov/codecov-action@v1 + - name: Update .pot files + run: oca_export_and_push_pot https://x-access-token:${{ secrets.GIT_PUSH_TOKEN }}@github.com/${{ github.repository }} + if: ${{ matrix.makepot == 'true' && github.event_name == 'push' && github.repository_owner == 'OCA' }} diff --git a/.gitignore b/.gitignore index 890ff0109..9c283fd41 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] +/.venv +/.pytest_cache # C extensions *.so @@ -13,7 +15,6 @@ build/ develop-eggs/ dist/ eggs/ -lib/ lib64/ parts/ sdist/ @@ -21,6 +22,7 @@ var/ *.egg-info/ .installed.cfg *.egg +*.eggs # Installer logs pip-log.txt @@ -40,6 +42,19 @@ coverage.xml # Pycharm .idea +# Eclipse +.settings + +# Visual Studio cache/options directory +.vs/ +.vscode + +# OSX Files +.DS_Store + +# Django stuff: +*.log + # Mr Developer .mr.developer.cfg .project @@ -54,3 +69,6 @@ docs/_build/ # Backup files *~ *.swp + +# OCA rules +!static/lib/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..a0b486b7a --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,60 @@ +exclude: | + (?x) + # NOT INSTALLABLE ADDONS + # END NOT INSTALLABLE ADDONS + # Files and folders generated by bots, to avoid loops + ^setup/|/static/description/index\.html$| + # We don't want to mess with tool-generated files + .svg$|/tests/([^/]+/)?cassettes/|^.copier-answers.yml$|^.github/| + # Maybe reactivate this when all README files include prettier ignore tags? + ^README\.md$| + # Library files can have extraneous formatting (even minimized) + /static/(src/)?lib/| + # Repos using Sphinx to generate docs don't need prettying + ^docs/_templates/.*\.html$| + # You don't usually want a bot to modify your legal texts + (LICENSE.*|COPYING.*) +default_language_version: + python: python3 +repos: + - repo: https://github.com/oca/maintainer-tools + rev: ab1d7f6 + hooks: + # update the NOT INSTALLABLE ADDONS section above + - id: oca-update-pre-commit-excluded-addons + - id: oca-fix-manifest-website + args: ["https://github.com/OCA/reporting-engine"] + - repo: https://github.com/acsone/setuptools-odoo + rev: 3.1.8 + hooks: + - id: setuptools-odoo-make-default + - id: setuptools-odoo-get-requirements + args: + - --output + - requirements.txt + - --header + - "# generated from manifests external_dependencies" + - repo: https://github.com/OCA/mirrors-flake8 + rev: v3.4.1 + hooks: + - id: flake8 + language_version: python3.6 + name: flake8 excluding __init__.py + exclude: __init__\.py + - repo: https://github.com/pre-commit/mirrors-pylint + rev: v2.5.3 + hooks: + - id: pylint + name: pylint with optional checks + args: + - --rcfile=.pylintrc + - --exit-zero + verbose: true + additional_dependencies: &pylint_deps + - pylint-odoo==3.5.0 + - id: pylint + name: pylint with mandatory checks + args: + - --rcfile=.pylintrc-mandatory + additional_dependencies: *pylint_deps + diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 000000000..d8abd7129 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,156 @@ +[MASTER] +load-plugins=pylint_odoo +score=n + +[ODOOLINT] +readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +manifest_required_authors=Odoo Community Association (OCA) +manifest_required_keys=license +manifest_deprecated_keys=description,active +license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 +valid_odoo_versions=12.0 + +[MESSAGES CONTROL] +disable=all + +# Enable message and code: +# anomalous-backslash-in-string - W1401 +# assignment-from-none - W1111 +# dangerous-default-value - W0102 +# duplicate-key - W0109 +# missing-import-error - W7935 +# missing-manifest-dependency - W7936 +# pointless-statement - W0104 +# pointless-string-statement - W0105 +# print-statement - E1601 +# redundant-keyword-arg - E1124 +# reimported - W0404 +# relative-import - W0403 +# return-in-init - E0101 +# rst-syntax-error - E7901 +# too-few-format-args - E1306 +# unreachable - W0101 + + +# This .pylintrc contains optional AND mandatory checks and is meant to be +# loaded in an IDE to have it check everything, in the hope this will make +# optional checks more visible to contributors who otherwise never look at a +# green travis to see optional checks that failed. +# .pylintrc-mandatory containing only mandatory checks is used the pre-commit +# config as a blocking check. + +# Beta message and code: +# api-one-deprecated - W8104 +# api-one-multi-together - W8101 +# attribute-deprecated - W8105 +# class-camelcase - C8104 +# create-user-wo-reset-password - W7905 +# consider-merging-classes-inherited - R7980 +# copy-wo-api-one - W8102 +# dangerous-filter-wo-user - W7901 +# dangerous-view-replace-wo-priority - W7940 +# deprecated-module - W0402 +# duplicate-id-csv - W7906 +# duplicate-xml-fields - W7907 +# duplicate-xml-record-id - W7902 +# file-not-used - W7930 +# incoherent-interpreter-exec-perm - W8201 +# invalid-commit - E8102 +# javascript-lint - W7903 +# manifest-deprecated-key - C8103 +# method-compute - C8108 +# method-inverse - C8110 +# method-required-super - W8106 +# method-search - C8109 +# missing-newline-extrafiles - W7908 +# missing-readme - C7902 +# no-utf8-coding-comment - C8201 +# unnecessary-utf8-coding-comment - C8202 +# odoo-addons-relative-import - W7950 +# old-api7-method-defined - R8110 +# openerp-exception-warning - R8101 +# redundant-modulename-xml - W7909 +# sql-injection - E8103 +# too-complex - C0901 +# translation-field - W8103 +# translation-required - C8107 +# use-vim-comment - W8202 +# wrong-tabs-instead-of-spaces - W7910 +# xml-syntax-error - E7902 + + +enable=anomalous-backslash-in-string, + assignment-from-none, + dangerous-default-value, + development-status-allowed, + duplicate-key, + duplicate-po-message-definition, + missing-import-error, + missing-manifest-dependency, + po-msgstr-variables, + po-syntax-error, + pointless-statement, + pointless-string-statement, + print-used, + redundant-keyword-arg, + reimported, + relative-import, + return-in-init, + rst-syntax-error, + too-few-format-args, + unreachable, + eval-used, + eval-referenced, + license-allowed, + manifest-author-string, + manifest-required-author, + manifest-required-key, + manifest-version-format, + api-one-deprecated, + api-one-multi-together, + attribute-deprecated, + class-camelcase, + create-user-wo-reset-password, + consider-merging-classes-inherited, + copy-wo-api-one, + dangerous-filter-wo-user, + dangerous-view-replace-wo-priority, + deprecated-module, + duplicate-id-csv, + duplicate-po-message-definition, + duplicate-xml-fields, + duplicate-xml-record-id, + file-not-used, + incoherent-interpreter-exec-perm, + invalid-commit, + javascript-lint, + manifest-deprecated-key, + method-compute, + method-inverse, + method-required-super, + method-search, + missing-newline-extrafiles, + missing-readme, + po-msgstr-variables, + po-syntax-error, + no-utf8-coding-comment, + unnecessary-utf8-coding-comment, + odoo-addons-relative-import, + old-api7-method-defined, + openerp-exception-warning, + redefined-builtin, + redundant-modulename-xml, + sql-injection, + too-complex, + translation-field, + translation-required, + use-vim-comment, + wrong-tabs-instead-of-spaces, + xml-syntax-error, + + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no + diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory new file mode 100644 index 000000000..9b44956f4 --- /dev/null +++ b/.pylintrc-mandatory @@ -0,0 +1,68 @@ +[MASTER] +load-plugins=pylint_odoo +score=n + +[ODOOLINT] +readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +manifest_required_authors=Odoo Community Association (OCA) +manifest_required_keys=license +manifest_deprecated_keys=description,active +license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 +valid_odoo_versions=12.0 + +[MESSAGES CONTROL] +disable=all + +# Enable message and code: +# anomalous-backslash-in-string - W1401 +# assignment-from-none - W1111 +# dangerous-default-value - W0102 +# duplicate-key - W0109 +# missing-import-error - W7935 +# missing-manifest-dependency - W7936 +# pointless-statement - W0104 +# pointless-string-statement - W0105 +# print-statement - E1601 +# redundant-keyword-arg - E1124 +# reimported - W0404 +# relative-import - W0403 +# return-in-init - E0101 +# rst-syntax-error - E7901 +# too-few-format-args - E1306 +# unreachable - W0101 + + + +enable=anomalous-backslash-in-string, + assignment-from-none, + dangerous-default-value, + development-status-allowed, + duplicate-key, + duplicate-po-message-definition, + missing-import-error, + missing-manifest-dependency, + po-msgstr-variables, + po-syntax-error, + pointless-statement, + pointless-string-statement, + print-used, + redundant-keyword-arg, + reimported, + relative-import, + return-in-init, + rst-syntax-error, + too-few-format-args, + unreachable, + eval-used, + eval-referenced, + license-allowed, + manifest-author-string, + manifest-required-author, + manifest-required-key, + manifest-version-format + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1869c12aa..000000000 --- a/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -sudo: false -cache: pip - -addons: - postgresql: "9.6" - apt: - packages: - - expect-dev # provides unbuffer utility - - python-lxml # because pip installation is slow - - pdftk - - libreoffice - - graphviz - -language: python - -python: - - "3.5" - -env: - global: - - VERSION="12.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0" - - WKHTMLTOPDF_VERSION="0.12.4" - matrix: - - LINT_CHECK="1" - - MALLOC_ARENA_MAX=4 TESTS="1" ODOO_REPO="OCA/OCB" - - MALLOC_ARENA_MAX=4 TESTS="1" ODOO_REPO="odoo/odoo" MAKEPOT="1" - -install: - - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} - - travis_install_nightly - -script: - - travis_run_tests - -after_success: - - travis_after_tests_success diff --git a/LICENSE b/LICENSE index 8410c2007..be3f7b28e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -GNU AFFERO GENERAL PUBLIC LICENSE + GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. @@ -633,8 +633,8 @@ the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -658,4 +658,4 @@ specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see -. \ No newline at end of file +. diff --git a/README.md b/README.md index f53eaba94..9cbabe95f 100644 --- a/README.md +++ b/README.md @@ -1,67 +1,38 @@ -[![Runbot Status](https://runbot.odoo-community.org/runbot/badge/flat/143/12.0.svg)](https://runbot.odoo-community.org/runbot/repo/github-com-oca-reporting-engine-143) -[![Build Status](https://travis-ci.org/OCA/reporting-engine.svg?branch=12.0)](https://travis-ci.org/OCA/reporting-engine) -[![Coverage Status](https://img.shields.io/coveralls/OCA/reporting-engine.svg)](https://coveralls.io/r/OCA/reporting-engine?branch=12.0) -OCA alternative reporting engines and reporting utilities for Odoo -================================================================== +[![Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)](https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=12.0) +[![Pre-commit Status](https://github.com/OCA/reporting-engine/actions/workflows/pre-commit.yml/badge.svg?branch=12.0)](https://github.com/OCA/reporting-engine/actions/workflows/pre-commit.yml?query=branch%3A12.0) +[![Build Status](https://github.com/OCA/reporting-engine/actions/workflows/test.yml/badge.svg?branch=12.0)](https://github.com/OCA/reporting-engine/actions/workflows/test.yml?query=branch%3A12.0) +[![codecov](https://codecov.io/gh/OCA/reporting-engine/branch/12.0/graph/badge.svg)](https://codecov.io/gh/OCA/reporting-engine) +[![Translation Status](https://translation.odoo-community.org/widgets/reporting-engine-12-0/-/svg-badge.svg)](https://translation.odoo-community.org/engage/reporting-engine-12-0/?utm_source=widget) -This repository hosts alternative reporting engines to the ones included on Odoo core (RML, QWeb and Webkit). It is complemented with the ones that host the reports theirself: + -https://github.com/OCA/account-financial-reporting +# Odoo Alternative Reporting Engine -https://github.com/OCA/purchase-reporting -https://github.com/OCA/sale-reporting -... +Report engines for Odoo -The convention is to use a suffix to each module to indicate that it's for using with that report engine (for example, account_invoice_report_birt or sale_order_report_pentaho). + -It can contain also another utilities directly involved with reports (like merge/split utils, checkers, signing tools and so on). + [//]: # (addons) -Available addons ----------------- -addon | version | maintainers | summary ---- | --- | --- | --- -[bi_sql_editor](bi_sql_editor/) | 12.0.1.3.0 | [![legalsylvain](https://github.com/legalsylvain.png?size=30px)](https://github.com/legalsylvain) | BI Views builder, based on Materialized or Normal SQL Views -[bi_sql_editor_aggregate](bi_sql_editor_aggregate/) | 12.0.1.1.0 | | BI SQL Editor Aggregation -[bi_view_editor](bi_view_editor/) | 12.0.1.1.0 | | Graphical BI views builder for Odoo -[kpi](kpi/) | 12.0.1.0.0 | | Key Performance Indicator -[kpi_dashboard](kpi_dashboard/) | 12.0.1.3.0 | [![etobella](https://github.com/etobella.png?size=30px)](https://github.com/etobella) | Create Dashboards using kpis -[kpi_dashboard_altair](kpi_dashboard_altair/) | 12.0.1.0.3 | [![etobella](https://github.com/etobella.png?size=30px)](https://github.com/etobella) | Create dashboards using altair -[kpi_dashboard_bokeh](kpi_dashboard_bokeh/) | 12.0.1.0.0 | | Create dashboards using bokeh -[report_async](report_async/) | 12.0.1.0.1 | [![kittiu](https://github.com/kittiu.png?size=30px)](https://github.com/kittiu) | Central place to run reports live or async -[report_context](report_context/) | 12.0.1.0.0 | | Adding context to reports -[report_csv](report_csv/) | 12.0.1.0.0 | | Base module to create csv report -[report_label](report_label/) | 12.0.1.0.0 | [![ivantodorovich](https://github.com/ivantodorovich.png?size=30px)](https://github.com/ivantodorovich) | Print configurable self-adhesive labels reports -[report_py3o](report_py3o/) | 12.0.2.1.1 | | Reporting engine based on Libreoffice (ODT -> ODT, ODT -> PDF, ODT -> DOC, ODT -> DOCX, ODS -> ODS, etc.) -[report_py3o_fusion_server](report_py3o_fusion_server/) | 12.0.1.0.1 | | Let the fusion server handle format conversion. -[report_qr](report_qr/) | 12.0.1.1.0 | | Web QR Manager -[report_qweb_element_page_visibility](report_qweb_element_page_visibility/) | 12.0.1.0.0 | | Report Qweb Element Page Visibility -[report_qweb_encrypt](report_qweb_encrypt/) | 12.0.1.0.0 | [![kittiu](https://github.com/kittiu.png?size=30px)](https://github.com/kittiu) | Allow to encrypt qweb pdfs -[report_qweb_parameter](report_qweb_parameter/) | 12.0.1.0.1 | | Add new parameters for qweb templates in order to reduce field length and check minimal length -[report_qweb_pdf_fixed_column](report_qweb_pdf_fixed_column/) | 12.0.1.0.0 | [![Tardo](https://github.com/Tardo.png?size=30px)](https://github.com/Tardo) | Fix auto-col to not change report font size caused by a boundary overflow -[report_qweb_pdf_watermark](report_qweb_pdf_watermark/) | 12.0.1.0.1 | | Add watermarks to your QWEB PDF reports -[report_qweb_signer](report_qweb_signer/) | 12.0.1.1.0 | | Sign Qweb PDFs usign a PKCS#12 certificate -[report_substitute](report_substitute/) | 12.0.1.0.0 | | This module allows to create substitution rules for report actions. -[report_wkhtmltopdf_param](report_wkhtmltopdf_param/) | 12.0.1.0.0 | | Add new parameters for a paper format to be used by wkhtmltopdf command as arguments. -[report_xlsx](report_xlsx/) | 12.0.1.0.4 | | Base module to create xlsx report -[report_xlsx_helper](report_xlsx_helper/) | 12.0.1.2.0 | | Report xlsx helpers -[report_xlsx_helper_demo](report_xlsx_helper_demo/) | 12.0.1.1.0 | | Report xlsx helpers - demo -[report_xml](report_xml/) | 12.0.1.0.0 | | Allow to generate XML reports +This part will be replaced when running the oca-gen-addons-table script from OCA/maintainer-tools. [//]: # (end addons) + -## Translation Status +## Licenses -[![Translation status](https://translation.odoo-community.org/widgets/reporting-engine-12-0/-/multi-auto.svg)](https://translation.odoo-community.org/engage/reporting-engine-12-0/?utm_source=widget) +This repository is licensed under [AGPL-3.0](LICENSE). + +However, each module can have a totally different license, as long as they adhere to Odoo Community Association (OCA) +policy. Consult each module's `__manifest__.py` file, which contains a `license` key +that explains its license. ---- - -OCA, or the Odoo Community Association, is a nonprofit organization whose -mission is to support the collaborative development of Odoo features and -promote its widespread use. - -https://odoo-community.org/ +OCA, or the [Odoo Community Association](http://odoo-community.org/), is a nonprofit +organization whose mission is to support the collaborative development of Odoo features +and promote its widespread use. diff --git a/kpi/__manifest__.py b/kpi/__manifest__.py index 7ebaf1b41..0f2d0f3a2 100644 --- a/kpi/__manifest__.py +++ b/kpi/__manifest__.py @@ -5,7 +5,7 @@ "name": "Key Performance Indicator", "version": "12.0.1.0.0", "author": "Savoir-faire Linux,Odoo Community Association (OCA)", - "website": "http://www.savoirfairelinux.com", + "website": "https://github.com/OCA/reporting-engine", "license": "AGPL-3", "category": "Report", "depends": [ diff --git a/kpi_dashboard_bokeh/__manifest__.py b/kpi_dashboard_bokeh/__manifest__.py index 9bf5d2f47..1a1b273d1 100644 --- a/kpi_dashboard_bokeh/__manifest__.py +++ b/kpi_dashboard_bokeh/__manifest__.py @@ -8,7 +8,7 @@ "version": "12.0.1.0.0", "license": "AGPL-3", "author": "Creu Blanca,Odoo Community Association (OCA)", - "website": "https://github.com/OCA/reporting-engine ", + "website": "https://github.com/OCA/reporting-engine", "depends": ["web_widget_bokeh_chart", "kpi_dashboard"], "data": ["views/webclient_templates.xml"], "qweb": ["static/src/xml/dashboard.xml"], diff --git a/report_csv/__manifest__.py b/report_csv/__manifest__.py index 0aec029a4..920045d9c 100644 --- a/report_csv/__manifest__.py +++ b/report_csv/__manifest__.py @@ -6,7 +6,7 @@ 'summary': "Base module to create csv report", 'author': 'Creu Blanca,' 'Odoo Community Association (OCA)', - 'website': "https://github.com/oca/reporting-engine", + "website": "https://github.com/OCA/reporting-engine", 'category': 'Reporting', 'version': '12.0.1.0.0', 'license': 'AGPL-3', diff --git a/report_py3o/__manifest__.py b/report_py3o/__manifest__.py index b7493e2ec..d44e755f8 100644 --- a/report_py3o/__manifest__.py +++ b/report_py3o/__manifest__.py @@ -10,7 +10,7 @@ 'author': 'XCG Consulting,' 'ACSONE SA/NV,' 'Odoo Community Association (OCA)', - 'website': 'http://odoo.consulting/', + "website": "https://github.com/OCA/reporting-engine", 'depends': ['web'], 'external_dependencies': { 'python': ['py3o.template', diff --git a/report_qweb_element_page_visibility/__manifest__.py b/report_qweb_element_page_visibility/__manifest__.py index 88659452d..abd588968 100644 --- a/report_qweb_element_page_visibility/__manifest__.py +++ b/report_qweb_element_page_visibility/__manifest__.py @@ -6,7 +6,7 @@ 'version': '12.0.1.0.0', 'author': 'Agile Business Group, Odoo Community Association (OCA)', 'category': 'Tools', - 'website': 'https://github.com/oca/reporting-engine', + "website": "https://github.com/OCA/reporting-engine", 'license': 'AGPL-3', 'application': False, 'installable': True, diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py index 588d7373c..8dd6d1a81 100644 --- a/report_qweb_parameter/__manifest__.py +++ b/report_qweb_parameter/__manifest__.py @@ -12,7 +12,7 @@ """, "author": "Creu Blanca," "Odoo Community Association (OCA)", - "website": "https://github.com/oca/reporting-engine", + "website": "https://github.com/OCA/reporting-engine", "category": "Technical Settings", "depends": [ "web", diff --git a/report_qweb_pdf_watermark/__manifest__.py b/report_qweb_pdf_watermark/__manifest__.py index 9c4f1d44a..dfaee2a6f 100644 --- a/report_qweb_pdf_watermark/__manifest__.py +++ b/report_qweb_pdf_watermark/__manifest__.py @@ -8,7 +8,7 @@ "license": "AGPL-3", "category": "Technical Settings", "summary": "Add watermarks to your QWEB PDF reports", - "website": "https://github.com/oca/reporting-engine", + "website": "https://github.com/OCA/reporting-engine", "depends": [ 'web', ], diff --git a/report_qweb_signer/__manifest__.py b/report_qweb_signer/__manifest__.py index db6c7ab1e..8ec019526 100644 --- a/report_qweb_signer/__manifest__.py +++ b/report_qweb_signer/__manifest__.py @@ -8,7 +8,7 @@ "summary": "Sign Qweb PDFs usign a PKCS#12 certificate", "version": "12.0.1.1.0", "category": "Reporting", - "website": "https://github.com/oca/reporting-engine", + "website": "https://github.com/OCA/reporting-engine", "author": "Tecnativa, " "Odoo Community Association (OCA)", "license": "AGPL-3", diff --git a/report_wkhtmltopdf_param/__manifest__.py b/report_wkhtmltopdf_param/__manifest__.py index bd0639be3..0e542746e 100644 --- a/report_wkhtmltopdf_param/__manifest__.py +++ b/report_wkhtmltopdf_param/__manifest__.py @@ -13,7 +13,7 @@ "author": "Avoin.Systems," "Eficent," "Odoo Community Association (OCA)", - "website": "https://avoin.systems", + "website": "https://github.com/OCA/reporting-engine", "category": "Technical Settings", "depends": [ "web", diff --git a/report_xlsx/__manifest__.py b/report_xlsx/__manifest__.py index fb0b66c3a..14c54ab7a 100644 --- a/report_xlsx/__manifest__.py +++ b/report_xlsx/__manifest__.py @@ -7,7 +7,7 @@ 'author': 'ACSONE SA/NV,' 'Creu Blanca,' 'Odoo Community Association (OCA)', - 'website': "https://github.com/oca/reporting-engine", + 'website': "https://github.com/OCA/reporting-engine", 'category': 'Reporting', 'version': '12.0.1.0.4', 'license': 'AGPL-3', diff --git a/report_xlsx_helper_demo/__manifest__.py b/report_xlsx_helper_demo/__manifest__.py index 60c07e20b..5835f71d8 100644 --- a/report_xlsx_helper_demo/__manifest__.py +++ b/report_xlsx_helper_demo/__manifest__.py @@ -5,6 +5,7 @@ 'name': 'Report xlsx helpers - demo', 'author': 'Noviat,' 'Odoo Community Association (OCA)', + 'website': "https://github.com/OCA/reporting-engine", 'category': 'Reporting', 'version': '12.0.1.1.0', 'license': 'AGPL-3', diff --git a/requirements.txt b/requirements.txt index 4fd49ee21..f71555a18 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,7 @@ +# generated from manifests external_dependencies altair -py3o.template py3o.formats +py3o.template +PyPDF2 +xlrd +xlsxwriter From e37f2fb00d693e7a3c8fa25e9c4e0047721edfdc Mon Sep 17 00:00:00 2001 From: Pablo Esteban Date: Wed, 25 Jan 2023 09:49:25 +0100 Subject: [PATCH 2/7] [FIX] report_csv/__manifest__.py: remove csv external dependency --- report_csv/__manifest__.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/report_csv/__manifest__.py b/report_csv/__manifest__.py index 920045d9c..bb37cb399 100644 --- a/report_csv/__manifest__.py +++ b/report_csv/__manifest__.py @@ -10,11 +10,6 @@ 'category': 'Reporting', 'version': '12.0.1.0.0', 'license': 'AGPL-3', - 'external_dependencies': { - 'python': [ - 'csv', - ], - }, 'depends': [ 'base', 'web', ], From f7611351ad3477ef107878835f1cac29fe3d5261 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 25 Jan 2023 23:02:19 +0100 Subject: [PATCH 3/7] [FIX] report_qweb_signer: add java deb --- report_qweb_signer/__manifest__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/report_qweb_signer/__manifest__.py b/report_qweb_signer/__manifest__.py index 8ec019526..ec0606324 100644 --- a/report_qweb_signer/__manifest__.py +++ b/report_qweb_signer/__manifest__.py @@ -18,6 +18,7 @@ ], "external_dependencies": { "bin": ['/usr/bin/java'], + "deb": ["default-jre-headless"], }, "data": [ "data/defaults.xml", From 76be41eea375ac7ef3f5f7bc9e1e201fe58f13df Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 25 Jan 2023 23:12:34 +0100 Subject: [PATCH 4/7] [IMP] report_py3o: add libreoffice --- report_py3o/__manifest__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/report_py3o/__manifest__.py b/report_py3o/__manifest__.py index d44e755f8..7ce45020b 100644 --- a/report_py3o/__manifest__.py +++ b/report_py3o/__manifest__.py @@ -15,7 +15,8 @@ 'external_dependencies': { 'python': ['py3o.template', 'py3o.formats', - 'PyPDF2'] + 'PyPDF2'], + "deb": ["libreoffice"], }, 'data': [ 'security/ir.model.access.csv', From e6bf87d75ffaa074ff85a72a65879b9e02afacb9 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 25 Jan 2023 23:12:42 +0100 Subject: [PATCH 5/7] [IMP] report_py3o_fusion_server: add libreoffice --- report_py3o_fusion_server/__manifest__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/report_py3o_fusion_server/__manifest__.py b/report_py3o_fusion_server/__manifest__.py index eee9d61ad..3055c9282 100644 --- a/report_py3o_fusion_server/__manifest__.py +++ b/report_py3o_fusion_server/__manifest__.py @@ -16,6 +16,7 @@ 'py3o.template', 'py3o.formats', ], + "deb": ["libreoffice"], }, 'demo': [ "demo/report_py3o.xml", From e937c5208d314e8e97393bf7cde96e91ae34abd9 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 25 Jan 2023 23:27:18 +0100 Subject: [PATCH 6/7] [IMP] report_qweb_signer: Improve parameter --- report_qweb_signer/data/defaults.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/report_qweb_signer/data/defaults.xml b/report_qweb_signer/data/defaults.xml index ea4a22b01..b7e1c66b3 100644 --- a/report_qweb_signer/data/defaults.xml +++ b/report_qweb_signer/data/defaults.xml @@ -2,6 +2,6 @@ report_qweb_signer.java_parameters - -Xms4M -Xmx4M + -Xms16M -Xmx16M -XX:CompressedClassSpaceSize=256m From 86bf2301a05ef3baccae42d5b02a850833efc068 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Fri, 27 Jan 2023 13:54:08 +0100 Subject: [PATCH 7/7] [FIX] bi_view_editor: missing dependancies --- bi_view_editor/__manifest__.py | 4 ++++ bi_view_editor/models/bve_view.py | 2 +- requirements.txt | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bi_view_editor/__manifest__.py b/bi_view_editor/__manifest__.py index 29986ed96..63653277e 100644 --- a/bi_view_editor/__manifest__.py +++ b/bi_view_editor/__manifest__.py @@ -23,6 +23,10 @@ 'qweb': [ 'static/src/xml/bi_view_editor.xml' ], + 'external_dependencies': { + 'python': ['pydot'], + 'deb': ['graphviz'] + }, 'post_load': 'post_load', 'uninstall_hook': 'uninstall_hook', 'installable': True, diff --git a/bi_view_editor/models/bve_view.py b/bi_view_editor/models/bve_view.py index 58ac76a89..c377acad9 100644 --- a/bi_view_editor/models/bve_view.py +++ b/bi_view_editor/models/bve_view.py @@ -171,7 +171,7 @@ class BveView(models.Model): try: png_base64_image = base64.b64encode(graph.create_png()) bve_view.er_diagram_image = png_base64_image - except: + except Exception: bve_view.er_diagram_image = False def _create_view_arch(self): diff --git a/requirements.txt b/requirements.txt index f71555a18..04bfa1fdc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ altair py3o.formats py3o.template +pydot PyPDF2 xlrd xlsxwriter