I fixed it with a custom validator as howesc suggested.Basically i
added a second set parameter which has the selected items of other
products, without changing the items that the widget will use, but
affecting the final values variable used for persistence:
class CUSTOM_IS_IN_DB(Validator):
    def __init__(
        self,
        dbset,
        dbsetOtherProducts,
....
            if not [x for x in values if not x in self.theset]:
                values =values + self.thesetOtherProducts
                return (values, None)
....
now that the issue is solved, due to the amount of time spent on it,
perhaps was easier to split each select in a different table... for
each category.

Thanks for the help provided

Reply via email to