J'ai les trois classes ci-dessous, et je voudrais lorsque je choisis des
matériels dans le vue Work n'avoir que les outils correspondant aux
matériels sélectionnés de l'attribut "materiel" de Work. je suppose que je
dois ajouter un domain à l'attribut outil de la classe Work mais je ne
trouve pas la solution, une idée ? J'ai bien tenté
domain=[Eval('materiel'), 'In', Id('materiel')] mais ça ne marche pas.
class Outil(ModelSQL, ModelView):
u'Outil'
__name__ = 'timesheet.outil'
materiel = fields.Many2One(
'timesheet.materiel',
string=u'Matériel',
help=u'Matériel',
)
code = fields.Char(
string = u'Code outil',
required = True,
)
name = fields.Char(
string = u'Libellé court de l\'outil',
required = True,
)
class Materiel(ModelSQL, ModelView):
u'Matériel'
__name__ = 'timesheet.materiel'
code = fields.Char(
string = u'Code matériel',
required = True,
)
name = fields.Char(
string = u'Libellé court du matériel',
required = True,
)
outil = fields.One2Many(
'timesheet.outil',
'materiel',
string=u'Outil',
help=u'Outil',
)
class Work(ModelSQL, ModelView):
'Work'
__name__ = 'timesheet.work'
name = fields.Char(
string=u'Name',
help=u'Name',
required=True,
)
materiel = fields.Many2Many(
'timesheet.work-timesheet.materiel',
'work',
'materiel',
string=u'Matériel',
help=u'Matériel',
states={
'invisible': Equal(Eval('type'),'activity')
},
)
outil = fields.Many2Many(
'timesheet.work-timesheet.outil',
'work',
'outil',
string=u'Outil',
help=u'Outil',
states={
'invisible': Equal(Eval('type'),'activity')
},
)