service.py 13 KB

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