# -*- coding: utf-8 -*-
from django import forms
from django.forms import ModelForm
from django.core.exceptions import ValidationError
from django.utils.safestring import mark_safe

from crispy_forms.bootstrap import InlineField, PrependedText, FormActions
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Column, Div, Field, Layout, Row, Submit, Button


from .models import GoodCategory, StorageFacility, Good, Vendor

class AddGoodCategoryForm(forms.ModelForm):
    name = forms.CharField(required=True, label="Назва")
    class Meta:
        model = GoodCategory
        fields = "__all__"
    
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
        Div(
            Div('name', css_class='input-field col m6 s12'),
            css_class='row'
            ),
        FormActions(
            Submit('save_changes', 'Зберегти', css_class="btn-primary"),
            )
        )

class AddStorageFacilityForm(forms.ModelForm):
    name = forms.CharField( label='Назва',
                            required=True,
                            )
    location = forms.Textarea()


    class Meta:
        model = StorageFacility
        fields = "__all__"
    
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
        Div(
            Div('name', css_class='input-field col m6 s12'),
            css_class='row'
        ),
        Div(
            Div('location', css_class='input-field col m6 s12'),
            css_class='row'
        ),
        FormActions(
            Submit('save_changes', 'Зберегти', css_class="btn-primary"),
        ),
        )

class AddGoodForm(forms.ModelForm):
    # good_category = forms.ModelChoiceField(queryset=GoodCategory.objects.all(), label="Категории")
    class Meta:
        model = Good
        fields = ['photo', 'name', 'category', 'unit_of_measurement', 'article', 'description', "created_by"]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Div(
                Div(
                    Div(
                        Div('photo'),
                        css_class='btn',
                    ),
                css_class='file-field input-field col m8 s12'
                ),
            css_class='row'
            ),

            Div(
                Div('name', css_class='input-field col m8 s12'),
                css_class='row'
            ),
            Div(
                Div('category', css_class='input-field col m8 s12'),
                css_class='row'
            ),
            Div(
                Div('unit_of_measurement', css_class='input-field col m3 s12'),
                Div('article', css_class='input-field col m5 s12'),
                # Div('created_by', css_class='input-field col m3 s12'),
                css_class='row'
            ),
             Div(
                 Div('description', css_class='input-field col m8 s12'),
                 css_class='row'
             ),
            FormActions(
                Submit('save_changes', 'Зберегти', css_class="btn-primary"),
            )
        )

class AddVendorForm(forms.ModelForm):
    class Meta:
        model = Vendor
        fields = ['name', 'location', 'email', 'phone', 'manager', "config_name"]

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Div(
                Div('name', css_class='input-field col m6 s12'),
                css_class='row'
            ),
            Div(
                Div('email', css_class='input-field col m2 s12'),
                Div('phone', css_class='input-field col m2 s12'),
                Div('manager', css_class='input-field col m2 s12'),
                css_class='row'
            ),
            Div(
                Div('location', css_class='input-field col m6 s12'),
                css_class='row'
            ),
            Div(
                Div('config_name', css_class='input-field col m6 s12'),
                css_class='row'
            ),
            FormActions(
                Submit('save_changes', 'Зберегти', css_class="btn-primary"),
            )
        )