Allow manual removal of CORE ID for Product

This commit is contained in:
Lance Edgar 2020-08-20 20:30:08 -05:00
parent b1e2af84b1
commit ca1b865c0f

View file

@ -57,9 +57,22 @@ class ProductView(base.ProductsView):
def configure_form(self, f): def configure_form(self, f):
super(ProductView, self).configure_form(f) super(ProductView, self).configure_form(f)
f.set_required('corepos_id', False)
if self.creating: if self.creating:
f.remove('corepos_id') f.remove('corepos_id')
def objectify(self, form, data=None):
if data is None:
data = form.validated
product = super(ProductView, self).objectify(form, data)
# remove the corepos extension record outright, if we just lost the ID
if product._corepos and not product.corepos_id:
self.Session.delete(product._corepos)
self.Session.flush()
return product
def get_version_child_classes(self): def get_version_child_classes(self):
model = self.rattail_config.get_model() model = self.rattail_config.get_model()
return super(ProductView, self).get_version_child_classes() + [ return super(ProductView, self).get_version_child_classes() + [