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

liqd / roots / 26235555947

21 May 2026 03:24PM UTC coverage: 40.79% (-39.5%) from 80.274%
26235555947

Pull #112

github

web-flow
Merge 0c04922a1 into fb15f37ba
Pull Request #112: [ST-2214] Add more Information to Sentry Error + Solve absolute Url Bug

9 of 27 new or added lines in 5 files covered. (33.33%)

3614 existing lines in 161 files now uncovered.

3736 of 9159 relevant lines covered (40.79%)

0.41 hits per line

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

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

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

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

14

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

UNCOV
21
    def get_queryset(self):
×
UNCOV
22
        now = timezone.now()
×
UNCOV
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

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

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

41

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

UNCOV
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

© 2026 Coveralls, Inc