← Back to team overview

openerp-dev-web team mailing list archive

lp:~openerp-dev/openobject-client-web/trunk-improved-searchview-cpa into lp:openobject-client-web

 

Chirag Patel (OpenERP) has proposed merging lp:~openerp-dev/openobject-client-web/trunk-improved-searchview-cpa into lp:openobject-client-web.

Requested reviews:
  OpenERP SA's Web Client R&D (openerp-dev-web)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/trunk-improved-searchview-cpa/+merge/50113

Hello,

Fixed search view issues, Check with the following steps.

steps:
Go to list view of partner(same - any object), add your custom filter and go to form view,switch back to list view and try to apply filter - group by or any thing.It doesn't work.I have to clear the filter first and then need to restart again so for example : 
    i) first I have filtered my data with country and opened form view for particular partner but then I feel I need some more filtration so will go back to list view 
    ii) and will try to add another filter,let say language - but at this time filters are not working ,neither custom nor default.Even group by is not working either. 

Thanks.
-- 
https://code.launchpad.net/~openerp-dev/openobject-client-web/trunk-improved-searchview-cpa/+merge/50113
Your team OpenERP SA's Web Client R&D is requested to review the proposed merge of lp:~openerp-dev/openobject-client-web/trunk-improved-searchview-cpa into lp:openobject-client-web.
=== modified file 'addons/openerp/controllers/search.py'
--- addons/openerp/controllers/search.py	2011-02-10 16:09:23 +0000
+++ addons/openerp/controllers/search.py	2011-02-17 09:41:49 +0000
@@ -25,8 +25,6 @@
 from error_page import _ep
 from openobject import rpc
 from openobject.tools import expose, ast
-import simplejson
-
 
 class Search(Form):
 
@@ -333,7 +331,7 @@
         if not custom_domains:
             custom_domains = []
         else:
-            custom_domains = simplejson.loads(custom_domains)
+            custom_domains = eval(custom_domains)
         
         # conversion of the pseudo domain from the javascript to a valid domain
         ncustom_domain = []

=== modified file 'addons/openerp/static/javascript/search.js'
--- addons/openerp/static/javascript/search.js	2011-02-14 11:55:01 +0000
+++ addons/openerp/static/javascript/search.js	2011-02-17 09:41:49 +0000
@@ -276,19 +276,21 @@
         var pid = jQuery(this).index();
 
         jQuery(this).children('.filter_row_class').each(function () {
-            var $constraint_value = jQuery('input.qstring', this);
-            var $fieldname = jQuery(idSelector('filterlabel'), this);
-            var id = jQuery('.filter_row_class', jQuery(this).parent()).index(this);
-
-            if($constraint_value.val()) {
-                var rec = {};
-                rec[$fieldname.attr('value')] = $constraint_value.val();
-                record[id] = rec;
-            } else {
-				$constraint_value.addClass('errorfield').val(_('Invalid Value')).click(function() {
-					jQuery(this).val('').removeClass('errorfield')
-				})
-				error = true;
+        	if(jQuery(this).parent().css('display') != 'none'){
+	            var $constraint_value = jQuery('input.qstring', this);
+	            var $fieldname = jQuery(idSelector('filterlabel'), this);
+	            var id = jQuery('.filter_row_class', jQuery(this).parent()).index(this);
+	
+	            if($constraint_value.val()) {
+	                var rec = {};
+	                rec[$fieldname.attr('value')] = $constraint_value.val();
+	                record[id] = rec;
+	            } else {
+					$constraint_value.addClass('errorfield').val(_('Invalid Value')).click(function() {
+						jQuery(this).val('').removeClass('errorfield')
+					})
+					error = true;
+				}
 			}
         });
 

=== modified file 'addons/openerp/widgets/search.py'
--- addons/openerp/widgets/search.py	2011-02-10 16:09:23 +0000
+++ addons/openerp/widgets/search.py	2011-02-17 09:41:49 +0000
@@ -279,7 +279,7 @@
             ('>', _('greater than')), ('<', _('less than')),
             ('in', _('in')), ('not in', _('not in'))]
 
-        self.flt_domain = str(self.filter_domain).replace("(", "[").replace(')', ']')
+        self.flt_domain = str(self.filter_domain).replace("(", "[").replace(')', ']').replace('%', '')
         self.custom_filter_domain = self.filter_domain
 
     def parse(self, model=None, root=None, fields=None, values={}):


Follow ups