from django import forms
from .models import*
from django.forms.models import inlineformset_factory
from django.forms.models import inlineformset_factory
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Field, Fieldset, Div, HTML, ButtonHolder, Submit
from .custom_layout_object import*
from django.utils.translation import gettext_lazy as _

class AddOccasionForm(forms.ModelForm):

    class Meta:
        model = mygallery
        exclude = ()

CollectionTitleFormSet1 = inlineformset_factory(
    myOccasion, mygallery, form=AddOccasionForm,
    fields=['gallery_image'], extra=3, can_delete=True
    )

class OccasionForm(forms.ModelForm):

    class Meta:
        model = myOccasion 
        labels = {'images':_('images (1080*1080)'),}
        exclude = ['created_by', ]

    def __init__(self, *args, **kwargs):
        super(OccasionForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = True
        self.helper.form_class = 'form-horizontal'
        self.helper.label_class = 'col-md-12 create-label'
        self.helper.field_class = 'col-md-12'
        self.helper.layout = Layout(
            Div(
                Field('title'),
                Field('slug'),
                Field('meta_keywords'),
                Field('meta_title'),
                Field('meta_description'),
                Field('description'),
                Field('sort_description'),
                Field('images'),
                Field('alt_text'),
                Field('gallery_images'),
                Field('og_url'),
                Field('og_image_url'),
                Field('og_description'),
                Field('content_noodp'),
                Field('keywords'),
                 Field('seo_description'),
                

                Fieldset('Add gallery',
                Formset('gallery_image')),
                
                HTML("<br>"),
                ButtonHolder(Submit('submit', 'Save')),
                )
            )



class AddCusineForm(forms.ModelForm):

    class Meta:
        model = cuisinegallery
        exclude = ()

CollectionTitleFormSet2 = inlineformset_factory(
    Cuisine, cuisinegallery, form=AddCusineForm,
    fields=['gallery_image','alt_text'], extra=3, can_delete=True
    )

class CuisineForm(forms.ModelForm):

    class Meta:
        model = Cuisine 
        exclude = ['created_by', ]

    def __init__(self, *args, **kwargs):
        super(CuisineForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = True
        self.helper.form_class = 'form-horizontal'
        self.helper.label_class = 'col-md-12 create-label'
        self.helper.field_class = 'col-md-12'
        self.helper.layout = Layout(
            Div(
                Field('title'),
                Field('slug'),
                Field('meta_keywords'),
                Field('meta_title'),
                Field('meta_description'),
                Field('description'),
                Field('sort_description'),
                Field('image'),
                Field('gallery_images'),
                Field('publish'),
                 Field('og_image_url'),
                Field('og_description'),
                Field('content_noodp'),
                Field('keywords'),
                 Field('seo_description'),
                 Field('og_url'),

                Fieldset('Add gallery',
                Formset('gallery_image')),
                
                HTML("<br>"),
                ButtonHolder(Submit('submit', 'Save')),
                )
            )




class AddCultureForm(forms.ModelForm):

    class Meta:
        model = culturegallery
        exclude = ()

CollectionTitleFormSet3 = inlineformset_factory(
    Culture, culturegallery, form=AddCultureForm,
    fields=['gallery_image','alt_text'], extra=3, can_delete=True
    )

class CultureForm(forms.ModelForm):

    class Meta:
        model = Culture 
        exclude = ['created_by', ]

    def __init__(self, *args, **kwargs):
        super(CultureForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = True
        self.helper.form_class = 'form-horizontal'
        self.helper.label_class = 'col-md-12 create-label'
        self.helper.field_class = 'col-md-12'
        self.helper.layout = Layout(
            Div(
                Field('title'),
                Field('slug'),
                Field('meta_keywords'),
                Field('meta_title'),
                Field('meta_description'),
                Field('description'),
                Field('sort_description'),
                Field('image'),
                Field('alt_text'),
                Field('publish'),
                Field('gallery_images'),

                Fieldset('Add gallery',
                Formset('gallery_image')),
                
                HTML("<br>"),
                ButtonHolder(Submit('submit', 'Save')),
                )
            )




class AddElementGalleryForm(forms.ModelForm):

    class Meta:
        model = Elementsgallery
        exclude = ()

CollectionTitleFormSet7 = inlineformset_factory(
    Add_Elements, Elementsgallery, form=AddElementGalleryForm,
    fields=['gallery_image','alt_text'], extra=3, can_delete=True
    )

class ElementForm(forms.ModelForm):

    class Meta:
        model = Add_Elements 
        exclude = ['created_by', ]

    def __init__(self, *args, **kwargs):
        super(ElementForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = True
        self.helper.form_class = 'form-horizontal'
        self.helper.label_class = 'col-md-12 create-label'
        self.helper.field_class = 'col-md-12'
        self.helper.layout = Layout(
            Div(
                Field('category_name'),
                Field('name'),
                Field('description'),
                Field('alt_text'),
                Field('slug'),
                Field('date'),
             
               

                Fieldset('Add gallery',
                Formset('gallery_image')),
                
                HTML("<br>"),
                ButtonHolder(Submit('submit', 'Save')),
                )
            )


class AddMenubyfuncForm(forms.ModelForm):

    class Meta:
        model = MenuByFunctionModel
        exclude = ()

CollectionTitleFormSet4 = inlineformset_factory(
    AddFunctionModel, MenuByFunctionModel, form=AddMenubyfuncForm,
    fields=['menu_image','meta_title','meta_keywords','menu_name','menu_pax','menu_item','veg_non_veg','meta_description','menu_price','alt_text','content'], extra=1, can_delete=True
    )

class MenuForm(forms.ModelForm):

    class Meta:
        model = AddFunctionModel 
        exclude = ['created_by', ]

    def __init__(self, *args, **kwargs):
        super(MenuForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = True
        self.helper.form_class = 'uniForm'
        self.helper.label_class = 'col-md-12 create-label'
        self.helper.field_class = 'col-md-12'
        self.helper.layout = Layout(
            Div(
                Field('function_name'),
                Field('meta_title'),
                Field('meta_keywords'),
                Field('meta_description'),
                Field('slug'),
                Fieldset('Add Menu By Function',
                Formset('gallery_image'),

                ),
                
                HTML("<br>"),
                ButtonHolder(Submit('submit', 'Save')),
                )
            )



class AddfuncForm(forms.ModelForm):
    class Meta:
        model = myfuncgallery
        exclude = ()

CollectionTitleFormSet5 = inlineformset_factory(
    FunctionModel, myfuncgallery, form=AddfuncForm,
    fields=['gallery_image','alt_text'], extra=1, can_delete=True
    )

class AddfuncFaq(forms.ModelForm):

    class Meta:
        model = Faqmodel
        exclude = ()

CollectionTitleFormSet6 = inlineformset_factory(
    FunctionModel, Faqmodel, form=AddfuncForm,
    fields=['faq_question','faq_answer'], extra=1, can_delete=True
    )

class FuncForm(forms.ModelForm):

    class Meta:
        model = FunctionModel 
        exclude = ['created_by', ]

    def __init__(self, *args, **kwargs):
        super(FuncForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_tag = True
        self.helper.form_class = 'form-horizontal'
        self.helper.label_class = 'col-md-12 create-label'
        self.helper.field_class = 'col-md-12'
        self.helper.layout = Layout(
            Div(
                Field('function_name'),
                Field('title'),
                Field('meta_title'),
                Field('slug'),
                Field('og_url'),
                Field('alt_text'),
                Field('og_image_url'),
                Field('og_description'),
                Field('content_noodp'),
                Field('short_content'),
                Field('function_content'),
                Field('meta_keywords'),
                Field('meta_description'),
                Field('canonical'),
                Field('og_type'),
                Field('og_title'),
                Field('og_site_name'),
                Field('occasion_thumbnail'),
                Field('gallery_image'),
                Field('blog_category'),
                Field('is_draft'),
                Field('date'),
                Field('publish'),
                Fieldset('Add Function Gallery',
                Formset('gallery_image'),

                ),
                Fieldset('Add Faq',
                Formset('faq'),

                ),
                
                HTML("<br>"),
                ButtonHolder(Submit('submit', 'Save')),
                )
            )



class BlogCommentForm(forms.ModelForm):
    verify = forms.BooleanField()
    class Meta:
        model = BlogComment
        fields = ('comment','full_name','email','website')
        
        
####################################


class ContactForm(forms.ModelForm):
    class Meta:
        model = ContactModel
        fields = ['name', 'email', 'function','date','budget','venue','phone','message','capacity']
        
        
        
class EnquiryForm(forms.ModelForm):
    class Meta:
        model = EnquiryModel
        fields = ['name',  'function','date','mobile','capacity']
