Explorar o código

add Comments and Tasks

kateshev14 hai 5 meses
pai
achega
bf9ad3624f
Modificáronse 7 ficheiros con 84 adicións e 1 borrados
  1. 3 1
      admin.py
  2. 10 0
      apiviews/comments.py
  3. 10 0
      apiviews/tasks.py
  4. 23 0
      models/comments.py
  5. 24 0
      models/tasks.py
  6. 7 0
      serializer/comments.py
  7. 7 0
      serializer/tasks.py

+ 3 - 1
admin.py

@@ -1,5 +1,7 @@
 from django.contrib import admin
-from webservice_running.models import OrdersLocal
+from webservice_running.models import *
 
 
 admin.site.register(OrdersLocal)
+admin.site.register(Comments)
+admin.site.register(Tasks)

+ 10 - 0
apiviews/comments.py

@@ -0,0 +1,10 @@
+from dbsynce.serializer import CommentsSerializer
+from rest_framework import viewsets, permissions
+from webservice_running.models import Comments
+
+class CommentsMVS(viewsets.ModelViewSet):
+
+    queryset = Comments.objects.all()
+    serializer_class = CommentsSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    permission_classes = [permissions.IsAuthenticated]

+ 10 - 0
apiviews/tasks.py

@@ -0,0 +1,10 @@
+from dbsynce.serializer import TasksSerializer
+from rest_framework import viewsets, permissions
+from webservice_running.models import Tasks
+
+class TasksMVS(viewsets.ModelViewSet):
+
+    queryset = Tasks.objects.all()
+    serializer_class = TasksSerializer
+    #permission_classes = [IsOwnerOrReadOnly]
+    permission_classes = [permissions.IsAuthenticated]

+ 23 - 0
models/comments.py

@@ -0,0 +1,23 @@
+from django.db import models
+from django.contrib.auth import get_user_model
+
+from tickets.models import Ticket
+
+
+class Comments(models.Model):
+    """
+    Комментарии
+    """
+
+    user_id = models.ForeignKey(get_user_model(), on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор пользователя/клиента/аккаунта, которым был создан комментарий")
+    description = models.TextField(blank=True, help_text="текстовое описание услуги")
+    status = models.CharField(max_length=150, help_text="активность на основе системы заявок", default="deactivated")
+    ticket_status = models.ForeignKey(Ticket, on_delete=models.DO_NOTHING, null=True, help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю.")
+    id_metaservice = models.BigIntegerField(help_text=" уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких мета-сервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер.")
+    is_global = models.BooleanField(default=False, help_text="доступно ли для планирования в цепочке с другими услугами в глобальном сервисе")
+    is_visible = models.BooleanField(default=False, help_text="доступно ли для хранения в глобальном сервисе/нужна синхронизация данных")
+
+    class Meta:
+        db_table = "comments"
+        verbose_name = "Комментарии"
+        verbose_name_plural = "Комментарии"

+ 24 - 0
models/tasks.py

@@ -0,0 +1,24 @@
+from django.db import models
+from django.contrib.auth import get_user_model
+
+from tickets.models import Ticket
+
+
+class Tasks(models.Model):
+    """
+    Задачи
+    """
+    repr_id = models.ForeignKey(get_user_model(), blank=True, on_delete=models.DO_NOTHING, help_text="Уникальный идентификатор ответственного за задачу")
+    user_id = models.ForeignKey(get_user_model(), on_delete=models.DO_NOTHING, null=True, help_text="уникальный идентификатор пользователя/клиента/аккаунта, который должен выполнить задачу")
+    task_description = models.TextField(blank=True, help_text="текстовое описание услуги")
+    status = models.CharField(max_length=150, help_text="активность на основе системы заявок", default="deactivated")
+    dead_line = models.DateTimeField(auto_now_add=True, help_text="дедлайн выполнения задачи")
+    ticket_status = models.ForeignKey(Ticket, on_delete=models.DO_NOTHING, null=True, help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю.")
+    id_metaservice = models.BigIntegerField(help_text=" уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких мета-сервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер.")
+    is_global = models.BooleanField(default=False, help_text="доступно ли для планирования в цепочке с другими услугами в глобальном сервисе")
+    is_visible = models.BooleanField(default=False, help_text="доступно ли для хранения в глобальном сервисе/нужна синхронизация данных")
+
+    class Meta:
+        db_table = "tasks"
+        verbose_name = "Задачи"
+        verbose_name_plural = "Задачи"

+ 7 - 0
serializer/comments.py

@@ -0,0 +1,7 @@
+from rest_framework import serializers
+from webservice_running.models import Comments
+
+class CommentsSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = Comments
+        exclude = ["id"]

+ 7 - 0
serializer/tasks.py

@@ -0,0 +1,7 @@
+from rest_framework import serializers
+from webservice_running.models import Tasks
+
+class TasksSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = Tasks
+        exclude = ["id"]