• 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/projects/api.py
1
from django.db.models import Q
×
2
from django.utils import timezone
×
3
from rest_framework import permissions
×
4
from rest_framework import viewsets
×
5

6
from adhocracy4.modules.models import Module
×
7
from adhocracy4.projects.enums import Access
×
8
from adhocracy4.projects.models import Project
×
9

10
from .serializers import AppModuleSerializer
×
11
from .serializers import AppProjectSerializer
×
12
from .serializers import ModerationProjectSerializer
×
13

14

15
# FIXME:rename it from AppProjectsViewSet to ProjectViewSet
16
class AppProjectsViewSet(viewsets.ReadOnlyModelViewSet):
×
17
    serializer_class = AppProjectSerializer
×
18
    permission_classes = (permissions.IsAuthenticated,)
×
19
    lookup_field = "slug"
×
20

21
    def get_queryset(self):
×
22
        now = timezone.now()
×
23
        return Project.objects.filter(
×
24
            Q(access=Access.PUBLIC) | Q(access=Access.SEMIPUBLIC),
25
            Q(module__phase__start_date__lte=now)
26
            | Q(module__phase__start_date__gt=now),
27
            module__phase__end_date__gt=now,
28
            is_draft=False,
29
            is_archived=False,
30
            organisation__enable_geolocation=True,  # TODO: replace with a django filter later
31
        )
32

33

34
class AppModuleViewSet(viewsets.ReadOnlyModelViewSet):
×
35
    serializer_class = AppModuleSerializer
×
36
    permission_classes = (permissions.IsAuthenticated,)
×
37

38
    def get_queryset(self):
×
39
        return Module.objects.filter(is_draft=False, project__is_app_accessible=True)
×
40

41

42
class ModerationProjectsViewSet(viewsets.ReadOnlyModelViewSet):
×
43
    serializer_class = ModerationProjectSerializer
×
44
    permission_classes = (permissions.IsAuthenticated,)
×
45

46
    def get_queryset(self):
×
47
        return self.request.user.project_moderator.all().select_related("organisation")
×
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