コード例 #1
0
class EditRecordViewSet(viewsets.ModelViewSet, ReadsModelViewSetMixin,
	MixedPermissionModelViewSet):
	queryset = EditRecord.objects.all().order_by('-get_date')
	serializer_class = EditRecordSerializer
	filter_backends = (
		filters.OrderingFilter,
		EditorFilter,
		EditRecordServiceInfoFilter,
	)
	ordering_fields = ('username', )
	permission_classes_by_action = {
		#'retrieve': [RuleORPermissionFactory('detail', ['is_manager',]),],
		'update': [
		RuleORPermissionFactory('detail', [
		'is_manager',
		]),
		],
		'partial_update': [
		RuleORPermissionFactory('detail', [
		'is_manager',
		]),
		],
		'destroy': [
		RuleORPermissionFactory('detail', [
		'is_manager',
		]),
		],
	}

	@action(
		detail=True,
		methods=[
		'get',
		],
		url_name='analysis',
		url_path='action/analysis',
	)
	def analysis(self, request, pk=None):
		res = {}

		obj = self.get_object()
		[
			res['len_block'], res['same_character'], res['src_count'],
			res['dst_count']
		] = obj.diff()
		res['edit_distance'] = obj.edit_distance()
		res['delete_count'] = res['src_count'] - res['same_character']
		res['insert_count'] = res['dst_count'] - res['same_character']
		res['diff_count'] = res['dst_count'] - res['src_count']
		return Response(data=res, status=status.HTTP_202_ACCEPTED)
コード例 #2
0
class BusinessContentViewSet(viewsets.ModelViewSet):
    queryset = BusinessContent.objects.all()
    serializer_class = BusinessContentSerializer
    permission_classes = (RuleORPermissionFactory('list', [
        'is_manager',
        '__read__',
    ]), )
コード例 #3
0
class OrganizationViewSet(viewsets.ModelViewSet):
    queryset = Organization.objects.all()
    serializer_class = OrganizationSerializer
    filter_backends = (
        filters.OrderingFilter,
        filters.SearchFilter,
    )
    permission_classes = (RuleORPermissionFactory('list', [
        'is_manager',
        '__read__',
    ]), )
コード例 #4
0
class QAndAViewSet(viewsets.ModelViewSet):
    queryset = QAndA.objects.all()
    serializer_class = QAndASerializer
    filter_backends = (QAndACategoryFilter, )
    permission_classes = (RuleORPermissionFactory('list', [
        'is_manager',
        '__read__',
    ]), )

    def perform_create(self, serializer):
        instance = serializer.save(order=len(QAndA.objects.all()), )
        instance.save()
コード例 #5
0
class AnnouncementViewSet(viewsets.ModelViewSet, ResourceViewSet):
    queryset = Announcement.objects.all().order_by('-datetime')
    serializer_class = AnnouncementSerializer
    filter_backends = (
        filters.OrderingFilter,
        filters.SearchFilter,
        dffilters.DjangoFilterBackend,
    )
    ordering_fields = ('datetime', )
    search_fields = ('category', )
    filterset_fields = ('category', 'org_id')
    permission_classes = (RuleORPermissionFactory('list', [
        'is_manager',
        '__read__',
    ]), )

    def get_fullpath(self, obj, dir, resource):
        fullpath = os.path.join(obj.path, dir, resource)
        return fullpath
コード例 #6
0
class AnnouncementViewSet(viewsets.ModelViewSet, ResourceViewSet):
    queryset = Announcement.objects.all().order_by('-datetime')
    serializer_class = AnnouncementSerializer
    filter_backends = (
        filters.OrderingFilter,
        filters.SearchFilter,
        dffilters.DjangoFilterBackend,
    )
    ordering_fields = ('datetime', )
    search_fields = ('category', )
    filterset_fields = ('category', 'org_id')
    permission_classes = (RuleORPermissionFactory('list', [
        'is_manager',
        '__read__',
    ]), )

    def get_fullpath(self, obj, dir, resource):
        fullpath = os.path.join(obj.path, dir, resource)
        return fullpath

    @action(
        detail=False,
        methods=['get'],
        url_name='latest',
        url_path='action/latest',
    )
    def latest(self, request, pk=None):
        from datetime import datetime
        from dateutil.relativedelta import relativedelta
        year = datetime.today().year
        month = datetime.today().month
        begin_date = datetime(year, month, 1) + relativedelta(months=-12)
        end_date = datetime.today()

        query = Announcement.objects

        category = request.query_params.get('category')
        if category:
            query = query.filter(category=category)
        query = query.filter(datetime__gte=begin_date,
                             datetime__lte=end_date).order_by("-datetime")
        s = AnnouncementSerializer(instance=query, many=True)
        return Response(data=s.data, status=status.HTTP_202_ACCEPTED)
コード例 #7
0
class RecommendationSubjectViewSet(viewsets.ModelViewSet, ResourceViewSet):
    queryset = RecommendationSubject.objects.all()
    serializer_class = RecommendationSubjectSerializer
    filter_backends = (dffilters.DjangoFilterBackend, )
    permission_classes = (RuleORPermissionFactory('list', [
        'is_manager',
        '__read__',
    ]), )

    def perform_create(self, serializer):
        instance = serializer.save(order=len(
            RecommendationSubject.objects.all()), )
        instance.save()

    def get_fullpath(self, obj, dir, resource):
        fullpath = None
        if dir == 'cover':
            if resource == 'image':
                fullpath = obj.cover_image
        return fullpath