diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8a5999af4419f630dda23d9366b51967b8322ed3..732d0c4a644eb444d6b4385643ff32fab19fab52 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,10 +6,8 @@ exclude: | ^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/| + /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 @@ -28,7 +26,7 @@ repos: language: fail files: "\\.rej$" - repo: https://github.com/oca/maintainer-tools - rev: ab1d7f6 + rev: 7d8a9f9ad73db0976fb03cbee43d953bc29b89e9 hooks: # update the NOT INSTALLABLE ADDONS section above - id: oca-update-pre-commit-excluded-addons @@ -46,11 +44,11 @@ repos: - --remove-duplicate-keys - --remove-unused-variables - repo: https://github.com/psf/black - rev: 20.8b1 + rev: 22.3.0 hooks: - id: black - repo: https://github.com/pre-commit/mirrors-prettier - rev: v2.1.2 + rev: v2.6.2 hooks: - id: prettier name: prettier (with plugin-xml) @@ -61,7 +59,7 @@ repos: - --plugin=@prettier/plugin-xml files: \.(css|htm|html|js|json|jsx|less|md|scss|toml|ts|xml|yaml|yml)$ - repo: https://github.com/pre-commit/mirrors-eslint - rev: v7.8.1 + rev: v8.15.0 hooks: - id: eslint verbose: true @@ -69,7 +67,7 @@ repos: - --color - --fix - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v3.2.0 + rev: v4.2.0 hooks: - id: trailing-whitespace # exclude autogenerated files @@ -91,12 +89,12 @@ repos: - id: mixed-line-ending args: ["--fix=lf"] - repo: https://github.com/asottile/pyupgrade - rev: v2.7.2 + rev: v2.32.1 hooks: - id: pyupgrade args: ["--keep-percent-format"] - repo: https://github.com/PyCQA/isort - rev: 5.5.1 + rev: 5.10.1 hooks: - id: isort name: isort except __init__.py @@ -104,13 +102,13 @@ repos: - --settings=. exclude: /__init__\.py$ - repo: https://gitlab.com/PyCQA/flake8 - rev: 3.8.3 + rev: 3.9.2 hooks: - id: flake8 name: flake8 additional_dependencies: ["flake8-bugbear==20.1.4"] - repo: https://github.com/PyCQA/pylint - rev: pylint-2.5.3 + rev: v2.11.1 hooks: - id: pylint name: pylint with optional checks @@ -119,7 +117,7 @@ repos: - --exit-zero verbose: true additional_dependencies: &pylint_deps - - pylint-odoo==3.5.0 + - pylint-odoo==5.0.5 - id: pylint name: pylint with mandatory checks args: diff --git a/models/res_partner.py b/models/res_partner.py index d66297b81cf262fe9b330e2aeecbb48f934dc6f0..9de9d4d798fdcaef2b1cdd3ff267a6e4c7edfb8d 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -29,6 +29,7 @@ class AlfodooResPartner(models.Model): allow_delete=False, create_parent_get="_get_parent_path", create_properties_get="_get_folder_properties", + create_method="_create_coop_folder", ) # ------------------------------------------------------ @@ -66,6 +67,22 @@ class AlfodooResPartner(models.Model): } } + def _create_coop_folder(self, records, backend): + path = backend.initial_directory_write + root_folder = backend.get_folder_by_path(path) + for partner in self: + folder_name = ( + partner.name + if not partner.name.startswith(".") + else partner.name.replace(".", "_", 1) + ) + sanitized_name = backend.sanitize_cmis_name(folder_name) + name = backend.get_unique_folder_name(sanitized_name, root_folder) + properties = partner._get_folder_properties(records, backend) + partner.partner_cmis_folder = root_folder.createFolder( + name, properties[partner.id] + ) + # ------------------------------------------------------ # Override ORM # ------------------------------------------------------ @@ -93,7 +110,12 @@ class AlfodooResPartner(models.Model): record.id ) if vals.get("name", False): - properties.update({"cmis:name": record.name}) + folder_name = ( + record.name + if not record.name.startswith(".") + else record.name.replace(".", "_", 1) + ) + properties.update({"cmis:name": folder_name}) folder = backend.get_cmis_object(record) folder.updateProperties(properties) except (