Reviewers: ,
Please review this at http://codereview.tryton.org/656002/
Affected files:
M trytond/model/modelview.py
Index: trytond/model/modelview.py
===================================================================
--- a/trytond/model/modelview.py
+++ b/trytond/model/modelview.py
@@ -2,6 +2,8 @@
#this repository contains the full copyright notices and license terms.
from lxml import etree
from functools import wraps
+import copy
+
from trytond.model import Model
from trytond.tools import safe_eval, ClassProperty
from trytond.pyson import PYSONEncoder, CONTEXT
@@ -400,7 +402,8 @@
return arch, fields2
@classmethod
- def __view_look_dom(cls, element, type, fields_width=None):
+ def __view_look_dom(cls, element, type, fields_width=None,
+ fields_attrs=None):
pool = Pool()
Translation = pool.get('ir.translation')
ModelData = pool.get('ir.model.data')
@@ -409,13 +412,16 @@
if fields_width is None:
fields_width = {}
- fields_attrs = {}
+ if not fields_attrs:
+ fields_attrs = {}
+ else:
+ fields_attrs = copy.deepcopy(fields_attrs)
childs = True
if element.tag in ('field', 'label', 'separator', 'group'):
for attr in ('name', 'icon'):
if element.get(attr):
- attrs = {}
+ fields_attrs.setdefault(element.get(attr), {})
try:
if element.get(attr) in cls._fields:
field = cls._fields[element.get(attr)]
@@ -451,7 +457,7 @@
for view_id in view_ids:
view = Relation.fields_view_get(
view_id=view_id)
- views[view['type']] = view
+ views[str(view_id)] = view
break
else:
for view_type in mode:
@@ -462,10 +468,8 @@
element.attrib['mode'] = ','.join(mode)
element.attrib['view_ids'] = ','.join(
map(str, view_ids))
- attrs = {
- 'views': views,
- }
- fields_attrs[element.get(attr)] = attrs
+
fields_attrs[element.get(attr)].setdefault('views', {}
+ ).update(views)
if element.get('name') in fields_width:
element.set('width',
str(fields_width[element.get('name')]))
@@ -509,8 +513,8 @@
if childs:
for field in element:
- fields_attrs.update(cls.__view_look_dom(field, type,
- fields_width=fields_width))
+ fields_attrs = cls.__view_look_dom(field, type,
+ fields_width=fields_width, fields_attrs=fields_attrs)
return fields_attrs
@staticmethod
--
--
[email protected] mailing list
---
You received this message because you are subscribed to the Google Groups "tryton-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.