From f36dd1bd003ee793e361f48edf6470c139d779f5 Mon Sep 17 00:00:00 2001 From: Akim Juillerat Date: Mon, 2 Aug 2021 14:37:49 +0200 Subject: [PATCH 1/3] 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 From e82fe205a012783a8b63b1ac2d39acd9515bb56e Mon Sep 17 00:00:00 2001 From: Akim Juillerat Date: Thu, 5 Aug 2021 14:25:48 +0200 Subject: [PATCH 2/3] base_fileurl_field: disable pylint W8106:method-required-super --- base_fileurl_field/fields.py | 1 + 1 file changed, 1 insertion(+) diff --git a/base_fileurl_field/fields.py b/base_fileurl_field/fields.py index 793de65..c02ea56 100644 --- a/base_fileurl_field/fields.py +++ b/base_fileurl_field/fields.py @@ -36,6 +36,7 @@ class FileURL(fields.Binary): 'filename': '', # Field to use to store the filename on ir.attachment } + # pylint: disable=method-required-super def create(self, record_values): assert self.attachment if not record_values: From 849181c4a00785a3167b760b297770e7b6959f47 Mon Sep 17 00:00:00 2001 From: Denis Leemann Date: Mon, 9 Aug 2021 16:15:06 +0200 Subject: [PATCH 3/3] Run manually pre-commit hook --- base_fileurl_field/fields.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/base_fileurl_field/fields.py b/base_fileurl_field/fields.py index c02ea56..a71f80b 100644 --- a/base_fileurl_field/fields.py +++ b/base_fileurl_field/fields.py @@ -81,26 +81,30 @@ class FileURL(fields.Binary): storage_location=self._storage_location(), force_storage_key=storage_key, ), - value + value, ) return True def _setup_regular_base(self, model): super()._setup_regular_base(model) if self.storage_path: - assert self.filename is not None, \ + assert self.filename is not None, ( "Field %s defines storage_path without filename" % self + ) def _build_storage_key(self, filename): - return '/'.join([ - self.storage_path.rstrip('/'), - unicodedata.normalize('NFKC', filename) - ]) + return '/'.join( + [ + self.storage_path.rstrip('/'), + 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'] + force_file_storage = ( + config['test_enable'] or config['init'] and config['demo'] + ) return 'file' if force_file_storage else self.storage_location