Show some checkboxes for each component:
e.g. something like this...
db.define_table('ingredient',
Field('name','string',length=100),
Field('kind',requires=IS_IN_SET(['alcohol','mixer','garnish']),
format='%(name)s',
)
Table Drink ...
Field('ingredient_garnish','list:reference ingredient',label='Garnish
List',length=100,
widget=lambda f, v: SQLFORM.widgets.checkboxes.widget(f, v,
style='divs')),
....
db.drink.ingredient_garnish.requires=IS_EMPTY_OR(IS_IN_DB(db(db.ingredient.kind=='garnish')
,db.ingredient.id,'%(name)s',multiple=True))
I don't have time to adapt to your models etc but I thought the above might
be of interest for you to experiment.
Regards,
David
--