From e49b7fb71bca627d204a63ea2a06fc3b7093182d Mon Sep 17 00:00:00 2001 From: Thomas Rehn Date: Tue, 30 Aug 2016 10:34:16 +0200 Subject: [PATCH] [FIX] fix bugs and add logging --- attachment_preview/model/ir_attachment.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/attachment_preview/model/ir_attachment.py b/attachment_preview/model/ir_attachment.py index 4c934c46..98eff341 100644 --- a/attachment_preview/model/ir_attachment.py +++ b/attachment_preview/model/ir_attachment.py @@ -18,12 +18,16 @@ # along with this program. If not, see . # ############################################################################## -import collections -import os.path -import mimetypes import base64 +import collections +import logging +import mimetypes +import os.path + from openerp.osv.orm import Model +_logger = logging.getLogger(__name__) + class IrAttachment(Model): _inherit = 'ir.attachment' @@ -50,6 +54,8 @@ class IrAttachment(Model): this[filename_field]) if this[binary_field] and extension: result[this.id] = extension + _logger.debug('Got extension %s from filename %s', + extension, this[filename_field]) # Second pass for all attachments which have to be loaded fully # to get the extension from the content ids_to_browse = [_id for _id in ids_to_browse if _id not in result] @@ -64,18 +70,24 @@ class IrAttachment(Model): if model == self._name and binary_field == 'datas'\ and this.store_fname: mimetype = ms.file( - this._full_path(cr, uid, this.store_fname)) + this._full_path(this.store_fname)) + _logger.debug('Magic determined mimetype %s from file %s', + mimetype, this.store_fname) else: mimetype = ms.buffer( base64.b64decode(this[binary_field])) + _logger.debug('Magic determined mimetype %s from buffer', + mimetype) except ImportError: (mimetype, encoding) = mimetypes.guess_type( 'data:;base64,' + this[binary_field], strict=False) + _logger.debug('Mimetypes guessed type %s from buffer', + mimetype) extension = mimetypes.guess_extension( mimetype.split(';')[0], strict=False) result[this.id] = extension for _id in result: - result[_id] = (extension or '').lstrip('.').lower() + result[_id] = (result[_id] or '').lstrip('.').lower() return result if isinstance(ids, collections.Iterable) else result[ids] def get_attachment_extension(self, cr, uid, ids, context=None):