Thanks for the fixes, and your good point about ISpecificationTarget being inappropriate.
However, we'll need to add a further check in proposeGoal: the series' product/distribution must match the target of the blueprint. This is presently enforced by the FilteredProductSeries/FilteredDistroSeries vocabs on the browser fields, but they can't easily be reused at this level of the model. Manual validation of the target match is easy, and you can reuse the exception.
Thanks for the fixes, and your good point about ISpecificationT arget being inappropriate.
However, we'll need to add a further check in proposeGoal: the series' product/ distribution must match the target of the blueprint. This is presently enforced by the FilteredProduct Series/ FilteredDistroS eries vocabs on the browser fields, but they can't easily be reused at this level of the model. Manual validation of the target match is easy, and you can reuse the exception.
19 @@ -11,12 +11,16 @@ Public' , Set', View',
20 'ISpecification
21 'ISpecification
22 'ISpecification
23 + 'GoalProposeError',
24 ]
This should be sorted alphabetically.
101 === modified file 'lib/lp/ blueprints/ interfaces/ webservice. py'
Two bad orderings here too.
=== modified file 'lib/lp/ blueprints/ model/specifica tion.py'
And one here.