openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #04222
[Merge] lp:~openerp-dev/openobject-client-web/trunk-bug-727046-vda into lp:openobject-client-web
vda(Open ERP) has proposed merging lp:~openerp-dev/openobject-client-web/trunk-bug-727046-vda into lp:openobject-client-web.
Requested reviews:
OpenERP SA's Web Client R&D (openerp-dev-web)
Related bugs:
Bug #727046 in OpenERP Web Client: "[6.0] web client does not respect "Auto Search" settings of "Windows Action""
https://bugs.launchpad.net/openobject-client-web/+bug/727046
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/trunk-bug-727046-vda/+merge/53574
Added "Auto Search" settings of "Windows Action"
--
https://code.launchpad.net/~openerp-dev/openobject-client-web/trunk-bug-727046-vda/+merge/53574
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client-web/trunk-bug-727046-vda.
=== modified file 'addons/openerp/controllers/actions.py'
--- addons/openerp/controllers/actions.py 2011-02-21 16:47:25 +0000
+++ addons/openerp/controllers/actions.py 2011-03-16 07:41:19 +0000
@@ -37,7 +37,7 @@
def execute_window(view_ids, model, res_id=False, domain=None, view_type='form', context=None,
mode='form,tree', name=None, target=None, limit=None, search_view=None,
- context_menu=False, display_menu_tip=False, action_id=None):
+ context_menu=False, display_menu_tip=False, action_id=None,auto_search=None):
"""Performs `actions.act_window` action.
@param view_ids: view ids
@@ -63,6 +63,8 @@
params['context_menu'] = context_menu
params['display_menu_tip'] = display_menu_tip
params['target'] = target or None
+ params.auto_search = auto_search
+
cherrypy.request._terp_view_name = name or None
cherrypy.request._terp_view_target = target or None
@@ -257,7 +259,12 @@
display_menu_tip = action.get('help')
else:
display_menu_tip = None
-
+
+ if action.get('limit'):
+ limit = action['limit']
+ else:
+ limit = data.get('limit')
+
return execute_window(view_ids,
data['res_model'],
data['res_id'],
@@ -266,11 +273,12 @@
ctx, data['view_mode'],
name=action.get('name'),
target=action.get('target'),
- limit=data.get('limit'),
+ limit=limit,
search_view=data['search_view'],
context_menu=data.get('context_menu'),
display_menu_tip=display_menu_tip,
- action_id=action.get('id'))
+ action_id=action.get('id'),
+ auto_search=action.get('auto_search'))
def server(action, data):
context = dict(data.get('context', {}),
=== modified file 'addons/openerp/static/javascript/listgrid.js'
--- addons/openerp/static/javascript/listgrid.js 2011-02-17 17:46:51 +0000
+++ addons/openerp/static/javascript/listgrid.js 2011-03-16 07:41:19 +0000
@@ -693,7 +693,6 @@
}
var prefix = this.name == '_terp_list' ? '' : this.name + '/';
-
var o = openobject.dom.get(prefix + '_terp_offset');
var l = openobject.dom.get(prefix + '_terp_limit');
var c = openobject.dom.get(prefix + '_terp_count');
@@ -728,21 +727,24 @@
var self = this;
var current_id = edit_inline ? (parseInt(edit_inline) || 0) : edit_inline;
-
+ var _terp_auto_limit = jQuery(idSelector(this.name)).data() ? jQuery(idSelector(this.name)).data('auto_limit') : 'False';
+
var args = jQuery.extend(this.makeArgs(), {
_terp_source: this.name,
_terp_edit_inline: edit_inline,
_terp_source_default_get: default_get_ctx,
_terp_concurrency_info: concurrency_info,
_terp_editable: openobject.dom.get('_terp_editable').value,
- _terp_group_by_ctx: openobject.dom.get('_terp_group_by_ctx').value
+ _terp_group_by_ctx: openobject.dom.get('_terp_group_by_ctx').value,
+ _terp_auto_limit: _terp_auto_limit
});
-
+
if (this.name == '_terp_list') {
jQuery.extend(args, {
_terp_search_domain: openobject.dom.get('_terp_search_domain').value,
_terp_search_data: openobject.dom.get('_terp_search_data').value,
- _terp_filter_domain: openobject.dom.get('_terp_filter_domain').value
+ _terp_filter_domain: openobject.dom.get('_terp_filter_domain').value,
+ _terp_auto_search: 'True'
});
}
=== modified file 'addons/openerp/widgets/_views.py'
--- addons/openerp/widgets/_views.py 2011-02-10 16:09:23 +0000
+++ addons/openerp/widgets/_views.py 2011-03-16 07:41:19 +0000
@@ -109,7 +109,8 @@
offset=screen.offset, limit=screen.limit,
count=screen.count, nolinks=screen.link,
m2m=screen.m2m, o2m=screen.o2m,
- default_data=screen.default_value)
+ default_data=screen.default_value,
+ auto_search=screen.auto_search)
screen.ids = widget.ids
screen.limit = widget.limit
=== modified file 'addons/openerp/widgets/listgrid.py'
--- addons/openerp/widgets/listgrid.py 2011-03-02 15:23:31 +0000
+++ addons/openerp/widgets/listgrid.py 2011-03-16 07:41:19 +0000
@@ -97,6 +97,10 @@
self.o2m = kw.get('o2m', 0)
self.concurrency_info = None
self.selector = None
+
+ self.auto_search = kw.get('auto_search')
+ if self.auto_search is None:
+ self.auto_search = True
terp_params = getattr(cherrypy.request, 'terp_params', {})
if terp_params:
@@ -148,7 +152,7 @@
search_text = terp_params.get('_terp_search_text', False)
if not self.source:
self.source = terp_params.get('_terp_source', None)
- if not default_data and not self.o2m and not self.m2m:
+ if not default_data and not self.o2m and not self.m2m and self.auto_search:
if self.limit > 0:
if self.sort_key:
ids = proxy.search(search_param, self.offset, self.limit, self.sort_key + ' ' +self.sort_order, context)
@@ -174,7 +178,7 @@
if ids and not isinstance(ids, list):
ids = [ids]
- if ids and len(ids) > 0:
+ if ids and len(ids) > 0 and self.auto_search:
ctx = rpc.get_session().context.copy()
ctx.update(context)
=== modified file 'addons/openerp/widgets/pager.py'
--- addons/openerp/widgets/pager.py 2011-01-17 11:57:11 +0000
+++ addons/openerp/widgets/pager.py 2011-03-16 07:41:19 +0000
@@ -20,6 +20,7 @@
###############################################################################
from openerp.widgets import TinyWidget
+import cherrypy
class Pager(TinyWidget):
@@ -42,7 +43,10 @@
self.limit = limit or 50
self.count = count or 0
self.pager_options = [20, 50, 100, 500]
-
+ if getattr(cherrypy.request,'terp_params',{}):
+ if cherrypy.request.terp_params.auto_limit:
+ self.pager_options[0] = cherrypy.request.terp_params.auto_limit
+
if self.limit != Pager.UNLIMITED and len(self.ids) > self.limit:
# if self.ids isn't clamped, it is entirely un-paginated.
self.ids = self.ids[self.offset:self.offset + self.limit]
=== modified file 'addons/openerp/widgets/screen.py'
--- addons/openerp/widgets/screen.py 2011-02-10 16:09:23 +0000
+++ addons/openerp/widgets/screen.py 2011-03-16 07:41:19 +0000
@@ -58,6 +58,7 @@
self.m2m = kw.get('_m2m', 0)
self.o2m = kw.get('_o2m', 0)
+ self.auto_search = params.auto_search
self.is_dashboard = False
if self.model == 'board.board' and self.view_type == 'form':
self.is_dashboard = True
=== modified file 'addons/openerp/widgets/templates/pager.mako'
--- addons/openerp/widgets/templates/pager.mako 2010-12-06 14:15:41 +0000
+++ addons/openerp/widgets/templates/pager.mako 2011-03-16 07:41:19 +0000
@@ -38,14 +38,20 @@
<select id='_${name+str(pager_id)}_limit'
action="filter"
relation="${name}"
- onchange="jQuery('[id=${name_base}_terp_limit]').val(jQuery(this).val());
- jQuery('[id=${name_base}_terp_offset]').val(0);
- pager_action(this)" style="min-width: 25px;">
+ style="min-width: 25px;">
<option value=""></option>
% for k in pager_options:
<option value="${k}" ${py.selector(limit=='${k]}')}>${k}</option>
% endfor
<option value="-1" ${py.selector(limit==-1)}>unlimited</option>
</select>
+ <script type="text/javascript">
+ jQuery(idSelector('_${name+str(pager_id)}_limit')).change(function(){
+ jQuery(idSelector('${name}')).data('auto_limit', jQuery(idSelector('${name_base}_terp_limit')).val());
+ jQuery(idSelector('${name_base}_terp_limit')).val(jQuery(this).val());
+ jQuery(idSelector('${name_base}_terp_offset')).val(0);
+ pager_action(this);
+ });
+ </script>
</div>
</div>
Follow ups