It might be possible to make drivers, bug_supervisor, and security_contact common by requiring the implementing classes to define a parent attribute that returns either the IProduct or IDistribution. eg
return [self.driver] + self.parent.drivers
The question.QuestionTargetMixin requires its composed classes to define such methods to safely decouple the classes. Consider Product.getTargetTypes() and SourcePackageQuestionTargetMixin.getTargetTypes() return a dict of the combination of objects that define the target type. I think we could make packagings work the same way if we are querying packagings by passing kwrgs of sourcepackagename, distroseries, and productseries.
specification is a problem. It belongs on HasSpecficiations and that is used by many objects.
This information looks correct.
It might be possible to make drivers, bug_supervisor, and security_contact common by requiring the implementing classes to define a parent attribute that returns either the IProduct or IDistribution. eg
return [self.driver] + self.parent.drivers
The question. QuestionTargetM ixin requires its composed classes to define such methods to safely decouple the classes. Consider Product. getTargetTypes( ) and SourcePackageQu estionTargetMix in.getTargetTyp es() return a dict of the combination of objects that define the target type. I think we could make packagings work the same way if we are querying packagings by passing kwrgs of sourcepackagename, distroseries, and productseries.
specification is a problem. It belongs on HasSpecficiations and that is used by many objects.