diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 732d0c4a644eb444d6b4385643ff32fab19fab52..4acca684ec8c5cda7b3ecd21b9e568ab03d57e8c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,6 +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/| # Repos using Sphinx to generate docs don't need prettying @@ -25,8 +27,13 @@ repos: entry: found forbidden files; remove them language: fail files: "\\.rej$" + - id: en-po-files + name: en.po files cannot exist + entry: found a en.po file + language: fail + files: '[a-zA-Z0-9_]*/i18n/en\.po$' - repo: https://github.com/oca/maintainer-tools - rev: 7d8a9f9ad73db0976fb03cbee43d953bc29b89e9 + rev: ab1d7f6 hooks: # update the NOT INSTALLABLE ADDONS section above - id: oca-update-pre-commit-excluded-addons @@ -48,7 +55,7 @@ repos: hooks: - id: black - repo: https://github.com/pre-commit/mirrors-prettier - rev: v2.6.2 + rev: v2.1.2 hooks: - id: prettier name: prettier (with plugin-xml) @@ -59,7 +66,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: v8.15.0 + rev: v7.8.1 hooks: - id: eslint verbose: true @@ -67,7 +74,7 @@ repos: - --color - --fix - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.2.0 + rev: v3.2.0 hooks: - id: trailing-whitespace # exclude autogenerated files @@ -89,37 +96,33 @@ repos: - id: mixed-line-ending args: ["--fix=lf"] - repo: https://github.com/asottile/pyupgrade - rev: v2.32.1 + rev: v2.7.2 hooks: - id: pyupgrade args: ["--keep-percent-format"] - repo: https://github.com/PyCQA/isort - rev: 5.10.1 + rev: 5.12.0 hooks: - id: isort name: isort except __init__.py args: - --settings=. exclude: /__init__\.py$ - - repo: https://gitlab.com/PyCQA/flake8 - rev: 3.9.2 + - repo: https://github.com/PyCQA/flake8 + rev: 3.8.3 hooks: - id: flake8 name: flake8 additional_dependencies: ["flake8-bugbear==20.1.4"] - - repo: https://github.com/PyCQA/pylint - rev: v2.11.1 + - repo: https://github.com/OCA/pylint-odoo + rev: 7.0.2 hooks: - - id: pylint + - id: pylint_odoo name: pylint with optional checks args: - --rcfile=.pylintrc - --exit-zero verbose: true - additional_dependencies: &pylint_deps - - pylint-odoo==5.0.5 - - id: pylint - name: pylint with mandatory checks + - id: pylint_odoo args: - --rcfile=.pylintrc-mandatory - additional_dependencies: *pylint_deps diff --git a/models/api_alfresco.py b/models/api_alfresco.py index 68735ea31f5615ea0e53dbdfc0cc4c1765c3a130..e893b1e65823c0ab0def6cfc2fdc814935f85262 100644 --- a/models/api_alfresco.py +++ b/models/api_alfresco.py @@ -293,8 +293,8 @@ class CgscopAlfresco(models.AbstractModel): return file_upload except (UpdateConflictException, ContentAlreadyExistsException): _logger.info("Le document %s existe déjà dans le dossier spécifié" % name) - # Recherche noderef document existant - children = cmis_obj.getChildren().getResults() + # Recherche node_ref document existant + children = cmis_obj.getDescendants(depth="3").getResults() old_cmis_file = list(filter(lambda f: f.name == name, children))[0] # Création d'une copie de travail du document pour versionnage pwc = old_cmis_file.checkout() @@ -304,10 +304,27 @@ class CgscopAlfresco(models.AbstractModel): contentType="application/pdf", ) return new_cmis_file - except ( - ObjectNotFoundException, - InvalidArgumentException, - ) as e: + except ObjectNotFoundException as e: + children = cmis_obj.getDescendants(depth="3").getResults() + children_file = list( + filter( + lambda f: f.properties.get("crm:type") == metadata.get("crm:type") + and f.properties.get("crm:contexte") == metadata.get("crm:contexte") + and f.properties.get("crm:annee") == metadata.get("crm:annee"), + children, + ) + ) + if children_file: + return children_file[0] + else: + raise exceptions.ValidationError( + _( + "L'appel à Alfresco à échoué :" + "\n- Code: %s\n\n- Url\n%s\n\n- Détail\n%s" + ) + % (e.status, e.url, e.details) + ) + except InvalidArgumentException as e: _logger.error(e) raise exceptions.ValidationError( _(