views.py 1.6 KB

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