diff --git a/.copier-answers.yml b/.copier-answers.yml new file mode 100644 index 0000000..c0422a3 --- /dev/null +++ b/.copier-answers.yml @@ -0,0 +1,26 @@ +# Do NOT update manually; changes here will be overwritten by Copier +_commit: v1.14.1 +_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: false +include_wkhtmltopdf: false +odoo_version: 12.0 +org_name: Camptocamp +org_slug: camptocamp +rebel_module_groups: +- cloud_platform_exoscale +- cloud_platform_ovh +repo_description: null +repo_name: Odoo Cloud Addons +repo_slug: odoo-cloud-platform +repo_website: https://github.com/camptocamp/odoo-cloud-platform +travis_apt_packages: [] +travis_apt_sources: [] + diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..bfd7ac5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +# Configuration for known file extensions +[*.{css,js,json,less,md,py,rst,sass,scss,xml,yaml,yml}] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{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}] +charset = unset +end_of_line = unset +indent_size = unset +indent_style = unset +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..6363964 --- /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 0000000..1aa6c7b --- /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.7" + - 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 0000000..1693a12 --- /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 0000000..6245eb8 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,89 @@ +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 + include: "cloud_platform_exoscale" + makepot: "true" + name: test exoscale with Odoo + - container: ghcr.io/oca/oca-ci/py3.6-ocb12.0:latest + include: "cloud_platform_exoscale" + name: test exoscale with OCB + - container: ghcr.io/oca/oca-ci/py3.6-odoo12.0:latest + include: "cloud_platform_ovh" + makepot: "true" + name: test ovh with Odoo + - container: ghcr.io/oca/oca-ci/py3.6-ocb12.0:latest + include: "cloud_platform_ovh" + name: test ovh with OCB + - container: ghcr.io/oca/oca-ci/py3.6-odoo12.0:latest + exclude: "cloud_platform_exoscale,cloud_platform_ovh" + makepot: "true" + name: test others with Odoo + - container: ghcr.io/oca/oca-ci/py3.6-ocb12.0:latest + exclude: "cloud_platform_exoscale,cloud_platform_ovh" + name: test others with OCB + services: + postgres: + image: postgres:9.6 + env: + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_DB: odoo + ports: + - 5432:5432 + env: + INCLUDE: "${{ matrix.include }}" + EXCLUDE: "${{ matrix.exclude }}" + 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 + continue-on-error: true + - 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 == 'camptocamp' }} diff --git a/.gitignore b/.gitignore index 50b17c6..9c283fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] +/.venv +/.pytest_cache # C extensions *.so @@ -13,8 +15,6 @@ build/ develop-eggs/ dist/ eggs/ -.eggs/ -lib/ lib64/ parts/ sdist/ @@ -22,6 +22,7 @@ var/ *.egg-info/ .installed.cfg *.egg +*.eggs # Installer logs pip-log.txt @@ -41,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 @@ -50,8 +64,11 @@ coverage.xml .ropeproject # Sphinx documentation -connector/doc/_build/ +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 0000000..f93d02c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,59 @@ +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.7 +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/camptocamp/odoo-cloud-platform"] + - 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/PyCQA/flake8 + rev: 5.0.4 + hooks: + - id: flake8 + name: flake8 excluding __init__.py + exclude: __init__\.py + - repo: https://github.com/OCA/pylint-odoo + rev: v8.0.19 + hooks: + - id: pylint_odoo + name: pylint with optional checks + args: + - --rcfile=.pylintrc + - --exit-zero + verbose: true + additional_dependencies: &pylint_deps + - pylint-odoo==v8.0.19 + - id: pylint_odoo + name: pylint with mandatory checks + args: + - --rcfile=.pylintrc-mandatory + additional_dependencies: *pylint_deps + diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..c119530 --- /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=Camptocamp +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 0000000..d2fe40b --- /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=Camptocamp +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 f6f4e84..0000000 --- a/.travis.yml +++ /dev/null @@ -1,42 +0,0 @@ -language: python -sudo: false -cache: pip - -branches: - only: - - "/^[[:digit:]]{1,2}.[[:digit:]]$/" - -python: - - "3.5" - -addons: - postgresql: "9.5" - apt: - packages: - - expect-dev # provides unbuffer utility - - python-lxml # because pip installation is slow - - python-simplejson - - python-serial - -env: - matrix: - - LINT_CHECK="1" - - TESTS="1" ODOO_REPO="odoo/odoo" INCLUDE="cloud_platform_exoscale" - - TESTS="1" ODOO_REPO="OCA/OCB" INCLUDE="cloud_platform_exoscale" - - TESTS="1" ODOO_REPO="odoo/odoo" INCLUDE="cloud_platform_ovh" - - TESTS="1" ODOO_REPO="OCA/OCB" INCLUDE="cloud_platform_ovh" - - TESTS="1" ODOO_REPO="odoo/odoo" EXCLUDE="cloud_platform,cloud_platform_ovh,cloud_platform_exoscale,test_base_fileurl_field" - - TESTS="1" ODOO_REPO="OCA/OCB" EXCLUDE="cloud_platform,cloud_platform_ovh,cloud_platform_exoscale,test_base_fileurl_field" - global: - - VERSION="12.0" LINT_CHECK="0" TESTS="0" - -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_test_success diff --git a/attachment_azure/__manifest__.py b/attachment_azure/__manifest__.py index d4003a3..1eda122 100644 --- a/attachment_azure/__manifest__.py +++ b/attachment_azure/__manifest__.py @@ -9,6 +9,7 @@ "Open Source Integrators, " "Serpent Consulting Services, " "Odoo Community Association (OCA)", + "website": "https://github.com/camptocamp/odoo-cloud-platform", "license": "AGPL-3", "category": "Knowledge Management", "depends": ["base_attachment_object_storage"], @@ -18,7 +19,6 @@ "azure.identity" # pip: azure-identity ], }, - "website": "https://github.com/camptocamp/odoo-cloud-platform", "installable": True, "development_status": "Beta", "post_init_hook": "_post_init_hook", diff --git a/attachment_azure/models/ir_attachment.py b/attachment_azure/models/ir_attachment.py index cdfa154..081834c 100644 --- a/attachment_azure/models/ir_attachment.py +++ b/attachment_azure/models/ir_attachment.py @@ -33,9 +33,9 @@ class IrAttachment(models.Model): _inherit = "ir.attachment" def _get_stores(self): - l = ["azure"] - l += super(IrAttachment, self)._get_stores() - return l + stores = ["azure"] + stores += super(IrAttachment, self)._get_stores() + return stores @api.model def _get_blob_service_client(self): diff --git a/attachment_s3/__manifest__.py b/attachment_s3/__manifest__.py index dec7f77..18966c9 100644 --- a/attachment_s3/__manifest__.py +++ b/attachment_s3/__manifest__.py @@ -12,7 +12,7 @@ 'external_dependencies': { 'python': ['boto3'], }, - 'website': 'https://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [], 'installable': True, } diff --git a/attachment_s3/models/ir_attachment.py b/attachment_s3/models/ir_attachment.py index e573b98..8716cd1 100644 --- a/attachment_s3/models/ir_attachment.py +++ b/attachment_s3/models/ir_attachment.py @@ -39,9 +39,9 @@ class IrAttachment(models.Model): _inherit = "ir.attachment" def _get_stores(self): - l = ['s3'] - l += super(IrAttachment, self)._get_stores() - return l + stores = ['s3'] + stores += super(IrAttachment, self)._get_stores() + return stores @api.model def _get_s3_connection_params(self, bucket_name=None): diff --git a/attachment_swift/__manifest__.py b/attachment_swift/__manifest__.py index 17fe88f..f743dea 100644 --- a/attachment_swift/__manifest__.py +++ b/attachment_swift/__manifest__.py @@ -15,7 +15,7 @@ 'keystoneauth1', ], }, - 'website': 'https://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [], 'installable': True, } diff --git a/attachment_swift/models/ir_attachment.py b/attachment_swift/models/ir_attachment.py index 9bf130c..6e53a82 100644 --- a/attachment_swift/models/ir_attachment.py +++ b/attachment_swift/models/ir_attachment.py @@ -77,9 +77,9 @@ class IrAttachment(models.Model): _inherit = 'ir.attachment' def _get_stores(self): - l = ['swift'] - l += super(IrAttachment, self)._get_stores() - return l + stores = ['swift'] + stores += super(IrAttachment, self)._get_stores() + return stores @api.model def _get_swift_connection(self): diff --git a/base_attachment_object_storage/__manifest__.py b/base_attachment_object_storage/__manifest__.py index 14c0a08..8ee595c 100644 --- a/base_attachment_object_storage/__manifest__.py +++ b/base_attachment_object_storage/__manifest__.py @@ -9,7 +9,7 @@ 'license': 'AGPL-3', 'category': 'Knowledge Management', 'depends': ['base'], - 'website': 'http://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [ 'data/res_config_settings_data.xml', ], diff --git a/base_fileurl_field/__manifest__.py b/base_fileurl_field/__manifest__.py index 7490bb6..472f1e7 100644 --- a/base_fileurl_field/__manifest__.py +++ b/base_fileurl_field/__manifest__.py @@ -6,6 +6,7 @@ "version": "12.0.1.0.0", "category": "Technical Settings", 'author': 'Camptocamp, Odoo Community Association (OCA)', + "website": "https://github.com/camptocamp/odoo-cloud-platform", 'license': 'AGPL-3', "depends": [ "base_attachment_object_storage", diff --git a/cloud_platform/__manifest__.py b/cloud_platform/__manifest__.py index cb01b8d..e023742 100644 --- a/cloud_platform/__manifest__.py +++ b/cloud_platform/__manifest__.py @@ -14,7 +14,7 @@ 'logging_json', 'server_environment', # OCA/server-tools ], - 'website': 'https://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [], 'installable': True, } diff --git a/cloud_platform_azure/__manifest__.py b/cloud_platform_azure/__manifest__.py index 6d9bbf5..3780d3d 100644 --- a/cloud_platform_azure/__manifest__.py +++ b/cloud_platform_azure/__manifest__.py @@ -18,7 +18,7 @@ "cloud_platform_ovh", "cloud_platform_exoscale", ], - "website": "https://www.camptocamp.com", + "website": "https://github.com/camptocamp/odoo-cloud-platform", "data": [], "installable": True, } diff --git a/cloud_platform_exoscale/__manifest__.py b/cloud_platform_exoscale/__manifest__.py index 800e72f..5b71910 100644 --- a/cloud_platform_exoscale/__manifest__.py +++ b/cloud_platform_exoscale/__manifest__.py @@ -17,7 +17,7 @@ "excludes": [ "cloud_platform_ovh", ], - "website": "https://www.camptocamp.com", + "website": "https://github.com/camptocamp/odoo-cloud-platform", "data": [], "installable": True, } diff --git a/cloud_platform_ovh/__manifest__.py b/cloud_platform_ovh/__manifest__.py index 8ec1d26..a0af188 100644 --- a/cloud_platform_ovh/__manifest__.py +++ b/cloud_platform_ovh/__manifest__.py @@ -17,7 +17,7 @@ "excludes": [ "cloud_platform_exoscale", ], - "website": "https://www.camptocamp.com", + "website": "https://github.com/camptocamp/odoo-cloud-platform", "data": [], "installable": True, } diff --git a/logging_json/__manifest__.py b/logging_json/__manifest__.py index 28f043e..986fe94 100644 --- a/logging_json/__manifest__.py +++ b/logging_json/__manifest__.py @@ -11,7 +11,7 @@ 'external_dependencies': { 'python': ['pythonjsonlogger'], }, - 'website': 'http://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [], 'installable': True, } diff --git a/logging_json/json_log.py b/logging_json/json_log.py index 3aceaf1..f5ee309 100644 --- a/logging_json/json_log.py +++ b/logging_json/json_log.py @@ -33,9 +33,9 @@ class OdooJsonFormatter(jsonlogger.JsonFormatter): if is_true(os.environ.get('ODOO_LOGGING_JSON')): - format = ('%(asctime)s %(pid)s %(levelname)s' - '%(dbname)s %(name)s: %(message)s') - formatter = OdooJsonFormatter(format) + format_str = ('%(asctime)s %(pid)s %(levelname)s' + '%(dbname)s %(name)s: %(message)s') + formatter = OdooJsonFormatter(format_str) logging.getLogger().handlers[0].formatter = formatter diff --git a/monitoring_log_requests/__manifest__.py b/monitoring_log_requests/__manifest__.py index 26a75b1..bcdfed8 100644 --- a/monitoring_log_requests/__manifest__.py +++ b/monitoring_log_requests/__manifest__.py @@ -8,7 +8,7 @@ 'license': 'AGPL-3', 'category': 'category', 'depends': ['base', 'web'], - 'website': 'http://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [], 'installable': True, } diff --git a/monitoring_prometheus/__manifest__.py b/monitoring_prometheus/__manifest__.py index 34ca13b..e036d8d 100644 --- a/monitoring_prometheus/__manifest__.py +++ b/monitoring_prometheus/__manifest__.py @@ -13,7 +13,7 @@ "web", "server_environment", ], - "website": "http://www.camptocamp.com", + "website": "https://github.com/camptocamp/odoo-cloud-platform", "data": [], "external_dependencies": { "python": ["prometheus_client"], diff --git a/monitoring_statsd/__manifest__.py b/monitoring_statsd/__manifest__.py index 87e5d62..65a2e1a 100644 --- a/monitoring_statsd/__manifest__.py +++ b/monitoring_statsd/__manifest__.py @@ -11,7 +11,7 @@ 'web', 'server_environment', ], - 'website': 'http://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [], 'external_dependencies': { 'python': ['statsd'], diff --git a/monitoring_status/__manifest__.py b/monitoring_status/__manifest__.py index 9c254c1..28c2640 100644 --- a/monitoring_status/__manifest__.py +++ b/monitoring_status/__manifest__.py @@ -8,7 +8,7 @@ 'license': 'AGPL-3', 'category': 'category', 'depends': ['base', 'web'], - 'website': 'http://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [], 'installable': True, } diff --git a/session_redis/__manifest__.py b/session_redis/__manifest__.py index 9e32537..3515c80 100644 --- a/session_redis/__manifest__.py +++ b/session_redis/__manifest__.py @@ -12,7 +12,7 @@ 'external_dependencies': { 'python': ['redis'], }, - 'website': 'http://www.camptocamp.com', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'data': [], 'installable': True, 'post_load': False, diff --git a/test_base_fileurl_field/__manifest__.py b/test_base_fileurl_field/__manifest__.py index fecd344..5d5c3b1 100644 --- a/test_base_fileurl_field/__manifest__.py +++ b/test_base_fileurl_field/__manifest__.py @@ -6,6 +6,7 @@ 'version': '12.0.1.0.0', 'category': 'Tests', 'author': 'Camptocamp,Odoo Community Association (OCA)', + 'website': 'https://github.com/camptocamp/odoo-cloud-platform', 'license': 'AGPL-3', 'depends': [ 'base_fileurl_field' diff --git a/test_base_fileurl_field/tests/ir_attachment.py b/test_base_fileurl_field/tests/ir_attachment.py index d07017d..2cb582e 100644 --- a/test_base_fileurl_field/tests/ir_attachment.py +++ b/test_base_fileurl_field/tests/ir_attachment.py @@ -14,9 +14,9 @@ class IrAttachment(models.Model): _inherit = "ir.attachment" def _get_stores(self): - l = ['s3'] - l += super(IrAttachment, self)._get_stores() - return l + stores = ['s3'] + stores += super(IrAttachment, self)._get_stores() + return stores @api.model def _store_file_read(self, fname, bin_size=False):