From f36dd1bd003ee793e361f48edf6470c139d779f5 Mon Sep 17 00:00:00 2001 From: Akim Juillerat Date: Mon, 2 Aug 2021 14:37:49 +0200 Subject: [PATCH] base_fileurl_field: Consider test mode and installation of demo data --- base_fileurl_field/fields.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/base_fileurl_field/fields.py b/base_fileurl_field/fields.py index 0d2b4b6..793de65 100644 --- a/base_fileurl_field/fields.py +++ b/base_fileurl_field/fields.py @@ -3,6 +3,7 @@ import unicodedata from odoo import fields +from odoo.tools import config fields.Field.__doc__ += """ @@ -63,7 +64,7 @@ class FileURL(fields.Binary): storage_key = False env['ir.attachment'].sudo().with_context( binary_field_real_user=env.user, - storage_location=self.storage_location, + storage_location=self._storage_location(), force_storage_key=storage_key, ).create(vals) @@ -76,7 +77,7 @@ class FileURL(fields.Binary): storage_key = self._build_storage_key(fname) super().write( records.with_context( - storage_location=self.storage_location, + storage_location=self._storage_location(), force_storage_key=storage_key, ), value @@ -95,5 +96,11 @@ class FileURL(fields.Binary): unicodedata.normalize('NFKC', filename) ]) + def _storage_location(self): + # Avoid pushing to s3 in test mode or installation of demo data + force_file_storage = config['test_enable'] or config['init'] and \ + config['demo'] + return 'file' if force_file_storage else self.storage_location + fields.FileURL = FileURL