diff --git a/atlas/forms.py b/atlas/forms.py index d1bed07f..07ee4739 100755 --- a/atlas/forms.py +++ b/atlas/forms.py @@ -74,6 +74,29 @@ class SeriesForm(ModelForm): widget=FilteredSelectMultiple(verbose_name="Case", is_stacked=False), ) + def save(self, commit=True): + # Get the unsaved Long instance + instance = ModelForm.save(self, False) + + # Prepare a 'save_m2m' method for the form, + old_save_m2m = self.save_m2m + + def save_m2m(): + old_save_m2m() + instance.case.clear() + for case in self.cleaned_data["case"]: + # We need the id here + instance.case.add(case.pk) + + self.save_m2m = save_m2m + + # Do we need to save all changes now? + # if commit: + instance.save() + self.save_m2m() + + return instance + class Meta: model = Series exclude = ["author"]