• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

liqd / adhocracy-plus / 18908688697

29 Oct 2025 12:59PM UTC coverage: 44.622% (-44.5%) from 89.135%
18908688697

Pull #2986

github

web-flow
Merge 1dfde8ee7 into 445e1d498
Pull Request #2986: Draft: Speed up Github Ci Tests

3012 of 6750 relevant lines covered (44.62%)

0.45 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/apps/ideas/api.py
1
from rest_framework import mixins
×
2
from rest_framework import viewsets
×
3
from rest_framework.response import Response
×
4

5
from adhocracy4.api.mixins import ModuleMixin
×
6
from adhocracy4.api.permissions import ViewSetRulesPermission
×
7

8
from .models import Idea
×
9
from .serializers import IdeaSerializer
×
10

11

12
class IdeaViewSet(
×
13
    ModuleMixin,
14
    mixins.CreateModelMixin,
15
    mixins.DestroyModelMixin,
16
    mixins.ListModelMixin,
17
    mixins.RetrieveModelMixin,
18
    mixins.UpdateModelMixin,
19
    viewsets.GenericViewSet,
20
):
21

22
    serializer_class = IdeaSerializer
×
23
    permission_classes = (ViewSetRulesPermission,)
×
24
    lookup_field = "pk"
×
25

26
    def get_permission_object(self):
×
27
        return self.module
×
28

29
    def get_queryset(self):
×
30
        ideas = (
×
31
            Idea.objects.filter(module=self.module)
32
            .annotate_comment_count()
33
            .annotate_positive_rating_count()
34
            .annotate_negative_rating_count()
35
            .order_by("created")
36
        )
37
        return ideas
×
38

39
    def update(self, request, *args, **kwargs):
×
40
        partial = kwargs.pop("partial", False)
×
41
        instance = self.get_object()
×
42
        if "image_deleted" in request.data and request.data["image_deleted"]:
×
43
            if instance.image:
×
44
                instance.image.delete()
×
45

46
        serializer = self.get_serializer(instance, data=request.data, partial=partial)
×
47
        serializer.is_valid(raise_exception=True)
×
48
        self.perform_update(serializer)
×
49

50
        if getattr(instance, "_prefetched_objects_cache", None):
×
51
            # If 'prefetch_related' has been applied to a queryset, we need to
52
            # forcibly invalidate the prefetch cache on the instance.
53
            instance._prefetched_objects_cache = {}
×
54

55
        return Response(serializer.data)
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc