diff --git a/models/api_alfresco.py b/models/api_alfresco.py index 8bc78f2b4e756e1c88f5087e3449a173420b3ea1..eb83decaf3386371eda5b73cea1fb6ca2da4b109 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