hujingpei 4 éve
szülő
commit
f9d52995f4

+ 15 - 29
apps/tenant/operation_help/models.py

@@ -9,7 +9,7 @@ from utils.file_operation import UploadFile, DeleteFile
 
 class OperationHelp(models.Model):
     title = models.CharField(verbose_name=u'标题', max_length=100)
-    content = models.TextField(verbose_name=u'内容')
+    content = models.TextField(verbose_name=u'内容',blank=True, null=True)
     create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
                                     editable=False)
     create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
@@ -23,15 +23,16 @@ class OperationHelp(models.Model):
         verbose_name = u'运维帮助'
 
 
-class OperationHelpImg(models.Model):
+class OperationHelpUpfile(models.Model):
     operation_help = models.ForeignKey(OperationHelp,verbose_name=u'运维帮助', on_delete=models.PROTECT,null=True)
-    image = models.CharField(verbose_name=u'图片路径', max_length=250)
+    file_path = models.CharField(verbose_name=u'路径', max_length=250)
     width = models.IntegerField(verbose_name=u"图片宽度")
     height = models.IntegerField(verbose_name=u"图片高度")
+    radio_size = models.FloatField(verbose_name="视频大小", blank=True, default=0)
     tenant = models.ForeignKey(Tenant, verbose_name=u'企业', editable=False, on_delete=models.PROTECT, null=True)
 
     class Meta:
-        db_table = 'operation_help_img'
+        db_table = 'operation_help_upfile'
         ordering = ['-id']
         verbose_name = u'运维帮助图片'
 
@@ -39,7 +40,7 @@ class OperationHelpImg(models.Model):
         width = None
         height = None
 
-        path = "operation_help_img/"
+        path = "operation_help_upfile/"
         filename = UploadFile(file, path, user_id)
         fullname = "%s%s" % (settings.MEDIA_ROOT, filename)
 
@@ -54,41 +55,26 @@ class OperationHelpImg(models.Model):
         except:
             pass
 
-        self.image = "%s%s" % (settings.MEDIA_URL, filename)
+        self.file_path = "%s%s" % (settings.MEDIA_URL, filename)
         self.width = width
         self.height = height
         self.save()
 
-    def del_images(self):
-        image = self.image
-        self.delete()
-        DeleteFile(image)
-
-class OperationHelpRadio(models.Model):
-    operation_help = models.ForeignKey(OperationHelp, verbose_name=u'运维帮助', on_delete=models.PROTECT, null=True)
-    radio_path = models.CharField(verbose_name=u'视频路径', max_length=250)
-    radio_size = models.FloatField(verbose_name="视频大小",blank=True, default=0)
-    radio_time = models.FloatField(verbose_name="视频时长",blank=True, default=0)
-    tenant = models.ForeignKey(Tenant, verbose_name=u'企业', editable=False, on_delete=models.PROTECT, null=True)
-
-    class Meta:
-        db_table = 'operation_help_radio'
-        ordering = ['-id']
-        verbose_name = u'运维帮助视频'
-
     def _add_radio(self, file, user_id):
 
-
-        path = "operation_help_radio/"
+        path = "operation_help_upfile/"
         filename = UploadFile(file, path, user_id)
         fullname = "%s%s" % (settings.MEDIA_ROOT, filename)
 
         radio_size = os.path.getsize(fullname)
         self.radio_size = "%.2f" % (radio_size/(1024*1024))
-        self.radio_path = "%s%s" % (settings.MEDIA_URL, filename)
+        self.file__ath = "%s%s" % (settings.MEDIA_URL, filename)
         self.save()
 
-    def del_radio(self):
-        radio = self.radio_path
+    def del_file(self):
+        file_path = self.file_path
         self.delete()
-        DeleteFile(radio)
+        DeleteFile(file_path)
+
+
+

+ 14 - 5
apps/tenant/operation_help/serializer.py

@@ -1,6 +1,5 @@
 from rest_framework import serializers
