2021-03-08 20:16:59 -05:00
|
|
|
""" flagged for moderation """
|
|
|
|
from django.db import models
|
2021-03-08 21:36:34 -05:00
|
|
|
from django.db.models import F, Q
|
2021-03-08 20:16:59 -05:00
|
|
|
from .base_model import BookWyrmModel
|
|
|
|
|
|
|
|
|
|
|
|
class Report(BookWyrmModel):
|
|
|
|
""" reported status or user """
|
|
|
|
|
|
|
|
reporter = models.ForeignKey(
|
|
|
|
"User", related_name="reporter", on_delete=models.PROTECT
|
|
|
|
)
|
|
|
|
note = models.TextField(null=True, blank=True)
|
|
|
|
user = models.ForeignKey("User", on_delete=models.PROTECT)
|
2021-03-08 21:36:34 -05:00
|
|
|
statuses = models.ManyToManyField("Status", null=True, blank=True)
|
2021-03-08 20:16:59 -05:00
|
|
|
resolved = models.BooleanField(default=False)
|
|
|
|
|
2021-03-08 21:36:34 -05:00
|
|
|
class Meta:
|
|
|
|
""" don't let users report themselves """
|
|
|
|
constraints = [
|
|
|
|
models.CheckConstraint(
|
|
|
|
check=~Q(reporter=F('user')),
|
|
|
|
name='self_report'
|
|
|
|
)
|
|
|
|
]
|
2021-03-08 20:16:59 -05:00
|
|
|
|
|
|
|
class ReportComment(BookWyrmModel):
|
|
|
|
""" updates on a report """
|
|
|
|
|
|
|
|
user = models.ForeignKey("User", on_delete=models.PROTECT)
|
|
|
|
note = models.TextField()
|
|
|
|
report = models.ForeignKey(Report, on_delete=models.PROTECT)
|