Set context depending on many2many ids to domain or filter other many2many.
In model
batch_id = fields.Many2one('ae.batch', 'Batch')
subject_ids = fields.Many2many('ae.subject', string="Subjects")
topic_ids = fields.Many2many('ae.topic', string="Topics")
subtopic_ids = fields.Many2many('ae.subtopic', string="Subtopics")
The goal is to pass context in order to filter(domain), picking a Batch filters Subjects, choose Subjects, could be one or more, to filter Topics, and filter Subtopics.
Check view:
<group col="4" name="plan_detail" String='Choose t'>
<field name="batch_id"
context="{'batch_id':batch_id}"/>
<field name="subject_ids"
domain="[('batch_id', '=', batch_id)]"
context="{'subject_ids': subject_ids}"/>
<field name="topic_ids"
domain="[('subject_id', 'in', 'subject_ids')]"
context="{'topic_ids': topic_ids}" />
<field name="subtopic_ids" widget="many2many_checkboxes"
domain="[('topic_id', 'in', topic_ids)]" />
What is working, picking the Batch filters correctly all Subjects. Stucked between Subjects to Topics, I think is a context or domain problem, I've tested changing the domain manually like so:
<field name="topic_ids"
domain="[('subject_id', 'in', '[1, 2]')]"
context="{'topic_ids': topic_ids}" />
And successfully gets Topic list. I guess I am wrong passing context or getting domain.