from django import forms

from apps.core.forms import StyledFormMixin

from .models import Category, Tag


class CategoryForm(StyledFormMixin, forms.ModelForm):
    class Meta:
        model = Category
        fields = ["nom", "slug", "description", "couleur", "est_dans_menu", "ordre"]
        widgets = {"description": forms.Textarea(attrs={"rows": 3})}
        help_texts = {"ordre": "Position dans le menu (1 = en premier)."}

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields["slug"].required = False
        if not self.instance.pk:
            self.fields["slug"].help_text = "Laisser vide pour la générer à partir du nom."


class TagForm(StyledFormMixin, forms.ModelForm):
    class Meta:
        model = Tag
        fields = ["nom", "slug"]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields["slug"].required = False
