""" flagged for moderation """ from django.db import models from django.db.models import F, Q 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) statuses = models.ManyToManyField("Status", blank=True) resolved = models.BooleanField(default=False) class Meta: """ don't let users report themselves """ constraints = [ models.CheckConstraint(check=~Q(reporter=F("user")), name="self_report") ] ordering = ("-created_date",) 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) class Meta: """ sort comments """ ordering = ("-created_date",)