from django import forms
from .models import PageDiarioOficial


class PageDiarioOficialInlineForm(forms.ModelForm):
    class Meta:
        model = PageDiarioOficial
        fields = "__all__"

    def clean(self):
        cleaned_data = super().clean()
        if "numero" in cleaned_data and self.instance.diario:
            if (
                PageDiarioOficial.objects.filter(
                    diario=self.instance.diario, numero=cleaned_data["numero"]
                )
                .exclude(pk=self.instance.pk)
                .exists()
            ):
                self.add_error("numero", "Já existe uma página com este número")
        return cleaned_data
