Hi, I've created a custom module which represents something similar to a school, with three models that represent teachers, courses and classes (course = literature, class = literature 2020-21 in 9th grade).
DOCENTE.PY (docente=teacher) -> _name = 'piani_formazione.docente'
CORSO.PY (corso=course) -> _name = 'piani_formazione.corso'
EDIZIONE.PY (edizione=class) -> _name = 'piani_formazione.edizione'
Obviously, every course has multiple classes meanwhile every class is related to a specific course
CORSO.PY (corso=course) -> edizioni_corso = fields.One2many('piani_formazione.edizione', 'edizione_corso', string="Edizioni del corso erogate:")
EDIZIONE.PY (edizione=class) -> edizione_corso = fields.Many2one('piani_formazione.corso', string="Edizione del corso:", required=True)
I've managed to state that every teacher is qualified to teach some courses (and viceversa that every course can be teached by some teachers)
DOCENTE.PY (docente=teacher) -> abilitazioni = fields.Many2many('piani_formazione.corso', 'tabella_docenti_corsi', 'codice_fiscale', 'codice', string="Corsi che è abilitato ad erogare:")
CORSO.PY (corso=course) -> docenti_corso = fields.Many2many('piani_formazione.docente', 'tabella_docenti_corsi', 'codice', 'codice_fiscale', string='Docenti abilitati ad erogare edizioni del corso:')
and I've stated that every class has just one teacher (meanwhile a teacher can teach different classes)
DOCENTE.PY (docente=teacher) -> docente_edizioni = fields.One2many('piani_formazione.edizione','edizione_docente',string="Edizioni che eroga il docente")
EDIZIONE.PY (edizione=class) -> edizione_docente = fields.Many2one('piani_formazione.docente', string="Docente che eroga il corso", required=True)
If i leave the code like it is, then while choosing which teacher will teach a class it could be selected any teacher. What I would like to do is to hide the teachers that cannot teach the class (because they are not qualified to teach the related course) from the possible choices in the class form view (in the many2one field named "edizione_docente"). How could I do it?
I saw online that the operator '=' works as a 'contains', so I tried adding to the Many2one field a domain such as the following, but now the drop down list of the field is always empty
EDIZIONE.PY (edizione=class) -> edizione_docente = fields.Many2one('piani_formazione.docente', string="Docente che eroga il corso", required=True, domain="[('abilitazioni','=','edizione_corso')]" )