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

Reply via email to