Pārlūkot izejas kodu

New edits for choosing provider in order

david.berlinskiy 4 mēneši atpakaļ
vecāks
revīzija
808c4172ef
5 mainītis faili ar 11 papildinājumiem un 5 dzēšanām
  1. 4 1
      admin/orders.py
  2. 4 1
      models/orders.py
  3. 1 1
      models/provider.py
  4. 1 1
      serializer/provider.py
  5. 1 1
      urls.py

+ 4 - 1
admin/orders.py

@@ -7,8 +7,10 @@ class OrdersAdmin(admin.ModelAdmin):
         'id',
         'service',
         'service_type',
-        'state',
+        'status',
         'id_metaservice',
+        'title',
+        'note',
         'provider',
         'receiver',
         'client_id',
@@ -20,6 +22,7 @@ class OrdersAdmin(admin.ModelAdmin):
         'ticket',
         'predicted_price',
         'real_price',
+        'asap',
         'is_global',
         'is_visible',
     )

+ 4 - 1
models/orders.py

@@ -14,8 +14,10 @@ class Orders(models.Model):
     """
     service = models.ForeignKey(Service, null=True, on_delete=models.DO_NOTHING, help_text="спецификатор услуги провайдера, нужен для установления цены (id_service - уникальный идентификатор шаблона услуги, необходим для установления цены и исполнителей.")
     service_type = models.ForeignKey(ServiceType, null=True, on_delete=models.DO_NOTHING, help_text="тип заказа по классификатору услу")
-    state = models.CharField(max_length=150, help_text="текущий статус заказа из возможных на платформе")
+    status = models.CharField(max_length=150, help_text="текущий статус заказа из возможных на платформе")
     id_metaservice = models.BigIntegerField(null=True, help_text="уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Если при синхронизации возникает конфликт (несовместимость) с другим сервисом, предлагается или форсировать изменения везде (если возможно), либо is_global выставляется как false.")
+    title = models.CharField(max_length=150, help_text="заголовок заказа",default = 'Заголовок')
+    note = models.CharField(max_length=150, help_text="задание к заказу",default = 'Записи')
     provider = models.ForeignKey(Provider, null=True, on_delete=models.DO_NOTHING, help_text="уникальный идентификатор поставщика услуги/аккаунта, который оказывает услугу. Если несколько провайдеров собираются мета-сервисом в цепочку, где на уровне связи с клиентом нельзя установить одно ответственное лицо, то указывается вспомогательный мета-провайдер сервиса, и это означает, что мета-сервис несет ответственность перед пользователем за сборку услуги воедино.") 
     receiver = models.ForeignKey(get_user_model(), null=True, related_name="user_id", on_delete=models.DO_NOTHING, help_text="пользователь/аккаунт, который принимает оказываемые услуги")
     client_id = models.ForeignKey(Client, null=True, on_delete=models.DO_NOTHING, help_text="клиент/аккаунт, который оплачивает все оказанные услуги") 
@@ -29,6 +31,7 @@ class Orders(models.Model):
     ticket = models.ForeignKey(Ticket, null=True, on_delete=models.DO_NOTHING)
     predicted_price = models.FloatField(help_text="расчетная цена с учетом тарифа поставщика услуг")
     real_price = models.FloatField(help_text="цена с учетом тарифа поставщика услуг по факту оказания услуги")
+    asap = models.BooleanField(default=False,help_text="Срочный ли заказ.")
     is_global = models.BooleanField(default=False, help_text="доступна ли информация по заказу для хранения в глобальном сервисе/нужна синхронизация данных. Если is_global = false, то и is_visible для заказа и вглубь по цепочке для всех исполнителей и ресурсов - тоже false.")
     is_visible = models.BooleanField(default=False, help_text="доступна ли информация по заказу (время, место) для планирования иных цепочек. Если нет, то все действующие исполнители и ресурсы считаются занятыми на неопределенное время, пока не завершится заказ. Если да - то ресурсы могут использоваться для построения цепочек после планируемого времени завершения, с учетом места.")
 

+ 1 - 1
models/provider.py

@@ -11,7 +11,7 @@ class Provider(models.Model):
     По сути - это надстройка к клиентскому аккаунту, иллюстрирующая, что данный пользователь может выступать не только в роли потребителя. 
     То есть, по тому, какие “провайдеры” находятся по идентификатору пользователя - можно установить конкретный список услуг данного пользователя.
     """
-
+    id = models.IntegerField(primary_key=True)
     type = models.CharField(max_length=150, help_text="тип поставщика (партнер/ответственное лицо/поставщик услуг). Смысл такой - провайдер это статус пользователя, который, в зависимости от применения, может нести разный смысл и подразумевает под собой какой-то тип действия. Обычные исполнители - это провайдеры услуг (код 3). Ответственные за какое-то имущество, которые сдают его в аренду - это тоже провайдеры (код 2). Ответственные за набор услуг перед метасервисом (фактически - назначенные админы) - это провайдеры-партнеры (код 1)")
     company_id = models.ForeignKey(Company, on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор компании, от лица которой выступает провайдер. Смысл такой - ответственны могут быть только одушевленные лица, компании - не одушевленные. Все услуги предоставляются через компании-партнеры, самозанятые или ИП являются единицами таких компаний.")
     user_id = models.ForeignKey(get_user_model(), on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор конкретного пользователя системы (meta-user), который будет оказывать услугу. Один пользователь может быть провайдером нескольких услуг. Статус провайдера означает, что с данным пользователем может быть установлена связь, как с исполнителем.")

+ 1 - 1
serializer/provider.py

@@ -4,4 +4,4 @@ from dbsynce.models import Provider
 class ProviderSerializer(serializers.ModelSerializer):
     class Meta:
         model = Provider
-        exclude = ["id"]
+        exclude = []

+ 1 - 1
urls.py

@@ -15,5 +15,5 @@ router.register(r'service', ServiceMVS)
 router.register(r'servicetype', ServiceTypeMVS)
 
 urlpatterns = [  
-    path('api/', include(router.urls), name="metasynced"),
+    path('api/', include(router.urls), name="dbsynced"),
 ]