fix access restriction group editing

This commit is contained in:
Laura Klünder 2017-12-20 22:44:45 +01:00
parent 067eadecb8
commit a23be40cac

View file

@ -166,17 +166,19 @@ class EditorFormBase(I18nModelFormMixin, ModelForm):
def _save_m2m(self): def _save_m2m(self):
super()._save_m2m() super()._save_m2m()
try: if self._meta.model.__name__ != 'AccessRestriction':
field = self._meta.model._meta.get_field('groups') try:
except FieldDoesNotExist: field = self._meta.model._meta.get_field('groups')
pass except FieldDoesNotExist:
else: pass
if field.many_to_many: else:
groups = reduce(operator.or_, (set(value) for name, value in self.cleaned_data.items() if field.many_to_many:
if name.startswith('groups_')), set()) groups = reduce(operator.or_, (set(value) for name, value in self.cleaned_data.items()
groups |= set(value for name, value in self.cleaned_data.items() if name.startswith('group_') and value) if name.startswith('groups_')), set())
groups = tuple((int(val) if val.isdigit() else val) for val in groups) groups |= set(value for name, value in self.cleaned_data.items()
self.instance.groups.set(groups) if name.startswith('group_') and value)
groups = tuple((int(val) if val.isdigit() else val) for val in groups)
self.instance.groups.set(groups)
def create_editor_form(editor_model): def create_editor_form(editor_model):