Skip to Content
Menu
This question has been flagged
1 Atsakyti
9438 Rodiniai

I have a search filter defined below

<filter string="Taller" name="ex_height_taller_1" domain="[('height','&gt;',context.get('test_value', False))]" />


context.get can never get the context value pass into the view.After tracing the problem into pyeval.js, I notice the eval_domains function never take into consideration the custom context passed into the view.


It will only works for context values defined from the following function

instance.web.pyeval.context = function () {

return _.extend({

datetime: datetime,

context_today: context_today,

time: time,

relativedelta: relativedelta,

current_date: py.PY_call(

time.strftime, [py.str.fromJSON('%Y-%m-%d')]),

}, instance.session.user_context);

};


Is there a way to overcome this? I need to define a test_value base on the initial partner choose first for comparison.

Portretas
Atmesti
Autorius Best Answer

Found the solution......

Look for the following code in pyeval.js


instance.web.pyeval.sync_eval_domains_and_contexts = function (source) {

    var contexts = ([instance.session.user_context] || []).concat(source.contexts);

    // see Session.eval_context in Python

    return {

        context: instance.web.pyeval.eval('contexts', contexts),

        domain: instance.web.pyeval.eval('domains', source.domains, source.contexts[0]),

        group_by: instance.web.pyeval.eval('groupbys', source.group_by_seq || [])

    };

};

Pass in the context  source.contexts[0] to the domain for evaluation.
This will be good for creating dynamic search filter using context.

Cheers

Portretas
Atmesti
Related Posts Replies Rodiniai Veikla
0
kov. 15
3391
2
lapkr. 24
2675
6
kov. 18
8191
0
geg. 15
3124
2
kov. 15
7924