from django import forms


class LectureGroupTypeFormset(forms.models.BaseInlineFormSet):
    # https://stackoverflow.com/a/877920

    def clean(self):
        groups = []

        for form in self.forms:
            try:
                if form.cleaned_data:
                    if form.cleaned_data[
                        "group"
                    ] in groups and not form.cleaned_data.get("DELETE", False):
                        raise forms.ValidationError(
                            "Školení nemůžeš přiřadit jednotlivé skupině více než jednou."
                        )

                    groups.append(form.cleaned_data["group"])
            except AttributeError as exception:
                # annoyingly, if a subform is invalid Django explicity raises
                # an AttributeError for cleaned_data
                pass