• 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

45.57
/apps/projects/signals.py
1
from django.db.models import signals
1✔
2
from django.dispatch import receiver
1✔
3

4
from adhocracy4.comments.models import Comment
1✔
5
from adhocracy4.polls.models import Answer
1✔
6
from adhocracy4.polls.models import Vote
1✔
7
from adhocracy4.polls.signals import poll_voted
1✔
8
from adhocracy4.projects.models import Project
1✔
9
from adhocracy4.ratings.models import Rating
1✔
10
from apps.budgeting.models import Proposal
1✔
11
from apps.ideas.models import Idea
1✔
12
from apps.interactiveevents.models import Like
1✔
13
from apps.interactiveevents.models import LiveQuestion
1✔
14
from apps.mapideas.models import MapIdea
1✔
15
from apps.topicprio.models import Topic
1✔
16

17
from . import emails
1✔
18
from .models import ProjectInsight
1✔
19

20

21
@receiver(signals.m2m_changed, sender=Project.participants.through)
1✔
22
def send_welcome_to_private_project_email(action, **kwargs):
1✔
23
    if action == "post_add":
×
24
        project = kwargs.get("instance")
×
25
        participant_pks = list(kwargs.get("pk_set"))
×
26

27
        emails.WelcomeToPrivateProjectEmail.send(
×
28
            project, participant_pks=participant_pks
29
        )
30

31

32
@receiver(signals.post_save, sender=Comment)
1✔
33
def increase_comments_count(sender, instance, created, **kwargs):
1✔
34
    if created and instance.project:
×
35
        insight, _ = ProjectInsight.objects.get_or_create(project=instance.project)
×
36
        insight.comments += 1
×
37
        insight.save()
×
38
        insight.active_participants.add(instance.creator.id)
×
39

40

41
@receiver(signals.post_save, sender=Idea)
1✔
42
@receiver(signals.post_save, sender=MapIdea)
1✔
43
@receiver(signals.post_save, sender=Proposal)
1✔
44
@receiver(signals.post_save, sender=Topic)
1✔
45
def increase_idea_count(sender, instance, created, **kwargs):
1✔
46
    if not created:
×
47
        return
×
48

49
    insight, _ = ProjectInsight.objects.get_or_create(project=instance.module.project)
×
50
    insight.written_ideas += 1
×
51
    insight.save()
×
52

53
    if sender != Topic:
×
54
        insight.active_participants.add(instance.creator.id)
×
55

56

57
@receiver(signals.post_save, sender=Rating)
1✔
58
def increase_rating_count(sender, instance, created, **kwargs):
1✔
59
    if created:
×
60
        insight, _ = ProjectInsight.objects.get_or_create(
×
61
            project=instance.module.project
62
        )
63
        insight.ratings += 1
×
64
        insight.active_participants.add(instance.creator.id)
×
65
        insight.save()
×
66

67

68
@receiver(signals.post_save, sender=LiveQuestion)
1✔
69
def increase_live_questions_count(sender, instance, created, **kwargs):
1✔
70
    if created:
×
71
        project = instance.module.project
×
72
        insight, _ = ProjectInsight.objects.get_or_create(project=project)
×
73
        insight.live_questions += 1
×
74
        insight.save()
×
75

76

77
@receiver(signals.post_save, sender=Like)
1✔
78
def increase_ratings_count_for_likes(sender, instance, created, **kwargs):
1✔
79
    if created:
×
80
        project = instance.livequestion.module.project
×
81
        insight, _ = ProjectInsight.objects.get_or_create(project=project)
×
82
        insight.ratings += 1
×
83
        insight.save()
×
84

85

86
@receiver(signals.post_save, sender=Vote)
1✔
87
@receiver(signals.post_save, sender=Answer)
1✔
88
def increase_poll_answers_count(sender, instance, created, **kwargs):
1✔
89
    if created:
×
90
        if sender == Answer:
×
91
            project = instance.question.poll.module.project
×
92
        else:
93
            project = instance.project
×
94

95
        insight, _ = ProjectInsight.objects.get_or_create(project=project)
×
96
        insight.poll_answers += 1
×
97
        insight.save()
×
98

99

100
@receiver(poll_voted)
1✔
101
def increase_poll_participant_count(sender, poll, creator, content_id, **kwargs):
1✔
102
    insight, _ = ProjectInsight.objects.get_or_create(project=poll.module.project)
×
103
    if creator:
×
104
        insight.active_participants.add(creator.id)
×
105
    else:
106
        insight.unregistered_participants += 1
×
107
    insight.save()
×
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