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

liqd / a4-defakts / 13118789114

03 Feb 2025 04:48PM UTC coverage: 88.342% (+0.3%) from 88.022%
13118789114

push

github

m4ra
add projects tests from aplus

6070 of 6871 relevant lines covered (88.34%)

0.88 hits per line

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

92.59
/apps/projects/api.py
1
from django.db.models import Q
1✔
2
from django.utils import timezone
1✔
3
from rest_framework import permissions
1✔
4
from rest_framework import viewsets
1✔
5

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

10
from .serializers import AppModuleSerializer
1✔
11
from .serializers import AppProjectSerializer
1✔
12
from .serializers import ModerationProjectSerializer
1✔
13

14

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

21
    def get_queryset(self):
1✔
22
        now = timezone.now()
1✔
23
        return Project.objects.filter(
1✔
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):
1✔
35
    serializer_class = AppModuleSerializer
1✔
36
    permission_classes = (permissions.IsAuthenticated,)
1✔
37

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

41

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

46
    def get_queryset(self):
1✔
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

© 2026 Coveralls, Inc