openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #05381
[Merge] lp:~openerp-dev/openobject-client/trunk-bug-735936-nch into lp:openobject-client
Naresh(OpenERP) has proposed merging lp:~openerp-dev/openobject-client/trunk-bug-735936-nch into lp:openobject-client.
Requested reviews:
OpenERP sa GTK client R&D (openerp-dev-gtk)
Related bugs:
Bug #735936 in OpenERP GTK Client: "default not working together with group by in context"
https://bugs.launchpad.net/openobject-client/+bug/735936
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-735936-nch/+merge/57309
--
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-735936-nch/+merge/57309
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client/trunk-bug-735936-nch.
=== modified file 'bin/widget/screen/screen.py'
--- bin/widget/screen/screen.py 2011-02-11 06:59:40 +0000
+++ bin/widget/screen/screen.py 2011-04-12 12:03:52 +0000
@@ -259,6 +259,7 @@
self.context.get('group_by_no_leaf')) \
and not self.current_view.view_type == 'graph':
self.current_view.reload = True
+ self.search_count = rpc.session.rpc_exec_auth_try('/object', 'execute', self.name, 'search_count', v, self.context)
self.display()
return True
ids = rpc.session.rpc_exec_auth('/object', 'execute', self.name, 'search', v, offset, limit, self.sort, self.context)
=== modified file 'bin/widget/view/form_gtk/one2many_list.py'
--- bin/widget/view/form_gtk/one2many_list.py 2011-03-28 09:11:21 +0000
+++ bin/widget/view/form_gtk/one2many_list.py 2011-04-12 12:03:52 +0000
@@ -149,14 +149,6 @@
def __init__(self, window, parent, model, attrs={}):
interface.widget_interface.__init__(self, window, parent, model, attrs)
self.context = {}
- #TODO:
- # group by context are evaled here as we need the context in screen
- # while displaying.
- # We need a better way to eval context that has group_by'
- # We needed to do this as normal context also get evaled here
- # and results in a traceback which should not be evaled here.
- if str(attrs.get('context',"{}")).find('group_by') != -1:
- self.context = tools.expr_eval(attrs.get('context',"{}"))
self._readonly = self.default_readonly
self.widget = gtk.VBox(homogeneous=False, spacing=5)
hb = gtk.HBox(homogeneous=False, spacing=5)
@@ -179,10 +171,6 @@
menubar.add(menuitem_title)
hb.pack_start(menubar, expand=True, fill=True)
- group_by = self.context.get('group_by')
- if group_by:
- if not isinstance(group_by, list):
- self.context['group_by'] = [group_by]
# the context to pass to default_get can be optionally specified in
# the context of the one2many field. We also support a legacy
@@ -194,7 +182,6 @@
parent=self.parent, views_preload=attrs.get('views', {}),
tree_saves=attrs.get('saves', False),
create_new=True,
- context=self.context,
row_activate=self._on_activate,
default_get=default_get_ctx,
window=self._window, readonly=self._readonly, limit=pager.DEFAULT_LIMIT)
@@ -400,6 +387,9 @@
pass
def display(self, model, model_field):
+ if model:
+ self.context.update(model.expr_eval(self.attrs.get('context',"{}")))
+ self.screen.context.update(self.context)
self.model = model
self.model_field = model_field
if not model_field:
=== modified file 'bin/widget/view/form_gtk/pager.py'
--- bin/widget/view/form_gtk/pager.py 2010-12-13 12:54:46 +0000
+++ bin/widget/view/form_gtk/pager.py 2011-04-12 12:03:52 +0000
@@ -120,7 +120,6 @@
ids = self.object.model.pager_cache[self.object.name][offset:offset + limit]
self.object.model_field.limit = limit or len(ids)
-
if self.type == 'one2many':
self.object.model_field.set(self.object.model, ids)
self.object.display(self.object.model, self.object.model_field)
@@ -128,8 +127,8 @@
self.screen.models.clear()
self.screen.load(ids)
self.screen.display()
+ self.set_sensitivity()
self.screen.current_view.set_cursor()
- self.set_sensitivity()
def next_record(self):
self.screen.display_next()
@@ -155,6 +154,6 @@
self.screen.offset = 0
self.screen.limit = self.get_active_text()
self.set_sensitivity()
-
-
-
+
+
+
=== modified file 'bin/widget/view/list.py'
--- bin/widget/view/list.py 2011-03-28 11:33:11 +0000
+++ bin/widget/view/list.py 2011-04-12 12:03:52 +0000
@@ -734,7 +734,10 @@
def display(self):
if self.reload or (not self.widget_tree.get_model()) or self.screen.models<>self.widget_tree.get_model().model_group:
- if self.screen.context.get('group_by'):
+ group_by = self.screen.context.get('group_by')
+ if group_by:
+ if not isinstance(group_by, list):
+ self.screen.context['group_by'] = [group_by]
if self.screen.type == 'one2many':
self.screen.domain = [('id','in',self.screen.ids_get())]
self.screen.models.models.clear()
Follow ups