[FIX] don't blow up filters management if a filter uses an invalid syntax (or an unknown variable) and can't be evaluated
bzr revid: xmo@openerp.com-20120209161542-whs5ye637lijas26
This commit is contained in:
parent
2d08b98ea4
commit
77065685ca
|
@ -5,6 +5,7 @@ import base64
|
||||||
import csv
|
import csv
|
||||||
import glob
|
import glob
|
||||||
import itertools
|
import itertools
|
||||||
|
import logging
|
||||||
import operator
|
import operator
|
||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
|
@ -1177,11 +1178,21 @@ class SearchView(View):
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def get_filters(self, req, model):
|
def get_filters(self, req, model):
|
||||||
|
logger = logging.getLogger(__name__ + '.SearchView.get_filters')
|
||||||
Model = req.session.model("ir.filters")
|
Model = req.session.model("ir.filters")
|
||||||
filters = Model.get_filters(model)
|
filters = Model.get_filters(model)
|
||||||
for filter in filters:
|
for filter in filters:
|
||||||
filter["context"] = req.session.eval_context(parse_context(filter["context"], req.session))
|
try:
|
||||||
filter["domain"] = req.session.eval_domain(parse_domain(filter["domain"], req.session))
|
filter["context"] = req.session.eval_context(
|
||||||
|
parse_context(filter["context"], req.session))
|
||||||
|
filter["domain"] = req.session.eval_domain(
|
||||||
|
parse_domain(filter["domain"], req.session))
|
||||||
|
except Exception:
|
||||||
|
logger.exception("Failed to parse custom filter %s in %s",
|
||||||
|
filter['name'], model)
|
||||||
|
filter['disabled'] = True
|
||||||
|
del filter['context']
|
||||||
|
del filter['domain']
|
||||||
return filters
|
return filters
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
|
|
|
@ -1279,7 +1279,10 @@
|
||||||
<option class="oe-filters-title" value="">Filters</option>
|
<option class="oe-filters-title" value="">Filters</option>
|
||||||
<optgroup label="-- Filters --">
|
<optgroup label="-- Filters --">
|
||||||
<t t-foreach="filters" t-as="filter">
|
<t t-foreach="filters" t-as="filter">
|
||||||
<option t-attf-value="get:#{filter_index}"><t t-esc="filter.name"/></option>
|
<option t-attf-value="get:#{filter_index}"
|
||||||
|
t-att-disabled="filter.disabled and 'disabled'">
|
||||||
|
<t t-esc="filter.name"/>
|
||||||
|
</option>
|
||||||
</t>
|
</t>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
<optgroup label="-- Actions --">
|
<optgroup label="-- Actions --">
|
||||||
|
|
Loading…
Reference in New Issue