91 lines
2.7 KiB
Plaintext
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')),
|
|
)
|
|
)
|