This patch lets you define on fields.Binary the name of a field that
will receive the filename used to set it.
Please review this at http://codereview.appspot.com/4137041/
Affected files:
M trytond/ir/attachment.py
M trytond/model/fields/binary.py
M trytond/model/model.py
Index: trytond/ir/attachment.py
===================================================================
--- a/trytond/ir/attachment.py
+++ b/trytond/ir/attachment.py
@@ -19,11 +19,10 @@
_name = 'ir.attachment'
_description = __doc__
name = fields.Char('Attachment Name', required=True)
- datas = fields.Function(fields.Binary('Datas'), 'get_datas',
- setter='set_datas')
+ datas = fields.Function(fields.Binary('Data', file_name='name'),
+ 'get_datas', setter='set_datas')
description = fields.Text('Description')
- resource = fields.Reference('Resource', selection='models_get',
- select=1)
+ resource = fields.Reference('Resource', selection='models_get',
select=1)
link = fields.Char('Link')
digest = fields.Char('Digest', size=32)
collision = fields.Integer('Collision')
Index: trytond/model/fields/binary.py
===================================================================
--- a/trytond/model/fields/binary.py
+++ b/trytond/model/fields/binary.py
@@ -12,14 +12,14 @@
def __init__(self, string='', help='', required=False, readonly=False,
domain=None, states=None, change_default=False, select=0,
- on_change=None, on_change_with=None, depends=None,
+ on_change=None, on_change_with=None, depends=None,
file_name=None,
order_field=None, context=None, loading='lazy'):
super(Binary, self).__init__(string=string, help=help,
- required=required, readonly=readonly, domain=domain,
- states=states, change_default=change_default,
select=select,
- on_change=on_change, on_change_with=on_change_with,
- depends=depends, order_field=order_field, context=context,
- loading=loading)
+ required=required, readonly=readonly, domain=domain,
states=states,
+ change_default=change_default, select=select,
on_change=on_change,
+ on_change_with=on_change_with, depends=depends,
+ order_field=order_field, context=context, loading=loading)
+ self.file_name = file_name
@staticmethod
def get(ids, model, name, values=None):
Index: trytond/model/model.py
===================================================================
--- a/trytond/model/model.py
+++ b/trytond/model/model.py
@@ -671,8 +671,9 @@
'sort',
'datetime_field',
'loading',
+ 'file_name',
):
- if getattr(self._columns[field], arg, None) != None:
+ if getattr(self._columns[field], arg, None) is not None:
res[field][arg] =
copy.copy(getattr(self._columns[field],
arg))
if not write_access or not fwrite_accesses.get(field, True):
--
[email protected] mailing list