Merge commit 'refs/pull/121/head' of github.com:camptocamp/odoo-cloud-platform into merge-branch-2543-master-99f318df

This commit is contained in:
Denis Leemann
2020-03-30 10:46:22 +02:00
2 changed files with 7 additions and 1 deletions
+2
View File
@@ -24,6 +24,8 @@ FileURL fields is intended to store Binary data on an external storage
Will be used to set fname on ir.attachment and, if storage_path is
defined, will be passed to force the storage key.
:param acl_public_read: Set public-read ACL by default
Limitations / Issues
--------------------
+5 -1
View File
@@ -33,6 +33,7 @@ class FileURL(fields.Binary):
'storage_location': '', # External storage activated on the system (cf base_attachment_storage) # noqa
'storage_path': '', # Path to be used as storage key (prefix of filename) # noqa
'filename': '', # Field to use to store the filename on ir.attachment
'acl_public_read': True, # Set public-read ACL by default
}
def create(self, record_values):
@@ -51,6 +52,7 @@ class FileURL(fields.Binary):
'res_field': self.name,
'res_id': record.id,
'type': 'binary',
'public': self.acl_public_read,
'datas': value,
}
fname = False
@@ -61,11 +63,13 @@ class FileURL(fields.Binary):
storage_key = self._build_storage_key(fname)
if not fname:
storage_key = False
env['ir.attachment'].sudo().with_context(
attachment = env['ir.attachment'].sudo().with_context(
binary_field_real_user=env.user,
storage_location=self.storage_location,
force_storage_key=storage_key,
).create(vals)
if self.acl_public_read:
attachment._store_file_set_acl('public-read')
def write(self, records, value):
for record in records: