From 8ba057afd44318284393e8f9fcabedaf7e01b84d Mon Sep 17 00:00:00 2001 From: Benjamin <35699580+benj-filament@users.noreply.github.com> Date: Wed, 9 Oct 2019 10:14:30 +0200 Subject: [PATCH] add gestion mimetypes --- models/api_alfresco.py | 4 ++-- wizard/add_file_wizard.py | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/models/api_alfresco.py b/models/api_alfresco.py index 1c3e208..75f6e30 100644 --- a/models/api_alfresco.py +++ b/models/api_alfresco.py @@ -121,7 +121,7 @@ class ConnectorAlfresco(models.AbstractModel): return self.get_nodeRef( self.alfresco_get_by_url(url=url, call_type='post', json=json)) - def alfresco_upload(self, raisonSociale, type, periode, validite, filename, doc): + def alfresco_upload(self, raisonSociale, type, periode, validite, filename, mimetype, doc): """ Upload d'un document sur Alfresco :param doc: document encodé en base64 @@ -134,7 +134,7 @@ class ConnectorAlfresco(models.AbstractModel): 'periode': periode, 'type': type, 'nomOrigine': filename, - 'mimeType': "application/octet-stream", + 'mimeType': mimetype, 'validite': validite, 'contentBase64': doc, } diff --git a/wizard/add_file_wizard.py b/wizard/add_file_wizard.py index 45e7217..cd2caf0 100644 --- a/wizard/add_file_wizard.py +++ b/wizard/add_file_wizard.py @@ -1,7 +1,10 @@ # © 2019 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import mimetypes + from odoo import api, fields, models +from odoo.tools.mimetypes import guess_mimetype class AddFileWizard(models.TransientModel): @@ -39,7 +42,6 @@ class AddFileWizard(models.TransientModel): validite = fields.Selection(selection=_get_validite, string='Validité') file = fields.Binary('Fichier') filename = fields.Char('Nom') - content_type = fields.Char('MimeType') partner_id = fields.Many2one( comodel_name='res.partner', string='Organisme', @@ -47,12 +49,18 @@ class AddFileWizard(models.TransientModel): @api.multi def add_file(self): + content_type = mimetypes.guess_type(self.filename) + if content_type[0]: + content_type = content_type[0] + else: + content_type = guess_mimetype(self.file) self.alfresco_upload( raisonSociale=self.partner_id.name, type=self.type, periode=self.periode, validite=self.validite, filename=self.filename, + mimetype=content_type, doc=self.file.decode('utf-8')) return { -- GitLab