moviewyrm/bookwyrm/models/report.py

33 lines
1,001 B
Python
Raw Normal View History

2021-03-09 01:16:59 +00:00
""" flagged for moderation """
from django.db import models
2021-03-09 02:36:34 +00:00
from django.db.models import F, Q
2021-03-09 01:16:59 +00: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-09 02:36:34 +00:00
statuses = models.ManyToManyField("Status", null=True, blank=True)
2021-03-09 01:16:59 +00:00
resolved = models.BooleanField(default=False)
2021-03-09 02:36:34 +00:00
class Meta:
""" don't let users report themselves """
constraints = [
models.CheckConstraint(
check=~Q(reporter=F('user')),
name='self_report'
)
]
2021-03-09 01:16:59 +00: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)