From f5841bd2da37c6b4ab65ab51ee49cb3eb60867db Mon Sep 17 00:00:00 2001
From: jordan <jordan@le-filament.com>
Date: Wed, 2 Feb 2022 16:33:27 +0100
Subject: [PATCH] [fix] push_alfresco_file

---
 models/api_alfresco.py | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/models/api_alfresco.py b/models/api_alfresco.py
index 8bc78f2..eb83dec 100644
--- a/models/api_alfresco.py
+++ b/models/api_alfresco.py
@@ -6,7 +6,7 @@ import logging
 import xml.etree.ElementTree as et
 
 from odoo import models, exceptions, fields
-from cmislib.exceptions import ContentAlreadyExistsException, \
+from cmislib.exceptions import CmisException, ContentAlreadyExistsException, \
     ObjectNotFoundException, UpdateConflictException, InvalidArgumentException
 
 _logger = logging.getLogger(__name__)
@@ -221,23 +221,27 @@ class CgscopAlfresco(models.AbstractModel):
             raise exceptions.ValidationError(
                 "Le dossier parent n'existe pas ou n'est pas renseigné!")
 
-        try:
-            cmis_obj = backend.get_cmis_repository().getObject(folder)
+        cmis_obj = backend.get_cmis_repository().getObject(folder)
 
+        try:
             file_upload = cmis_obj.createDocument(
                 name=name,
                 properties=metadata,
                 contentFile=file,
                 contentType='application/pdf'
             )
+            return file_upload
+        except CmisException:
+            raise exceptions.ValidationError(
+                    """Erreur de mise à jour Alfresco :
+                    Le document existe déjà dans Alfresco""")
         except (ContentAlreadyExistsException, ObjectNotFoundException,
                 UpdateConflictException, InvalidArgumentException) as e:
             _logger.error(e)
-            raise exceptions.ValidationError("""Erreur de mise à jour Alfresco :
+            raise exceptions.ValidationError(
+                """Erreur de mise à jour Alfresco :
                 - Code : %s
                 - Url : %s
                 - Détail : %s""" % (e.status, e.url, e.details))
         except Exception as e:
             raise exceptions.ValidationError(e)
-
-        return file_upload
-- 
GitLab