So, the culprit is primary_translatable which is a property of both IProduct and lp.translations.browser.ProductView. The view property returns a dictionary and filters for productseries. But the template (product-translations.pt) uses the model property (as "target") which may return source packges if no translatable series of the product exists. That's when "target/fmt:url/+translations-upload" fails because source packages don't have such a view.
So possible fixes are:
- make the template use the view property that only returns productseries,
- make the model property only return productseries,
- add a +translations-upload view for Sourcepacakage.
The latter might be a bit too much work to get rid of an oops.
So, the culprit is primary_ translatable which is a property of both IProduct and lp.translations .browser. ProductView. The view property returns a dictionary and filters for productseries. But the template (product- translations. pt) uses the model property (as "target") which may return source packges if no translatable series of the product exists. That's when "target/ fmt:url/ +translations- upload" fails because source packages don't have such a view.
So possible fixes are: upload view for Sourcepacakage.
- make the template use the view property that only returns productseries,
- make the model property only return productseries,
- add a +translations-
The latter might be a bit too much work to get rid of an oops.