views.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # coding=utf-8
  2. import json
  3. from utils.custom_modelviewset import CustomModelViewSet
  4. from rest_framework.views import APIView
  5. from rest_framework.decorators import action
  6. from django.db import transaction
  7. from apps.option.models import Option
  8. from apps.option.serializers import OptionSerializer
  9. from apps.option.filters import OptionFilter
  10. from apps.log.models import BizLog
  11. from utils import response_ok, response_error
  12. from utils.exceptions import CustomError
  13. from utils.permission import IsEmployee
  14. class DictView(APIView):
  15. permission_classes = [IsEmployee, ]
  16. def get(self, request):
  17. ret = {
  18. 'types': Option.TYPE_CHOICES,
  19. }
  20. return response_ok(ret)
  21. class OptionViewSet(CustomModelViewSet):
  22. permission_classes = [IsEmployee, ]
  23. queryset = Option.objects.filter()
  24. serializer_class = OptionSerializer
  25. def filter_queryset(self, queryset):
  26. queryset = queryset.filter()
  27. f = OptionFilter(self.request.GET, queryset=queryset)
  28. return f.qs
  29. def perform_create(self, serializer):
  30. super(OptionViewSet,self).perform_create(serializer)
  31. instance = serializer.instance
  32. validated_data = serializer.validated_data
  33. BizLog.objects.addnew(self.request.user, BizLog.INSERT, u'添加自定义项[%s],id=%d' % (instance.name, instance.id), validated_data)
  34. def perform_update(self, serializer):
  35. super(OptionViewSet,self).perform_update(serializer)
  36. instance = serializer.instance
  37. validated_data = serializer.validated_data
  38. BizLog.objects.addnew(self.request.user, BizLog.UPDATE, u'修改自定义项[%s],id=%d' % (instance.name, instance.id), validated_data)