| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- from pos.models import MenuItem, Store, Setting, Table, BookingTable, Order, OrderItem, UIMenu, Post, PostCategory, Customer, Code, Profile, Message
- from django.forms import ModelForm
- import django_filters
- from django.forms import BaseInlineFormSet, DateField, TimeField, TextInput, ModelMultipleChoiceField, CheckboxSelectMultiple
- from mptt.forms import TreeNodeMultipleChoiceField
- from django_editorjs_fields import EditorJsWidget
- from django.contrib.auth.models import User
- from django_google_maps.widgets import GoogleMapsAddressWidget
- class TableForm(ModelForm):
- class Meta:
- model = Table
- fields = ('code', 'nSeats', 'occupy',)
- class MessageForm(ModelForm):
- class Meta:
- model = Message
- fields = ('subject', 'email', 'tel', 'body', 'messageFile', 'lineId', 'reply', 'parent', )
- class UIMenuForm(ModelForm):
- class Meta:
- model = UIMenu
- fields = ('name', 'parent', 'group', 'url', 'icon', 'nOrder', )
- class OrderForm(ModelForm):
- class Meta:
- model = Order
- fields = '__all__'
- class PostForm(ModelForm):
- #category = TreeNodeMultipleChoiceField(queryset=PostCategory.objects.all())
- '''
- relateMenus = ModelMultipleChoiceField(
- queryset=MenuItem.objects.all(),
- widget=CheckboxSelectMultiple,
- required=False)
- '''
- class Meta:
- model = Post
- fields = ('featureImage', 'title', 'content', 'description', 'category', 'tags', 'relateMenus' )
- class CustomerForm(ModelForm):
- #category = TreeNodeMultipleChoiceField(queryset=PostCategory.objects.all())
- class Meta:
- model = Customer
- fields = ('fullName', 'email', 'lineId', 'gender', )
- class BookingForm(ModelForm):
- onDate = DateField(
- widget=TextInput(
- attrs={'type': 'date'}
- )
- )
- onTime = TimeField(
- widget=TextInput(
- attrs={'type': 'time'}
- )
- )
- class Meta:
- model = BookingTable
- fields = ('table', 'onDate', 'onTime', 'note',)
- class MenuItemForm(ModelForm):
- class Meta:
- model = MenuItem
- fields = ['featureImage', 'name', ]
- class StoreForm(ModelForm):
- class Meta:
- model = Store
- fields = ['logo', 'name','description', 'addressText', 'province','address', 'phone_number', 'fax_number', 'lineId', 'email', 'geolocation', 'storeType']
- widgets = {
- "address": GoogleMapsAddressWidget,
- }
- class OrderItemFormSet(BaseInlineFormSet):
- def __init__(self, other_model_queryset, *args, **kwargs):
- super(BaseInlineFormSet, self).__init__(*args)
- for form in self.forms:
- form.fields['item'].queryset = other_model_queryset
- formMap = {
- 'tableForm': TableForm
- }
- class OrderFilter(django_filters.FilterSet):
- note = django_filters.CharFilter(lookup_expr='iexact')
- class Meta:
- model = Order
- fields = ['table', 'note']
- class MenuItemFilter(django_filters.FilterSet):
- class Meta:
- model = MenuItem
- fields = ['name', ]
- class StoreFilter(django_filters.FilterSet):
- class Meta:
- model = Store
- fields = ('name', 'address', 'province','storeType')
- class BookingFilter(django_filters.FilterSet):
- class Meta:
- model = BookingTable
- fields = ('table', 'onDate', 'note', )
- class CustomerFilter(django_filters.FilterSet):
- class Meta:
- model = Customer
- fields = ('fullName', 'email', 'lineId', 'gender', 'created_at', )
- class TableFilter(django_filters.FilterSet):
- class Meta:
- model = Table
- fields = ('code', 'nSeats', 'occupy', )
- class UIMenuFilter(django_filters.FilterSet):
- class Meta:
- model = UIMenu
- fields = ('name', 'parent', 'group', 'url', 'icon','nOrder')
- class MessageFilter(django_filters.FilterSet):
- class Meta:
- model = Message
- fields = ('subject', 'email', 'tel', 'body', 'reply', 'parent', 'created_at', )
- class PostFilter(django_filters.FilterSet):
- class Meta:
- model = Post
- fields = ('title', 'content', )
- class UserFilter(django_filters.FilterSet):
- profile__role = django_filters.ChoiceFilter(label="Role", choices=Profile.ROLE_CHOICES)
- class Meta:
- model = User
- fields = ('username', 'first_name', 'last_name', 'email', )
- class CodeForm(ModelForm):
- class Meta:
- model = Code
- exclude = ['store', 'owner',]
- widgets = {
- 'body_editorjs': EditorJsWidget(config={'minHeight': 100}),
- 'body_editorjs_text': EditorJsWidget(plugins=["@editorjs/image", "@editorjs/header"]),
- }
|