From 541855a097426eeb3296e63ef0f46c2f3ee3510a Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Tue, 13 Feb 2024 19:14:48 +0100
Subject: [PATCH] [UPD] move Alfresco upload to _post function

---
 .pre-commit-config.yaml | 35 +++++++++++++++++++----------------
 models/account_move.py  | 25 ++++++++++++++++++-------
 2 files changed, 37 insertions(+), 23 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 732d0c4..4acca68 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/account_move.py b/models/account_move.py
index dfc40bd..e35a23e 100644
--- a/models/account_move.py
+++ b/models/account_move.py
@@ -81,20 +81,31 @@ class AccountMove(models.Model):
     # ------------------------------------------------------
     # Override parent
     # ------------------------------------------------------
-    def action_post(self):
+    def _post(self, soft=True):
         """
-        Charge la facture ou l'avoir sur Alfresco s'l s'agit d'une cotisation AURA
+        Charge la facture ou l'avoir sur Alfresco s'il s'agit d'une cotisation AURA
         Stocke le noderef sur la facture
         """
         ur_aura = self.env.ref("__import__.ur_arh")
-        res = super().action_post()
-        for invoice in self:
+        move_ids = super(AccountMove, self)._post(soft)
+        if len(move_ids) == 1:
             try:
-                if invoice.is_contribution and invoice.company_id == ur_aura:
-                    invoice.node_ref = invoice.upload_contribution_file()
+                if move_ids.is_contribution and move_ids.company_id == ur_aura:
+                    move_ids.node_ref = move_ids.upload_contribution_file()
             except Exception as e:
                 raise e
-        return res
+        else:
+            for move in move_ids:
+                if move.is_contribution and move.company_id == ur_aura:
+                    description = "%s - %s - PDF Cotisation" % (
+                        move.name,
+                        move.partner_id.name,
+                    )
+                    move.node_ref = move.with_delay(
+                        description=description
+                    ).upload_contribution_file()
+
+        return move_ids
 
     def button_draft(self):
         """
-- 
GitLab