from django import forms
from django_select2 import forms as s2forms

from .models import City, Country

class MasterCountryEditForm(forms.ModelForm):
    class Meta:
        model = Country
        fields = ["code", 'name', "slug",'is_featured']
        widgets = {}
        error_messages = {}

    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop("request", None)
        super().__init__(*args, **kwargs)
        for field in self.fields.values():
            field.widget.attrs["autocomplete"] = "off"
            field.widget.attrs["placeholder"] = field.label

    required_css_class = 'required'

    def clean(self):
        cleaned_data = self.cleaned_data
        return cleaned_data
    
class MasterCityEditForm(forms.ModelForm):
    class Meta:
        model = City
        fields = ['country', "code", 'name', "slug"]
        widgets = {
            'country' : s2forms.ModelSelect2Widget(
                model=Country,
                search_fields=['name__icontains', 'slug__icontains'],
                attrs = {"data-minimum-input-length": 0, 'data-placeholder': 'country'},
                max_results=10
            ), 
        }
        error_messages = {}

    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop("request", None)
        super().__init__(*args, **kwargs)
        for field in self.fields.values():
            field.widget.attrs["autocomplete"] = "off"
            field.widget.attrs["placeholder"] = field.label

    required_css_class = 'required'