-from .models import OperationHelp,OperationHelpImg,OperationHelpRadio
-from django.conf import settings
+from .models import OperationHelp,OperationHelpUpfile
 
 class OperationHelpSerializer(serializers.ModelSerializer):
     enable_text = serializers.SerializerMethodField()
@@ -21,6 +20,16 @@ class OperationHelpSerializer(serializers.ModelSerializer):
         validated_data['create_user'] = user
         validated_data['tenant'] = self.context['request'].user.employee.tenant
         instance = super(OperationHelpSerializer, self).create(validated_data)
-        OperationHelpImg.objects.filter(tenant=instance.tenant,operation_help__isnull=True,).update(operation_help=instance)
-        OperationHelpRadio.objects.filter(tenant=instance.tenant,operation_help__isnull=True,).update(operation_help=instance)
-        return instance
+        OperationHelpUpfile.objects.filter(tenant=instance.tenant,operation_help__isnull=True,).update(operation_help=instance)
+        return instance
+
+    def update(self, instance, validated_data):
+        content = self.initial_data['content']
+        operation_files = OperationHelpUpfile.objects.filter(operation_help=instance)
+        for operation_file in operation_files:
+            if not operation_file.file_path in content:
+                operation_file.del_file()
+
+        OperationHelpUpfile.objects.filter(tenant=instance.tenant, operation_help__isnull=True,).update(operation_help=instance)
+        instance = super(OperationHelpSerializer, self).update(instance, validated_data)
+        return instance

+ 8 - 11
apps/tenant/operation_help/views.py

@@ -4,7 +4,7 @@ from utils.custom_modelviewset import CustomModelViewSet
 from rest_framework.decorators import action
 import json
 
-from .models import OperationHelp,OperationHelpImg,OperationHelpRadio
+from .models import OperationHelp,OperationHelpUpfile
 from utils.permission import IsAdministratorUser
 from .serializer import OperationHelpSerializer
 from apps.tenant import tenant_log
@@ -42,9 +42,9 @@ class OperationHelpViewSet(CustomModelViewSet):
     def upload_image(self, request):
         file = self.request.FILES.get('file')
         user = self.request.user
-        operation_help_img = OperationHelpImg.objects.create(tenant=user.employee.tenant)
+        operation_help_img = OperationHelpUpfile.objects.create(tenant=user.employee.tenant)
         operation_help_img._add_img(file, user.id)
-        image = operation_help_img.image
+        image = operation_help_img.file_path
         if image:
             data={
                 "src": image
@@ -56,9 +56,9 @@ class OperationHelpViewSet(CustomModelViewSet):
     def upload_radio(self, request):
         file = self.request.FILES.get('file')
         user = self.request.user
-        operation_help_radio = OperationHelpRadio.objects.create(tenant=user.employee.tenant)
+        operation_help_radio = OperationHelpUpfile.objects.create(tenant=user.employee.tenant)
         operation_help_radio._add_radio(file, user.id)
-        radio_path = operation_help_radio.radio_path
+        radio_path = operation_help_radio.file_path
         if radio_path:
             data = {
                 "src": radio_path
@@ -71,12 +71,9 @@ class OperationHelpViewSet(CustomModelViewSet):
             instance = self.get_object()
             if instance.tenant != request.user.employee.tenant:
                 raise CustomError(u'禁止跨企业操作!')
-            operation_help_imgs = OperationHelpImg.objects.filter(operation_help=instance)
-            for operation_help_img in operation_help_imgs:
-                operation_help_img.del_images()
-            operation_help_radios = OperationHelpRadio.objects.filter(operation_help=instance)
-            for operation_help_radio in operation_help_radios:
-                operation_help_radio.del_radio()
+            operation_help_files = OperationHelpUpfile.objects.filter(operation_help=instance)
+            for operation_help_file in operation_help_files:
+                operation_help_file.del_file()
             super(OperationHelpViewSet, self).destroy(self, request, *args, **kwargs)
             tenant_log(self.request.user.employee, BizLog.DELETE, u'删除运维帮助[%s],id=%d' % (instance.title, instance.id))
         return response_ok()