• 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

69.44
/apps/ideas/exports.py
1
from django.utils.translation import gettext as _
1✔
2
from django.utils.translation import pgettext
1✔
3
from rules.contrib.views import PermissionRequiredMixin
1✔
4

5
from adhocracy4.comments.models import Comment
1✔
6
from adhocracy4.exports import mixins
1✔
7
from adhocracy4.exports import views as a4_export_views
1✔
8

9
from . import models
1✔
10

11

12
class IdeaExportView(
1✔
13
    PermissionRequiredMixin,
14
    mixins.ItemExportWithReferenceNumberMixin,
15
    mixins.ItemExportWithLinkMixin,
16
    mixins.ExportModelFieldsMixin,
17
    mixins.ItemExportWithCategoriesMixin,
18
    mixins.ItemExportWithLabelsMixin,
19
    mixins.UserGeneratedContentExportMixin,
20
    mixins.ItemExportWithRatesMixin,
21
    mixins.ItemExportWithCommentCountMixin,
22
    mixins.ItemExportWithModeratorFeedback,
23
    mixins.ItemExportWithModeratorRemark,
24
    a4_export_views.BaseItemExportView,
25
):
26
    model = models.Idea
1✔
27
    fields = ["name", "description"]
1✔
28
    html_fields = ["description"]
1✔
29
    permission_required = "a4_candy_ideas.moderate_idea"
1✔
30

31
    def get_permission_object(self):
1✔
32
        return self.module
×
33

34
    def get_queryset(self):
1✔
35
        return (
×
36
            super()
37
            .get_queryset()
38
            .filter(module=self.module)
39
            .annotate_comment_count()
40
            .annotate_positive_rating_count()
41
            .annotate_negative_rating_count()
42
        )
43

44
    @property
1✔
45
    def raise_exception(self):
1✔
46
        return self.request.user.is_authenticated
×
47

48

49
class IdeaCommentExportView(
1✔
50
    PermissionRequiredMixin,
51
    mixins.ItemExportWithLinkMixin,
52
    mixins.ExportModelFieldsMixin,
53
    mixins.UserGeneratedContentExportMixin,
54
    mixins.ItemExportWithRatesMixin,
55
    mixins.CommentExportWithRepliesToReferenceMixin,
56
    mixins.CommentExportWithRepliesToMixin,
57
    a4_export_views.BaseItemExportView,
58
):
59

60
    model = Comment
1✔
61

62
    fields = ["id", "comment", "created"]
1✔
63
    permission_required = "a4_candy_ideas.moderate_idea"
1✔
64

65
    def get_permission_object(self):
1✔
66
        return self.module
×
67

68
    def get_queryset(self):
1✔
69
        comments = Comment.objects.filter(
×
70
            idea__module=self.module
71
        ) | Comment.objects.filter(parent_comment__idea__module=self.module)
72

73
        return comments
×
74

75
    def get_virtual_fields(self, virtual):
1✔
76
        virtual.setdefault("id", _("ID"))
×
77
        virtual.setdefault("comment", pgettext("noun", "Comment"))
×
78
        virtual.setdefault("created", _("Created"))
×
79
        return super().get_virtual_fields(virtual)
×
80

81
    @property
1✔
82
    def raise_exception(self):
1✔
83
        return self.request.user.is_authenticated
×
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