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