Nessuna descrizione

forms.py 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. from pos.models import MenuItem, Store, Setting, Table, BookingTable, Order, OrderItem, UIMenu, Post, PostCategory, Customer, Code, Profile, Message
  2. from django.forms import ModelForm
  3. import django_filters
  4. from django.forms import BaseInlineFormSet, DateField, TimeField, TextInput, ModelMultipleChoiceField, CheckboxSelectMultiple
  5. from mptt.forms import TreeNodeMultipleChoiceField
  6. from django_editorjs_fields import EditorJsWidget
  7. from django.contrib.auth.models import User
  8. from django_google_maps.widgets import GoogleMapsAddressWidget
  9. class TableForm(ModelForm):
  10. class Meta:
  11. model = Table
  12. fields = ('code', 'nSeats', 'occupy',)
  13. class MessageForm(ModelForm):
  14. class Meta:
  15. model = Message
  16. fields = ('subject', 'email', 'tel', 'body', 'messageFile', 'lineId', 'reply', 'parent', )
  17. class UIMenuForm(ModelForm):
  18. class Meta:
  19. model = UIMenu
  20. fields = ('name', 'parent', 'group', 'url', 'icon', 'nOrder', )
  21. class OrderForm(ModelForm):
  22. class Meta:
  23. model = Order
  24. fields = '__all__'
  25. class PostForm(ModelForm):
  26. #category = TreeNodeMultipleChoiceField(queryset=PostCategory.objects.all())
  27. '''
  28. relateMenus = ModelMultipleChoiceField(
  29. queryset=MenuItem.objects.all(),
  30. widget=CheckboxSelectMultiple,
  31. required=False)
  32. '''
  33. class Meta:
  34. model = Post
  35. fields = ('featureImage', 'title', 'content', 'description', 'category', 'tags', 'relateMenus' )
  36. class CustomerForm(ModelForm):
  37. #category = TreeNodeMultipleChoiceField(queryset=PostCategory.objects.all())
  38. class Meta:
  39. model = Customer
  40. fields = ('fullName', 'email', 'lineId', 'gender', )
  41. class BookingForm(ModelForm):
  42. onDate = DateField(
  43. widget=TextInput(
  44. attrs={'type': 'date'}
  45. )
  46. )
  47. onTime = TimeField(
  48. widget=TextInput(
  49. attrs={'type': 'time'}
  50. )
  51. )
  52. class Meta:
  53. model = BookingTable
  54. fields = ('table', 'onDate', 'onTime', 'note',)
  55. class MenuItemForm(ModelForm):
  56. class Meta:
  57. model = MenuItem
  58. fields = ['featureImage', 'name', ]
  59. class StoreForm(ModelForm):
  60. class Meta:
  61. model = Store
  62. fields = ['logo', 'name','description', 'addressText', 'province','address', 'phone_number', 'fax_number', 'lineId', 'email', 'geolocation', 'storeType']
  63. widgets = {
  64. "address": GoogleMapsAddressWidget,
  65. }
  66. class OrderItemFormSet(BaseInlineFormSet):
  67. def __init__(self, other_model_queryset, *args, **kwargs):
  68. super(BaseInlineFormSet, self).__init__(*args)
  69. for form in self.forms:
  70. form.fields['item'].queryset = other_model_queryset
  71. formMap = {
  72. 'tableForm': TableForm
  73. }
  74. class OrderFilter(django_filters.FilterSet):
  75. note = django_filters.CharFilter(lookup_expr='iexact')
  76. class Meta:
  77. model = Order
  78. fields = ['table', 'note']
  79. class MenuItemFilter(django_filters.FilterSet):
  80. class Meta:
  81. model = MenuItem
  82. fields = ['name', ]
  83. class StoreFilter(django_filters.FilterSet):
  84. class Meta:
  85. model = Store
  86. fields = ('name', 'address', 'province','storeType')
  87. class BookingFilter(django_filters.FilterSet):
  88. class Meta:
  89. model = BookingTable
  90. fields = ('table', 'onDate', 'note', )
  91. class CustomerFilter(django_filters.FilterSet):
  92. class Meta:
  93. model = Customer
  94. fields = ('fullName', 'email', 'lineId', 'gender', 'created_at', )
  95. class TableFilter(django_filters.FilterSet):
  96. class Meta:
  97. model = Table
  98. fields = ('code', 'nSeats', 'occupy', )
  99. class UIMenuFilter(django_filters.FilterSet):
  100. class Meta:
  101. model = UIMenu
  102. fields = ('name', 'parent', 'group', 'url', 'icon','nOrder')
  103. class MessageFilter(django_filters.FilterSet):
  104. class Meta:
  105. model = Message
  106. fields = ('subject', 'email', 'tel', 'body', 'reply', 'parent', 'created_at', )
  107. class PostFilter(django_filters.FilterSet):
  108. class Meta:
  109. model = Post
  110. fields = ('title', 'content', )
  111. class UserFilter(django_filters.FilterSet):
  112. profile__role = django_filters.ChoiceFilter(label="Role", choices=Profile.ROLE_CHOICES)
  113. class Meta:
  114. model = User
  115. fields = ('username', 'first_name', 'last_name', 'email', )
  116. class CodeForm(ModelForm):
  117. class Meta:
  118. model = Code
  119. exclude = ['store', 'owner',]
  120. widgets = {
  121. 'body_editorjs': EditorJsWidget(config={'minHeight': 100}),
  122. 'body_editorjs_text': EditorJsWidget(plugins=["@editorjs/image", "@editorjs/header"]),
  123. }