Skip to content
Snippets Groups Projects
Commit 3fdef02d authored by Benjamin - Le Filament's avatar Benjamin - Le Filament
Browse files

[add] cmis file upload function

parent 3e368593
No related branches found
No related tags found
No related merge requests found
......@@ -5,7 +5,9 @@ import requests
import logging
import xml.etree.ElementTree as et
from odoo import models, exceptions, tools
from odoo import models, exceptions, fields
from cmislib.exceptions import ContentAlreadyExistsException, \
ObjectNotFoundException, UpdateConflictException, InvalidArgumentException
_logger = logging.getLogger(__name__)
......@@ -205,3 +207,45 @@ class CgscopAlfresco(models.AbstractModel):
"""
return result.get('nodeRef', '').replace(
'workspace://SpacesStore/', '')
def push_alfresco_file(
self, file, name, partner, type,
context='STD', year=fields.Datetime.now().year):
"""
Ajoute un fichier sur la GED Alfresco
@return: fonction get_partner_files() de res.partner
"""
backend = self.env['cmis.backend'].search([], limit=1)
if not partner.partner_cmis_folder:
# TODO: commit value on creation because of error
folder = partner.create_cmis_folder()
else:
folder = partner.partner_cmis_folder
try:
cmis_obj = backend.get_cmis_repository().getObject(folder)
file_upload = cmis_obj.createDocument(
name=name,
properties={
'cmis:objectTypeId': 'D:crm:document',
'cmis:secondaryObjectTypeIds': ['P:crm:organisme'],
'crm:type': type,
'crm:contexte': context,
'crm:annee': year
},
contentFile=file,
contentType='application/pdf'
)
except (ContentAlreadyExistsException, ObjectNotFoundException,
UpdateConflictException, InvalidArgumentException) as e:
_logger.error(e)
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment