浏览代码

model improvements for making service tariffs working more real;
few data fiels improvements

ShariX Developer 20 小时之前
父节点
当前提交
6717960386
共有 13 个文件被更改,包括 114 次插入48 次删除
  1. 3 3
      admin/service.py
  2. 9 9
      lib/seed.py
  3. 3 3
      lib/ticket_gen.py
  4. 5 2
      models/client.py
  5. 6 6
      models/company.py
  6. 2 2
      models/documents.py
  7. 2 1
      models/orders.py
  8. 2 1
      models/permissions.py
  9. 19 6
      models/provider.py
  10. 5 2
      models/relationship.py
  11. 1 1
      models/resource.py
  12. 55 10
      models/service.py
  13. 2 2
      models/service_category.py

+ 3 - 3
admin/service.py

@@ -8,10 +8,10 @@ class ServiceAdmin(admin.ModelAdmin):
     list_display = (
     list_display = (
         'id',
         'id',
         'service_category',
         'service_category',
-        'resource',
+#        'resource',
         'requirements',
         'requirements',
         'id_metaservice',
         'id_metaservice',
-        'price_type',
+#        'price_type',
         'price_km',
         'price_km',
         'price_min',
         'price_min',
         'price_amount',
         'price_amount',
@@ -22,6 +22,6 @@ class ServiceAdmin(admin.ModelAdmin):
     )
     )
     list_filter = (
     list_filter = (
         'service_category',
         'service_category',
-        'resource',
+#        'resource',
         'ticket_status',
         'ticket_status',
     )
     )

+ 9 - 9
lib/seed.py

@@ -66,15 +66,15 @@ def create_metaservice_default_data():
     create_webservice_seed()
     create_webservice_seed()
 
 
 def create_metaservice_init_data():
 def create_metaservice_init_data():
-    if not ServiceCategory.objects.filter(codename="test").exists():
-        service_category=ServiceCategory(METASERVICE_ID, "test", "DSMPUB", "0", "Test", "Test service category", "https://wiki.sharix-app.org/doku.php/open/doc/usage", "3", 0.2, "0", "0", 1)
-        metaserivce_admin = get_user_model().objects.get(phone_number=2101)
-        create_service_category(service_category, metaserivce_admin)
-
-        print(f"Service category test created.")
-    else:
-        print(f"Service category test already exists.")
-
+    #if not ServiceCategory.objects.filter(codename="test").exists():
+    #    service_category=ServiceCategory(METASERVICE_ID, "test", "DSMPUB", "0", "Test", "Test service category", "https://wiki.sharix-app.org/doku.php/open/doc/usage", "3", 0.2, "0", "0", 1)
+    #    metaserivce_admin = get_user_model().objects.get(phone_number=2101)
+    #    create_service_category(service_category, metaserivce_admin)
+
+    #    print(f"Service category test created.")
+    #else:
+    #    print(f"Service category test already exists.")
+    print(f"Skipping Service category test data.")
 
 
 def create_metaservice_initial_groups():
 def create_metaservice_initial_groups():
     groups = [
     groups = [

+ 3 - 3
lib/ticket_gen.py

@@ -342,13 +342,13 @@ def create_ticket_service_activation(user, service):
         note=f"""
         note=f"""
             Пользователь {user} отправил заявку на добавление и активацию услуги сервиса:\n
             Пользователь {user} отправил заявку на добавление и активацию услуги сервиса:\n
             - Категория: {service.service_category_id}\n
             - Категория: {service.service_category_id}\n
-            - Ресурс: {service.resource}\n
+            - Название: {service.caption}\n
+            - Описание: {service.description}\n
+            - Тип ресурса: {service.resource_type}\n
             - Комиссия партнера: {service.company_comission}\n
             - Комиссия партнера: {service.company_comission}\n
-            - Тарификация: {service.price_type}\n
             - Стоимость км: {service.price_km}\n
             - Стоимость км: {service.price_km}\n
             - Стоимость минуты: {service.price_min}\n            
             - Стоимость минуты: {service.price_min}\n            
             - Стоимость за количество: {service.price_amount}\n
             - Стоимость за количество: {service.price_amount}\n
-            - Описание: {service_category.description}\n
             \n
             \n
             Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
             Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
             Это будет означать, что Партнер сможет оказывать услуги на указанных условиях.
             Это будет означать, что Партнер сможет оказывать услуги на указанных условиях.

+ 5 - 2
models/client.py

@@ -21,11 +21,14 @@ class Client(models.Model):
 
 
     # DATA
     # DATA
     requirements = models.CharField(
     requirements = models.CharField(
-        max_length=150,
+        max_length=50,
+        #TODO ADD CORRECT DEFAULT!
+        default="DSMPUB",
         help_text=HelpTexts.requirements
         help_text=HelpTexts.requirements
     )
     )
     status = models.CharField(
     status = models.CharField(
-        max_length=150,
+        max_length=1,
+        default="1",
         help_text=HelpTexts.status
         help_text=HelpTexts.status
     )
     )
 
 

+ 6 - 6
models/company.py

@@ -25,24 +25,24 @@ class Company(models.Model):
     # DATA
     # DATA
     requirements = models.CharField(
     requirements = models.CharField(
         "Ограничения",
         "Ограничения",
-        max_length=150,
+        max_length=50,
         default="DS01y04y05y06y07yMPUCS13MPUB",
         default="DS01y04y05y06y07yMPUCS13MPUB",
         help_text=HelpTexts.requirements
         help_text=HelpTexts.requirements
     )
     )
     status = models.CharField(
     status = models.CharField(
         "Статус",
         "Статус",
-        max_length=150,
-        default="deactivated",
+        max_length=1,
+        default="1",
         help_text=HelpTexts.status
         help_text=HelpTexts.status
     )
     )
     legal_name = models.CharField(
     legal_name = models.CharField(
         "Название организации",
         "Название организации",
-        max_length=150,
+        max_length=50,
         help_text=HelpTexts.legal_name
         help_text=HelpTexts.legal_name
     )
     )
     address = models.CharField(
     address = models.CharField(
         "Юридический адрес",
         "Юридический адрес",
-        max_length=150,
+        max_length=300,
         help_text=HelpTexts.address
         help_text=HelpTexts.address
     )
     )
     inn = models.CharField(
     inn = models.CharField(
@@ -68,7 +68,7 @@ class Company(models.Model):
     )
     )
     bik = models.CharField(
     bik = models.CharField(
         "БИК компании",
         "БИК компании",
-        max_length=11,
+        max_length=9,
         help_text=HelpTexts.bik
         help_text=HelpTexts.bik
     )
     )
     rs = models.CharField(
     rs = models.CharField(

+ 2 - 2
models/documents.py

@@ -62,8 +62,8 @@ class Documents(models.Model):
     )
     )
     # FIXME: status должен иметь другое значение поумолчанию
     # FIXME: status должен иметь другое значение поумолчанию
     status = models.CharField(
     status = models.CharField(
-        max_length=150,
-        default="deactivated",
+        max_length=1,
+        default="1",
         help_text="активность на основе системы заявок"
         help_text="активность на основе системы заявок"
     )
     )
     data_path = models.CharField(
     data_path = models.CharField(

+ 2 - 1
models/orders.py

@@ -25,7 +25,8 @@ class Orders(models.Model):
 
 
     # DATA
     # DATA
     status = models.CharField(
     status = models.CharField(
-        max_length=150,
+        max_length=1,
+        default="1",
         help_text=HelpTexts.status
         help_text=HelpTexts.status
     )
     )
     title = models.CharField(
     title = models.CharField(

+ 2 - 1
models/permissions.py

@@ -29,7 +29,8 @@ class Permissions(models.Model):
         help_text=HelpTexts.check_level
         help_text=HelpTexts.check_level
     )
     )
     status = models.CharField(
     status = models.CharField(
-        max_length=150,
+        max_length=1,
+        default="1",
         help_text=HelpTexts.status
         help_text=HelpTexts.status
     )
     )
     check_date = models.DateTimeField(
     check_date = models.DateTimeField(

+ 19 - 6
models/provider.py

@@ -2,6 +2,7 @@ from django.contrib.auth import get_user_model
 from django.db import models
 from django.db import models
 
 
 from dbsynce.models.service import Service
 from dbsynce.models.service import Service
+from dbsynce.models.resource import Resource
 from tickets.models import Ticket
 from tickets.models import Ticket
 
 
 from dbsynce.docs.database.provider import Provider as HelpTexts
 from dbsynce.docs.database.provider import Provider as HelpTexts
@@ -23,27 +24,31 @@ class Provider(models.Model):
 
 
     # DATA
     # DATA
     gap = models.DateTimeField(
     gap = models.DateTimeField(
-        max_length=150,
+        max_length=10,
         help_text=HelpTexts.gap
         help_text=HelpTexts.gap
     )
     )
     requirements = models.CharField(
     requirements = models.CharField(
-        max_length=300,
+        max_length=50,
+        #TODO ADD CORRECT DEFAULT!
+        default="DSMPUB",
         help_text=HelpTexts.requirements
         help_text=HelpTexts.requirements
     )
     )
     status = models.CharField(
     status = models.CharField(
-        max_length=150,
+        max_length=1,
+        default="1",
         help_text=HelpTexts.status
         help_text=HelpTexts.status
     )
     )
     service_status = models.CharField(
     service_status = models.CharField(
-        max_length=150,
+        max_length=1,
+        default="2",
         help_text=HelpTexts.service_status
         help_text=HelpTexts.service_status
     )
     )
     location_type = models.CharField(
     location_type = models.CharField(
-        max_length=300,
+        max_length=1,
         help_text=HelpTexts.location_type
         help_text=HelpTexts.location_type
     )
     )
     default_location = models.CharField(
     default_location = models.CharField(
-        max_length=300,
+        max_length=30,
         help_text=HelpTexts.default_location
         help_text=HelpTexts.default_location
     )
     )
 
 
@@ -79,6 +84,14 @@ class Provider(models.Model):
         help_text=HelpTexts.service
         help_text=HelpTexts.service
     )
     )
 
 
+    resource = models.ForeignKey(
+        Resource,
+        on_delete=models.DO_NOTHING,
+        blank=True,
+        null=True,
+        #help_text=HelpTexts.resource
+    )
+
     class Meta:
     class Meta:
         db_table = "provider"
         db_table = "provider"
         verbose_name = "Поставщик"
         verbose_name = "Поставщик"

+ 5 - 2
models/relationship.py

@@ -25,11 +25,14 @@ class Relationship(models.Model):
         help_text=HelpTexts.neg_type
         help_text=HelpTexts.neg_type
     )
     )
     requirements = models.CharField(
     requirements = models.CharField(
-        max_length=150,
+        max_length=50,
+        #TODO ADD CORRECT DEFAULT!
+        default="DSMPUB",
         help_text=HelpTexts.requirements
         help_text=HelpTexts.requirements
     )
     )
     status = models.CharField(
     status = models.CharField(
-        max_length=150,
+        max_length=1,
+        default="1",
         help_text=HelpTexts.status
         help_text=HelpTexts.status
     )
     )
 
 

+ 1 - 1
models/resource.py

@@ -23,7 +23,7 @@ class Resource(models.Model):
         help_text=HelpTexts.resource_type
         help_text=HelpTexts.resource_type
     )
     )
     requirements = models.CharField(
     requirements = models.CharField(
-        max_length=150,
+        max_length=50,
         default="DS01y04y05y06y07yMPUCS13MPUB",
         default="DS01y04y05y06y07yMPUCS13MPUB",
         help_text=HelpTexts.requirements
         help_text=HelpTexts.requirements
     )
     )

+ 55 - 10
models/service.py

@@ -1,6 +1,7 @@
 from django.db import models
 from django.db import models
 
 
 from dbsynce.models.resource import Resource
 from dbsynce.models.resource import Resource
+from dbsynce.models.company import Company
 from dbsynce.models.service_category import ServiceCategory
 from dbsynce.models.service_category import ServiceCategory
 from tickets.models import Ticket
 from tickets.models import Ticket
 
 
@@ -21,36 +22,70 @@ class Service(models.Model):
         help_text=HelpTexts.id_metaservice
         help_text=HelpTexts.id_metaservice
     )
     )
 
 
-    # DATA
-    price_type = models.CharField(
-        max_length=100,
-        help_text=HelpTexts.price_type
+    codename = models.CharField(
+        max_length=30,
+        #help_text=HelpTexts.codename
+    )
+
+    requirements = models.CharField(
+        max_length=300,
+        #TODO fix default value!
+        default="DSMPU",
+        #help_text=HelpTexts.requirements
+    )
+
+    caption = models.CharField(
+        max_length=255,
+        null=True,
+        #help_text=HelpTexts.caption
+    )
+    description = models.TextField(
+        blank=True,
+        #help_text=HelpTexts.description
+    )
+
+    resource_type = models.CharField(
+        max_length=5,
+        null=True,
+        #help_text=HelpTexts.resource_type
     )
     )
+
+
+    # DATA
+    #price_type = models.ForeignKey(
+    #    ServiceCategory,
+    #    max_length=1,
+    #    help_text=HelpTexts.price_type
+    #)
     price_km = models.DecimalField(
     price_km = models.DecimalField(
         max_digits=9,
         max_digits=9,
         decimal_places=2,
         decimal_places=2,
+        null=True,
         help_text=HelpTexts.price_km
         help_text=HelpTexts.price_km
     )
     )
     price_min = models.DecimalField(
     price_min = models.DecimalField(
         max_digits=9,
         max_digits=9,
         decimal_places=2,
         decimal_places=2,
+        null=True,
         help_text=HelpTexts.price_min
         help_text=HelpTexts.price_min
     )
     )
     price_amount = models.DecimalField(
     price_amount = models.DecimalField(
         max_digits=9,
         max_digits=9,
         decimal_places=2,
         decimal_places=2,
+        null=True,
         help_text=HelpTexts.price_amount
         help_text=HelpTexts.price_amount
     )
     )
     company_comission = models.FloatField(
     company_comission = models.FloatField(
         help_text=HelpTexts.company_comission
         help_text=HelpTexts.company_comission
     )
     )
     requirements = models.CharField(
     requirements = models.CharField(
-        max_length=150,
+        max_length=50,
         help_text=HelpTexts.requirements
         help_text=HelpTexts.requirements
     )
     )
     status = models.CharField(
     status = models.CharField(
-        max_length=150,
-        help_text=HelpTexts.status
+        max_length=1,
+        help_text=HelpTexts.status,
+        default="1",
     )
     )
 
 
     # OTHER
     # OTHER
@@ -68,16 +103,26 @@ class Service(models.Model):
     # FK
     # FK
     ticket_status = models.ForeignKey(
     ticket_status = models.ForeignKey(
         Ticket,
         Ticket,
+        null=True,
         on_delete=models.DO_NOTHING,
         on_delete=models.DO_NOTHING,
         help_text=HelpTexts.ticket_status
         help_text=HelpTexts.ticket_status
     )
     )
-    resource = models.ForeignKey(
-        Resource,
+    #resource = models.ForeignKey(
+    #    Resource,
+    #    on_delete=models.DO_NOTHING,
+    #    blank=True,
+    #    null=True,
+    #    help_text=HelpTexts.resource
+    #)
+
+    company = models.ForeignKey(
+        Company,
         on_delete=models.DO_NOTHING,
         on_delete=models.DO_NOTHING,
         blank=True,
         blank=True,
         null=True,
         null=True,
-        help_text=HelpTexts.resource
+        #help_text=HelpTexts.company
     )
     )
+
     service_category = models.ForeignKey(
     service_category = models.ForeignKey(
         ServiceCategory,
         ServiceCategory,
         on_delete=models.DO_NOTHING,
         on_delete=models.DO_NOTHING,

+ 2 - 2
models/service_category.py

@@ -19,11 +19,11 @@ class ServiceCategory(models.Model):
 
 
     # DATA
     # DATA
     codename = models.CharField(
     codename = models.CharField(
-        max_length=255,
+        max_length=30,
         help_text=HelpTexts.codename
         help_text=HelpTexts.codename
     )
     )
     requirements = models.CharField(
     requirements = models.CharField(
-        max_length=300,
+        max_length=50,
         #TODO fix default value!
         #TODO fix default value!
         default="DSMPU",
         default="DSMPU",
         help_text=HelpTexts.requirements
         help_text=HelpTexts.requirements