Skip to Content
Menu
This question has been flagged
1 Odpoveď
9276 Zobrazenia

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'.

Avatar
Zrušiť
Best Answer

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.

Avatar
Zrušiť
Autor

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?

Related Posts Replies Zobrazenia Aktivita
1
aug 15
4376
1
mar 15
5581
1
apr 20
2918
2
jan 24
16249
1
júl 15
4582