mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-09-29 06:42:04 +00:00
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
""" flagged for moderation """
|
|
from django.core.exceptions import PermissionDenied
|
|
from django.db import models
|
|
|
|
from bookwyrm.settings import DOMAIN
|
|
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, null=True, blank=True)
|
|
status = models.ForeignKey(
|
|
"Status",
|
|
null=True,
|
|
blank=True,
|
|
on_delete=models.PROTECT,
|
|
)
|
|
links = models.ManyToManyField("Link", blank=True)
|
|
resolved = models.BooleanField(default=False)
|
|
|
|
def raise_not_editable(self, viewer):
|
|
"""instead of user being the owner field, it's reporter"""
|
|
if self.reporter == viewer or viewer.has_perm("bookwyrm.moderate_user"):
|
|
return
|
|
raise PermissionDenied()
|
|
|
|
def get_remote_id(self):
|
|
return f"https://{DOMAIN}/settings/reports/{self.id}"
|
|
|
|
class Meta:
|
|
"""set order by default"""
|
|
|
|
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",)
|