La condizione che vorrei scrivere dovrebbe essere l'ecquivalente di questa:
('sale_ok', '=', True) AND ('seller_ids', '!=', False) AND ((parent.supplier_id, '=', False) OR ('seller_ids.name', '=', parent.supplier_id))
Che tradotto diventerebbe:
'&', '&', ('sale_ok', '=', True), ('seller_ids', '!=', False), '|', (parent.supplier_id, '=', False), ('seller_ids.name', '=', parent.supplier_id)
Siccome '&' è l'operatore di default diventa:
('sale_ok', '=', True), ('seller_ids', '!=', False), '|', (parent.supplier_id, '=', False), ('seller_ids.name', '=', parent.supplier_id)
che è come l'ho scritta... ma forse ho scritto una fesseria
Secondo me il problema è solo parent.supplier_id a sinistra dell'uguale.
Ciao.