Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
9487 Lượt xem

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.

Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 3 15
3412
2
thg 11 24
2731
6
thg 3 18
8230
0
thg 5 15
3154
2
thg 3 15
7945