• 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

79.31
/apps/moderatorfeedback/models.py
1
from django.db import models
1✔
2
from django.utils.translation import gettext_lazy as _
1✔
3
from django_ckeditor_5.fields import CKEditor5Field
1✔
4

5
from adhocracy4 import transforms
1✔
6
from adhocracy4.comments.models import Comment
1✔
7
from adhocracy4.models.base import UserGeneratedContentModel
1✔
8

9
from . import fields
1✔
10

11
DEFAULT_CHOICES = (
1✔
12
    ("CONSIDERATION", _("Under consideration")),
13
    ("REJECTED", _("Rejected")),
14
    ("ACCEPTED", _("Accepted")),
15
)
16

17

18
class ModeratorFeedback(UserGeneratedContentModel):
1✔
19
    feedback_text = CKEditor5Field(
1✔
20
        blank=True,
21
        verbose_name=_("Official feedback"),
22
    )
23

24
    def save(self, update_fields=None, *args, **kwargs):
1✔
25
        self.feedback_text = transforms.clean_html_field(self.feedback_text)
×
26
        if update_fields:
×
27
            update_fields = {"feedback_text"}.union(update_fields)
×
28
        super().save(update_fields=update_fields, *args, **kwargs)
×
29

30

31
class Moderateable(models.Model):
1✔
32
    moderator_status_choices = DEFAULT_CHOICES
1✔
33

34
    moderator_status = fields.ModeratorFeedbackField(
1✔
35
        verbose_name=_("Processing status"),
36
        help_text=_(
37
            "The editing status appears below the title of the "
38
            "idea in red, yellow or green. The idea provider receives a "
39
            "notification."
40
        ),
41
    )
42

43
    moderator_feedback_text = models.OneToOneField(
1✔
44
        ModeratorFeedback,
45
        related_name="+",
46
        null=True,
47
        blank=True,
48
        on_delete=models.CASCADE,
49
    )
50

51
    class Meta:
1✔
52
        abstract = True
1✔
53

54

55
class ModeratorCommentFeedback(UserGeneratedContentModel):
1✔
56
    feedback_text = CKEditor5Field(
1✔
57
        blank=True,
58
        verbose_name=_("Moderator feedback"),
59
    )
60
    comment = models.OneToOneField(
1✔
61
        Comment, on_delete=models.CASCADE, related_name="moderator_feedback"
62
    )
63

64
    @property
1✔
65
    def project(self):
1✔
66
        return self.comment.project
×
67

68
    def __str__(self):
1✔
69
        return ("{} - {}").format(self.comment.id, self.feedback_text)
×
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