from django import forms
from .models import *
from django.core.exceptions import ValidationError
from tinymce.widgets import TinyMCE


class CreateReunionForm(forms.ModelForm):
    class Meta:
        model = Reunion
        fields = ['titre_reunion', 'duree', 'lieu', 'theme', 'modérateur', 'budget']


class AjoutParticipanForm(forms.ModelForm):
    class Meta:
        model = Participant
        fields = ['prenom', 'nom', 'sexe', 'age', 'provenance', 'activite']


class Ajout_resume(forms.ModelForm):
    class Meta:
        model = Reunion
        fields = ['resume_executif',]
        widgets = {
            'resume_executif': TinyMCE(attrs={'cols': 80, 'rows': 30}),
        }


class PlanificationMensuelForm(forms.ModelForm):
    class Meta:
        model = PlanificationMensuel
        fields = ['mois', 'zone', 'objectif_reunions']
        widgets = {
            'mois': forms.TextInput(attrs={'type': 'month'}),  # Champ pour sélectionner mois + année
        }

    def clean(self):
        cleaned_data = super().clean()
        mois = cleaned_data.get("mois")
        zone = cleaned_data.get("zone")

        # Vérifier si une planification existe déjà pour ce mois et cette zone
        if mois and zone and PlanificationMensuel.objects.filter(mois=mois, zone=zone).exists():
            raise forms.ValidationError(f"Une planification existe déjà pour {mois} dans cette zone.")

        return cleaned_data