views.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # coding=utf-8
  2. from utils.custom_modelviewset import CustomModelViewSet
  3. from rest_framework.decorators import action
  4. import json
  5. from .models import OperationHelp,OperationHelpImg,OperationHelpRadio
  6. from utils.permission import IsAdministratorUser
  7. from .serializer import OperationHelpSerializer
  8. from apps.tenant import tenant_log
  9. from apps.log.models import BizLog
  10. from .filters import OperationHelpFilter
  11. from utils import response_ok, response_error
  12. from django.db import transaction
  13. class OperationHelpViewSet(CustomModelViewSet):
  14. permission_classes = [IsAdministratorUser, ]
  15. queryset = OperationHelp.objects.filter()
  16. serializer_class = OperationHelpSerializer
  17. def filter_queryset(self, queryset):
  18. queryset = queryset.filter(tenant=self.request.user.employee.tenant)
  19. f = OperationHelpFilter(self.request.GET, queryset=queryset)
  20. return f.qs
  21. def perform_create(self, serializer):
  22. super(OperationHelpViewSet,self).perform_create(serializer)
  23. instance = serializer.instance
  24. validated_data = serializer.validated_data
  25. tenant_log(self.request.user.employee, BizLog.INSERT, u'添加运维帮助[%s],id=%d' % (instance.title, instance.id),
  26. validated_data)
  27. def perform_update(self, serializer):
  28. super(OperationHelpViewSet,self).perform_update(serializer)
  29. instance = serializer.instance
  30. validated_data = serializer.validated_data
  31. tenant_log(self.request.user.employee, BizLog.INSERT, u'修改运维帮助[%s],id=%d' % (instance.title, instance.id),
  32. validated_data)
  33. @action(methods=['post'], detail=False)
  34. def upload_image(self, request):
  35. file = self.request.FILES.get('file')
  36. user = self.request.user
  37. operation_help_img = OperationHelpImg.objects.create(tenant=user.employee.tenant)
  38. if file:
  39. operation_help_img._add_img(file, user)
  40. image = operation_help_img.image
  41. data={
  42. "src": image
  43. }
  44. return response_ok(data)
  45. return response_error('上传失败,请重新上传!')
  46. @action(methods=['post'], detail=False)
  47. def upload_radio(self, request):
  48. file = self.request.FILES.get('file')
  49. user = self.request.user
  50. operation_help_radio = OperationHelpRadio.objects.create(tenant=user.employee.tenant)
  51. if file:
  52. operation_help_radio._add_radio(file, user)
  53. radio_path = operation_help_radio.radio_path
  54. data = {
  55. "src": radio_path
  56. }
  57. return response_ok(data)
  58. return response_error('上传失败,请重新上传!')