OrdersApp/orders_app/forms.py.colections
Argyrios Deligiannidis af7c12dc85 SpitiGlykou
2022-06-26 23:37:10 +03:00

91 lines
2.7 KiB
Plaintext

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 import forms
from django.contrib import admin
from django.urls import reverse_lazy
from django.forms.models import inlineformset_factory
from django_addanother.widgets import AddAnotherWidgetWrapper
from orders_app.custom_layout_object import Formset
from orders_app.models import Order, OrderProduct, CollectionTitle, Collection
class OrderForm(forms.ModelForm):
class Meta:
model = Order
exclude = ()
widgets = {
'store': AddAnotherWidgetWrapper(
forms.Select,
reverse_lazy('orders_app:create_store'),
),
}
def __init__(self, *args, **kwargs):
super(OrderForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_tag = True
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-md-3 create-label'
self.helper.field_class = 'col-md-9'
self.helper.layout = Layout(
Div(
Field('subject'),
Field('owner'),
Fieldset('Add titles',
Formset('titles')),
Field('note'),
HTML("<br>"),
ButtonHolder(Submit('submit', 'save')),
)
)
class StoreForm(forms.ModelForm):
class Meta:
model = Order
fields = "__all__"
OrderLinesFormSet = inlineformset_factory(Order, OrderProduct, form=OrderForm, fields=['product', 'name'], extra=1, can_delete=True)
class CollectionTitleForm(forms.ModelForm):
class Meta:
model = CollectionTitle
exclude = ()
CollectionTitleFormSet = inlineformset_factory(
Collection, CollectionTitle, form=CollectionTitleForm,
fields=['name', 'language'], extra=1, can_delete=True
)
class CollectionForm(forms.ModelForm):
class Meta:
model = Collection
exclude = ['created_by', ]
def __init__(self, *args, **kwargs):
super(CollectionForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_tag = True
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-md-3 create-label'
self.helper.field_class = 'col-md-9'
self.helper.layout = Layout(
Div(
Field('subject'),
Field('owner'),
Fieldset('Add titles',
Formset('titles')),
Field('note'),
HTML("<br>"),
ButtonHolder(Submit('submit', 'Save')),
)
)