service.py 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. from dbsynce.models import ServiceCategory
  2. from dbsynce.models import Service
  3. from dbsynce.models import Company
  4. from dbsynce.models import Provider
  5. from django import forms
  6. from sharix_admin.forms import BaseForm
  7. #RESOURCE_TYPE_CHOICES = [
  8. # ('1', 'Только время'),
  9. # ('2', 'Только расстояние'),
  10. # ('3', 'За единицу услуги'),
  11. # ('4', 'Время за расстояние'),
  12. # ('5', 'Единицы за расстояние'),
  13. # ('6', 'Единицы за время'),
  14. #]
  15. class ServiceTariffUpdateForm(forms.ModelForm):
  16. def __init__(self, *args, **kwargs):
  17. super(ServiceTariffUpdateForm, self).__init__(*args, **kwargs)
  18. # Добавляет стиль бутстрапа form-control всем полям таблицы если у них нет своих стилей
  19. for field in iter(self.fields):
  20. if 'class' not in self.fields[field].widget.attrs:
  21. self.fields[field].widget.attrs.update({'class': 'form-control'})
  22. class Meta:
  23. model = Service
  24. fields = [
  25. #'status',
  26. #'ticket_status',
  27. 'service_category',
  28. 'requirements',
  29. 'company_comission',
  30. 'codename',
  31. 'caption',
  32. 'description',
  33. 'resource_type',
  34. # 'price_type',
  35. 'price_km',
  36. 'price_min',
  37. 'price_amount',
  38. 'is_global',
  39. 'is_visible'
  40. ]
  41. widgets = {
  42. 'status': forms.TextInput(attrs={'readonly': True}, ),
  43. 'ticket_status': forms.TextInput(attrs={'readonly': True}),
  44. 'requirements': forms.TextInput(attrs={'readonly': True}),
  45. 'resource_type': forms.TextInput(attrs={'readonly': True}),
  46. # 'price_type': forms.TextInput(attrs={'readonly': True}),
  47. 'service_category': forms.Select(attrs={'class': 'form-select', 'readonly': True}),
  48. #'resource': forms.Select(attrs={'class': 'form-select'}),
  49. }
  50. class ServiceTariffCreateForm(forms.ModelForm):
  51. company_comission = forms.FloatField(label="Комиссия Партнера")
  52. resource_type = forms.CharField(label="Необходимый тип ресурса")
  53. #resource_type = forms.ChoiceField(choices=RESOURCE_TYPE_CHOICES, label="Необходимый тип ресурса")
  54. codename = forms.CharField(label="Кодовое короткое название тарифа услуги")
  55. caption = forms.CharField(label="Название тарифа услуги")
  56. #requirements = forms.CharField(label="Требования")
  57. #price_type = forms.ChoiceField(choices=PRICE_CHOICES, label="Ценообразование")
  58. description = forms.CharField(label="Описание")
  59. # is_global = forms.BooleanField(label="Доступно во всех сервисах", required=False)
  60. # is_visible = forms.BooleanField(label="Доступно для планирования цепочек во всех сервисах", required=False)
  61. def __init__(self, *args, **kwargs):
  62. super(ServiceTariffCreateForm, self).__init__(*args, **kwargs)
  63. # Добавляет стиль бутстрапа form-control всем полям таблицы если у них нет своих стилей
  64. for field in iter(self.fields):
  65. if 'class' not in self.fields[field].widget.attrs:
  66. self.fields[field].widget.attrs.update({'class': 'form-control'})
  67. class Meta:
  68. model = Service
  69. #fields = '__all__'
  70. fields = [
  71. 'service_category',
  72. 'company_comission',
  73. 'codename',
  74. 'caption',
  75. 'description',
  76. 'resource_type',
  77. ]
  78. #company - использовать ту, у которой сейчас отображаются услуги
  79. #resource - показывать только те, которые имеют отношение к компании
  80. widgets = {
  81. 'service_category': forms.Select(attrs={'class': 'form-select'}),
  82. #'resource': forms.Select(attrs={'class': 'form-select'}),
  83. 'ticket_status': forms.TextInput(attrs={'readonly': True}),
  84. }
  85. #TODO Merge with dicts!
  86. PRICE_CHOICES = [
  87. ('1', 'Только время'),
  88. ('2', 'Только расстояние'),
  89. ('3', 'За единицу услуги'),
  90. ('4', 'Время за расстояние'),
  91. ('5', 'Единицы за расстояние'),
  92. ('6', 'Единицы за время'),
  93. ]
  94. class ServiceCategoryUpdateForm(BaseForm, forms.ModelForm):
  95. price_type = forms.ChoiceField(choices=PRICE_CHOICES, label="Ценообразование")
  96. def __init__(self, *args, **kwargs):
  97. super(ServiceCategoryUpdateForm, self).__init__(*args, **kwargs)
  98. class Meta:
  99. model = ServiceCategory
  100. fields = [
  101. #'status',
  102. #'ticket_status',
  103. #'id_metaservice',
  104. 'codename',
  105. 'caption',
  106. 'description',
  107. #'requirements',
  108. 'price_type',
  109. 'link_agreement',
  110. 'is_global',
  111. 'is_visible'
  112. ]
  113. #widgets = {
  114. # 'status': forms.TextInput(attrs={'readonly': True}),
  115. # 'ticket_status': forms.TextInput(attrs={'readonly': True}),
  116. #}
  117. class ServiceCategoryCreateForm(BaseForm, forms.ModelForm):
  118. codename = forms.CharField(label="Кодовое короткое название услуги")
  119. caption = forms.CharField(label="Название услуги")
  120. #requirements = forms.CharField(label="Требования")
  121. price_type = forms.ChoiceField(choices=PRICE_CHOICES, label="Ценообразование")
  122. description = forms.CharField(label="Описание")
  123. link_agreement = forms.CharField(label="Ссылка на договор-оферту")
  124. metaservice_comission = forms.FloatField(label="Комиссия Сервиса")
  125. # is_global = forms.BooleanField(label="Доступно во всех сервисах", required=False)
  126. # is_visible = forms.BooleanField(label="Доступно для планирования цепочек во всех сервисах", required=False)
  127. def __init__(self, *args, **kwargs):
  128. super(ServiceCategoryCreateForm, self).__init__(*args, **kwargs)
  129. class Meta:
  130. model = ServiceCategory
  131. fields = [
  132. 'codename',
  133. 'caption',
  134. #'requirements',
  135. 'price_type',
  136. 'description',
  137. 'link_agreement',
  138. 'metaservice_comission',
  139. # 'is_global',
  140. # 'is_visible',
  141. ]
  142. widgets = {
  143. }
  144. class ServiceInformationUpdateForm(BaseForm, forms.ModelForm):
  145. def __init__(self, *args, **kwargs):
  146. super(ServiceInformationUpdateForm, self).__init__(*args, **kwargs)
  147. # Добавляет стиль бутстрапа form-control всем полям таблицы если у них нет своих стилей
  148. for field in iter(self.fields):
  149. if 'class' not in self.fields[field].widget.attrs:
  150. self.fields[field].widget.attrs.update({'class': 'form-control'})
  151. class Meta:
  152. model = Service
  153. fields = [
  154. 'service_category'
  155. ]
  156. widgets = {
  157. # 'status': forms.TextInput(attrs={'readonly': True}),
  158. # 'ticket_status': forms.TextInput(attrs={'readonly': True}),
  159. 'service_category': forms.Select(attrs={'class': 'form-select'}),
  160. # 'repr': forms.Select(attrs={'class': 'form-select'}),
  161. # 'resource': forms.Select(attrs={'class': 'form-select'}),
  162. }
  163. class ServiceInformationCreateForm(forms.ModelForm):
  164. def __init__(self, *args, **kwargs):
  165. super(ServiceInformationCreateForm, self).__init__(*args, **kwargs)
  166. # Добавляет стиль бутстрапа form-control всем полям таблицы если у них нет своих стилей
  167. for field in iter(self.fields):
  168. if 'class' not in self.fields[field].widget.attrs:
  169. self.fields[field].widget.attrs.update({'class': 'form-control'})
  170. class Meta:
  171. model = Service
  172. fields = "__all__"
  173. exclude = [
  174. "id",
  175. "is_global",
  176. "is_visible",
  177. "ticket_status",
  178. "id_metaservice",
  179. "resource"
  180. ]
  181. widgets = {
  182. # 'service_category': forms.CharField(max_length=255)
  183. # 'legal_name': forms.TextInput(label = 'Название')
  184. # 'service_category': forms.Select(attrs={'class': 'form-select'}),
  185. # 'repr': forms.Select(attrs={'class': 'form-select'}),
  186. # 'resource': forms.Select(attrs={'class': 'form-select'}),
  187. # 'ticket_status': forms.Select(attrs={'class': 'form-select'}),
  188. }
  189. class PartnerInformationUpdateForm(forms.ModelForm):
  190. def __init__(self, *args, **kwargs):
  191. super(PartnerInformationUpdateForm, self).__init__(*args, **kwargs)
  192. # Добавляет стиль бутстрапа form-control всем полям таблицы если у них нет своих стилей
  193. for field in iter(self.fields):
  194. if 'class' not in self.fields[field].widget.attrs:
  195. self.fields[field].widget.attrs.update({'class': 'form-control'})
  196. class Meta:
  197. model = Company
  198. fields = "__all__"
  199. exclude = [
  200. "id",
  201. "ticket_status",
  202. "is_global",
  203. "is_visible",
  204. "id_metaservice",
  205. "status"
  206. ]
  207. widgets = {
  208. 'description': forms.Select(attrs={'class': 'form-select'}),
  209. 'repr': forms.Select(attrs={'class': 'form-select'}),
  210. }
  211. class PartnerInformationCreateForm(forms.ModelForm):
  212. def __init__(self, *args, **kwargs):
  213. super(PartnerInformationCreateForm, self).__init__(*args, **kwargs)
  214. for field in iter(self.fields):
  215. if 'class' not in self.fields[field].widget.attrs:
  216. self.fields[field].widget.attrs.update({'class': 'form-control'})
  217. # legal_name = forms.Fi()
  218. class Meta:
  219. model = Company
  220. fields = "__all__"
  221. exclude = [
  222. "id",
  223. "ticket_status",
  224. "is_global",
  225. "is_visible",
  226. "id_metaservice",
  227. "status"
  228. ]
  229. widgets = {
  230. 'description': forms.Select(attrs={'class': 'form-select'}),
  231. 'repr': forms.Select(attrs={'class': 'form-select'}),
  232. }
  233. # username = forms.CharField(label="Номер телефона",
  234. # widget=forms.TextInput(attrs={'class':'form-control'}))
  235. class ProviderCreateForm(forms.ModelForm):
  236. gap = forms.CharField(label="Промежуток времени до готовности приступить к выполнению")
  237. #gap = forms.DateTimeField(label="Промежуток времени до готовности приступить к выполнению")
  238. location_type = forms.CharField(label="Способ отображения геолокации")
  239. default_location = forms.CharField(label="Геолокация по умолчанию")
  240. #resource_type = forms.ChoiceField(choices=RESOURCE_TYPE_CHOICES, label="Необходимый тип ресурса")
  241. #requirements = forms.CharField(label="Требования")
  242. # is_global = forms.BooleanField(label="Доступно во всех сервисах", required=False)
  243. # is_visible = forms.BooleanField(label="Доступно для планирования цепочек во всех сервисах", required=False)
  244. def __init__(self, *args, **kwargs):
  245. super(ProviderCreateForm, self).__init__(*args, **kwargs)
  246. # Добавляет стиль бутстрапа form-control всем полям таблицы если у них нет своих стилей
  247. for field in iter(self.fields):
  248. if 'class' not in self.fields[field].widget.attrs:
  249. self.fields[field].widget.attrs.update({'class': 'form-control'})
  250. class Meta:
  251. model = Provider
  252. #fields = '__all__'
  253. fields = [
  254. 'gap',
  255. 'location_type',
  256. 'default_location',
  257. 'service',
  258. 'resource',
  259. ]
  260. #company - использовать ту, у которой сейчас отображаются услуги
  261. #resource - показывать только те, которые имеют отношение к компании
  262. widgets = {
  263. 'service': forms.Select(attrs={'class': 'form-select'}),
  264. 'resource': forms.Select(attrs={'class': 'form-select'}),
  265. #'resource': forms.Select(attrs={'class': 'form-select'}),
  266. #'ticket_status': forms.TextInput(attrs={'readonly': True}),
  267. }