commit
b39498ede3
|
@ -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: []
|
||||||
|
|
|
@ -7,11 +7,11 @@ indent_style = space
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
[.eslintrc,*.{json,yml,yaml,rst,md}]
|
[*.{json,yml,yaml,rst,md}]
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
||||||
# Do not configure editor for libs and autogenerated content
|
# 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
|
charset = unset
|
||||||
end_of_line = unset
|
end_of_line = unset
|
||||||
indent_size = unset
|
indent_size = unset
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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.
|
|
@ -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' }}
|
|
@ -1,6 +1,8 @@
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.py[cod]
|
*.py[cod]
|
||||||
|
/.venv
|
||||||
|
/.pytest_cache
|
||||||
|
|
||||||
# C extensions
|
# C extensions
|
||||||
*.so
|
*.so
|
||||||
|
@ -13,7 +15,6 @@ build/
|
||||||
develop-eggs/
|
develop-eggs/
|
||||||
dist/
|
dist/
|
||||||
eggs/
|
eggs/
|
||||||
lib/
|
|
||||||
lib64/
|
lib64/
|
||||||
parts/
|
parts/
|
||||||
sdist/
|
sdist/
|
||||||
|
@ -21,6 +22,7 @@ var/
|
||||||
*.egg-info/
|
*.egg-info/
|
||||||
.installed.cfg
|
.installed.cfg
|
||||||
*.egg
|
*.egg
|
||||||
|
*.eggs
|
||||||
|
|
||||||
# Installer logs
|
# Installer logs
|
||||||
pip-log.txt
|
pip-log.txt
|
||||||
|
@ -40,6 +42,19 @@ coverage.xml
|
||||||
# Pycharm
|
# Pycharm
|
||||||
.idea
|
.idea
|
||||||
|
|
||||||
|
# Eclipse
|
||||||
|
.settings
|
||||||
|
|
||||||
|
# Visual Studio cache/options directory
|
||||||
|
.vs/
|
||||||
|
.vscode
|
||||||
|
|
||||||
|
# OSX Files
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
|
||||||
# Mr Developer
|
# Mr Developer
|
||||||
.mr.developer.cfg
|
.mr.developer.cfg
|
||||||
.project
|
.project
|
||||||
|
@ -54,3 +69,6 @@ docs/_build/
|
||||||
# Backup files
|
# Backup files
|
||||||
*~
|
*~
|
||||||
*.swp
|
*.swp
|
||||||
|
|
||||||
|
# OCA rules
|
||||||
|
!static/lib/
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
37
.travis.yml
37
.travis.yml
|
@ -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
|
|
8
LICENSE
8
LICENSE
|
@ -1,4 +1,4 @@
|
||||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
Version 3, 19 November 2007
|
Version 3, 19 November 2007
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
|
@ -633,8 +633,8 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||||
Copyright (C) <year> <name of author>
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
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
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
by the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
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,
|
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.
|
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
|
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||||
<https://www.gnu.org/licenses/>.
|
<https://www.gnu.org/licenses/>.
|
||||||
|
|
71
README.md
71
README.md
|
@ -1,67 +1,38 @@
|
||||||
[](https://runbot.odoo-community.org/runbot/repo/github-com-oca-reporting-engine-143)
|
|
||||||
[](https://travis-ci.org/OCA/reporting-engine)
|
|
||||||
[](https://coveralls.io/r/OCA/reporting-engine?branch=12.0)
|
|
||||||
|
|
||||||
OCA alternative reporting engines and reporting utilities for Odoo
|
[](https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=12.0)
|
||||||
==================================================================
|
[](https://github.com/OCA/reporting-engine/actions/workflows/pre-commit.yml?query=branch%3A12.0)
|
||||||
|
[](https://github.com/OCA/reporting-engine/actions/workflows/test.yml?query=branch%3A12.0)
|
||||||
|
[](https://codecov.io/gh/OCA/reporting-engine)
|
||||||
|
[](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:
|
<!-- /!\ do not modify above this line -->
|
||||||
|
|
||||||
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).
|
<!-- /!\ do not modify below this line -->
|
||||||
|
|
||||||
It can contain also another utilities directly involved with reports (like merge/split utils, checkers, signing tools and so on).
|
<!-- prettier-ignore-start -->
|
||||||
|
|
||||||
[//]: # (addons)
|
[//]: # (addons)
|
||||||
|
|
||||||
Available addons
|
This part will be replaced when running the oca-gen-addons-table script from OCA/maintainer-tools.
|
||||||
----------------
|
|
||||||
addon | version | maintainers | summary
|
|
||||||
--- | --- | --- | ---
|
|
||||||
[bi_sql_editor](bi_sql_editor/) | 12.0.1.3.0 | [](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 | [](https://github.com/etobella) | Create Dashboards using kpis
|
|
||||||
[kpi_dashboard_altair](kpi_dashboard_altair/) | 12.0.1.0.3 | [](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 | [](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 | [](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 | [](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 | [](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
|
|
||||||
|
|
||||||
[//]: # (end addons)
|
[//]: # (end addons)
|
||||||
|
|
||||||
|
<!-- prettier-ignore-end -->
|
||||||
|
|
||||||
## Translation Status
|
## Licenses
|
||||||
|
|
||||||
[](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](http://odoo-community.org/), is a nonprofit
|
||||||
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
organization whose mission is to support the collaborative development of Odoo features
|
||||||
mission is to support the collaborative development of Odoo features and
|
and promote its widespread use.
|
||||||
promote its widespread use.
|
|
||||||
|
|
||||||
https://odoo-community.org/
|
|
||||||
|
|
|
@ -23,6 +23,10 @@
|
||||||
'qweb': [
|
'qweb': [
|
||||||
'static/src/xml/bi_view_editor.xml'
|
'static/src/xml/bi_view_editor.xml'
|
||||||
],
|
],
|
||||||
|
'external_dependencies': {
|
||||||
|
'python': ['pydot'],
|
||||||
|
'deb': ['graphviz']
|
||||||
|
},
|
||||||
'post_load': 'post_load',
|
'post_load': 'post_load',
|
||||||
'uninstall_hook': 'uninstall_hook',
|
'uninstall_hook': 'uninstall_hook',
|
||||||
'installable': True,
|
'installable': True,
|
||||||
|
|
|
@ -171,7 +171,7 @@ class BveView(models.Model):
|
||||||
try:
|
try:
|
||||||
png_base64_image = base64.b64encode(graph.create_png())
|
png_base64_image = base64.b64encode(graph.create_png())
|
||||||
bve_view.er_diagram_image = png_base64_image
|
bve_view.er_diagram_image = png_base64_image
|
||||||
except:
|
except Exception:
|
||||||
bve_view.er_diagram_image = False
|
bve_view.er_diagram_image = False
|
||||||
|
|
||||||
def _create_view_arch(self):
|
def _create_view_arch(self):
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"name": "Key Performance Indicator",
|
"name": "Key Performance Indicator",
|
||||||
"version": "12.0.1.0.0",
|
"version": "12.0.1.0.0",
|
||||||
"author": "Savoir-faire Linux,Odoo Community Association (OCA)",
|
"author": "Savoir-faire Linux,Odoo Community Association (OCA)",
|
||||||
"website": "http://www.savoirfairelinux.com",
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"category": "Report",
|
"category": "Report",
|
||||||
"depends": [
|
"depends": [
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
"version": "12.0.1.0.0",
|
"version": "12.0.1.0.0",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"author": "Creu Blanca,Odoo Community Association (OCA)",
|
"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"],
|
"depends": ["web_widget_bokeh_chart", "kpi_dashboard"],
|
||||||
"data": ["views/webclient_templates.xml"],
|
"data": ["views/webclient_templates.xml"],
|
||||||
"qweb": ["static/src/xml/dashboard.xml"],
|
"qweb": ["static/src/xml/dashboard.xml"],
|
||||||
|
|
|
@ -6,15 +6,10 @@
|
||||||
'summary': "Base module to create csv report",
|
'summary': "Base module to create csv report",
|
||||||
'author': 'Creu Blanca,'
|
'author': 'Creu Blanca,'
|
||||||
'Odoo Community Association (OCA)',
|
'Odoo Community Association (OCA)',
|
||||||
'website': "https://github.com/oca/reporting-engine",
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
'category': 'Reporting',
|
'category': 'Reporting',
|
||||||
'version': '12.0.1.0.0',
|
'version': '12.0.1.0.0',
|
||||||
'license': 'AGPL-3',
|
'license': 'AGPL-3',
|
||||||
'external_dependencies': {
|
|
||||||
'python': [
|
|
||||||
'csv',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
'depends': [
|
'depends': [
|
||||||
'base', 'web',
|
'base', 'web',
|
||||||
],
|
],
|
||||||
|
|
|
@ -10,12 +10,13 @@
|
||||||
'author': 'XCG Consulting,'
|
'author': 'XCG Consulting,'
|
||||||
'ACSONE SA/NV,'
|
'ACSONE SA/NV,'
|
||||||
'Odoo Community Association (OCA)',
|
'Odoo Community Association (OCA)',
|
||||||
'website': 'http://odoo.consulting/',
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
'depends': ['web'],
|
'depends': ['web'],
|
||||||
'external_dependencies': {
|
'external_dependencies': {
|
||||||
'python': ['py3o.template',
|
'python': ['py3o.template',
|
||||||
'py3o.formats',
|
'py3o.formats',
|
||||||
'PyPDF2']
|
'PyPDF2'],
|
||||||
|
"deb": ["libreoffice"],
|
||||||
},
|
},
|
||||||
'data': [
|
'data': [
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
'py3o.template',
|
'py3o.template',
|
||||||
'py3o.formats',
|
'py3o.formats',
|
||||||
],
|
],
|
||||||
|
"deb": ["libreoffice"],
|
||||||
},
|
},
|
||||||
'demo': [
|
'demo': [
|
||||||
"demo/report_py3o.xml",
|
"demo/report_py3o.xml",
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
'version': '12.0.1.0.0',
|
'version': '12.0.1.0.0',
|
||||||
'author': 'Agile Business Group, Odoo Community Association (OCA)',
|
'author': 'Agile Business Group, Odoo Community Association (OCA)',
|
||||||
'category': 'Tools',
|
'category': 'Tools',
|
||||||
'website': 'https://github.com/oca/reporting-engine',
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
'license': 'AGPL-3',
|
'license': 'AGPL-3',
|
||||||
'application': False,
|
'application': False,
|
||||||
'installable': True,
|
'installable': True,
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
""",
|
""",
|
||||||
"author": "Creu Blanca,"
|
"author": "Creu Blanca,"
|
||||||
"Odoo Community Association (OCA)",
|
"Odoo Community Association (OCA)",
|
||||||
"website": "https://github.com/oca/reporting-engine",
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
"category": "Technical Settings",
|
"category": "Technical Settings",
|
||||||
"depends": [
|
"depends": [
|
||||||
"web",
|
"web",
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"category": "Technical Settings",
|
"category": "Technical Settings",
|
||||||
"summary": "Add watermarks to your QWEB PDF reports",
|
"summary": "Add watermarks to your QWEB PDF reports",
|
||||||
"website": "https://github.com/oca/reporting-engine",
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
"depends": [
|
"depends": [
|
||||||
'web',
|
'web',
|
||||||
],
|
],
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
"summary": "Sign Qweb PDFs usign a PKCS#12 certificate",
|
"summary": "Sign Qweb PDFs usign a PKCS#12 certificate",
|
||||||
"version": "12.0.1.1.0",
|
"version": "12.0.1.1.0",
|
||||||
"category": "Reporting",
|
"category": "Reporting",
|
||||||
"website": "https://github.com/oca/reporting-engine",
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
"author": "Tecnativa, "
|
"author": "Tecnativa, "
|
||||||
"Odoo Community Association (OCA)",
|
"Odoo Community Association (OCA)",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
|
@ -18,6 +18,7 @@
|
||||||
],
|
],
|
||||||
"external_dependencies": {
|
"external_dependencies": {
|
||||||
"bin": ['/usr/bin/java'],
|
"bin": ['/usr/bin/java'],
|
||||||
|
"deb": ["default-jre-headless"],
|
||||||
},
|
},
|
||||||
"data": [
|
"data": [
|
||||||
"data/defaults.xml",
|
"data/defaults.xml",
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
<odoo noupdate="1">
|
<odoo noupdate="1">
|
||||||
<record model="ir.config_parameter" id="report_qweb_signer_java_param">
|
<record model="ir.config_parameter" id="report_qweb_signer_java_param">
|
||||||
<field name="key">report_qweb_signer.java_parameters</field>
|
<field name="key">report_qweb_signer.java_parameters</field>
|
||||||
<field name="value">-Xms4M -Xmx4M</field>
|
<field name="value">-Xms16M -Xmx16M -XX:CompressedClassSpaceSize=256m</field>
|
||||||
</record>
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
"author": "Avoin.Systems,"
|
"author": "Avoin.Systems,"
|
||||||
"Eficent,"
|
"Eficent,"
|
||||||
"Odoo Community Association (OCA)",
|
"Odoo Community Association (OCA)",
|
||||||
"website": "https://avoin.systems",
|
"website": "https://github.com/OCA/reporting-engine",
|
||||||
"category": "Technical Settings",
|
"category": "Technical Settings",
|
||||||
"depends": [
|
"depends": [
|
||||||
"web",
|
"web",
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
'author': 'ACSONE SA/NV,'
|
'author': 'ACSONE SA/NV,'
|
||||||
'Creu Blanca,'
|
'Creu Blanca,'
|
||||||
'Odoo Community Association (OCA)',
|
'Odoo Community Association (OCA)',
|
||||||
'website': "https://github.com/oca/reporting-engine",
|
'website': "https://github.com/OCA/reporting-engine",
|
||||||
'category': 'Reporting',
|
'category': 'Reporting',
|
||||||
'version': '12.0.1.0.4',
|
'version': '12.0.1.0.4',
|
||||||
'license': 'AGPL-3',
|
'license': 'AGPL-3',
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
'name': 'Report xlsx helpers - demo',
|
'name': 'Report xlsx helpers - demo',
|
||||||
'author': 'Noviat,'
|
'author': 'Noviat,'
|
||||||
'Odoo Community Association (OCA)',
|
'Odoo Community Association (OCA)',
|
||||||
|
'website': "https://github.com/OCA/reporting-engine",
|
||||||
'category': 'Reporting',
|
'category': 'Reporting',
|
||||||
'version': '12.0.1.1.0',
|
'version': '12.0.1.1.0',
|
||||||
'license': 'AGPL-3',
|
'license': 'AGPL-3',
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
# generated from manifests external_dependencies
|
||||||
altair
|
altair
|
||||||
py3o.template
|
|
||||||
py3o.formats
|
py3o.formats
|
||||||
|
py3o.template
|
||||||
|
pydot
|
||||||
|
PyPDF2
|
||||||
|
xlrd
|
||||||
|
xlsxwriter
|
||||||
|
|
Loading…
Reference in New Issue