X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fadmin.py;fp=planetstack%2Fcore%2Fadmin.py;h=7fa537a5fb13bab36bcacd99dd3ade2b7d641736;hb=d648acac73b2a4e1e43bfc7032f4bda8733568c4;hp=bc845540f1116480e29963555e21a59df4437092;hpb=75908787a9038e5c882250082449f77547f57aa2;p=plstackapi.git diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py index bc84554..7fa537a 100644 --- a/planetstack/core/admin.py +++ b/planetstack/core/admin.py @@ -604,7 +604,15 @@ class DeploymentAdminForm(forms.ModelForm): # a better way... self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployments.all(), SiteDeployments, "deployment", "site") - self.manipulate_m2m_objs(deployment, self.cleaned_data['images'], deployment.imagedeployments.all(), DeploymentImages, "deployment", "image") + self.manipulate_m2m_objs(deployment, self.cleaned_data['images'], deployment.imagedeployments.all(), ImageDeployments, "deployment", "image") + # manipulate_m2m_objs doesn't work for Flavor/Deployment relationship + # so well handle that manually here + for flavor in deployment.flavors.all(): + if getattr(flavor, 'name') not in self.cleaned_data['flavors']: + flavor.delete() + for flavor in self.cleaned_data['flavors']: + if flavor not in deployment.flavors.all(): + flavor.deployments.add(deployment) self.save_m2m()