コンテンツへスキップ
メニュー
この質問にフラグが付けられました
1 返信
9217 ビュー

There is a standard method

 def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False)

I'm calling a super on it and passing a domain like this

[('end_date', '>=', '2019-05-01'), ('end_date', '<=', '2019-05-30'), ('employee', 'in', [49]), ('state', 'in', ['done'])]

and it works.

but when I try to append

domain.append(('&'))
domain.append(('state', 'in', ['progress']))

I get

File "/home/www/workspace/openerp-7.0-20140804-231303/openerp/osv/expression.py", line 201, in normalize_domain
    assert expected == 0, 'This domain is syntactically not correct: %s' % (domain)
AssertionError: This domain is syntactically not correct: [('end_date', '>=', '2019-05-01'), ('end_date', '<=', '2019-05-30'), ('employee', 'in', [49]), ('state', 'in', ['done']), '&', ('state', 'in', ['progress'])]

basically, need to filter all records by dates and in state 'done' and on top of that all records in state 'progress'.

アバター
破棄
最善の回答

Hello

by default in odoo domain search with the & condition, so you don't need to add '&' into the domain

then you add ('state', 'in', ['done']), '&', ('state', 'in', ['progress'])

this above condition you have to write like ('state', 'in', ['done', 'progress']).

so your whole domain is like

[('end_date', '>=', '2019-05-01'), ('end_date', '<=', '2019-05-30'), 
('employee', 'in', [49]), ('state', 'in', ['done', 'progress'])]

Try like this, i hope this will helps you.

アバター
破棄
著作者

Actually, this worked thank you, but I don't get all the records. the problem is that records that in 'progress' state doesn't have end_date, can I bypass this somehow?

関連投稿 返信 ビュー 活動
1
8月 15
4335
1
3月 15
5553
1
4月 20
2877
2
1月 24
16235
1
7月 15
4534