Add preliminary report system

The report system is pretty low-tech. However the scaffolding is there
for a lot of new stuff. What we currently have:

* Users can create reports
* Staff can view reports
* Admins can create report templates

There's a post drop-down menu available on all posts now, too. This is
where "report post" menu item lives and other things like that can be
added too.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
2022-06-14 14:56:50 -07:00
parent ec011dc047
commit b838663d50
9 changed files with 208 additions and 16 deletions

View File

@@ -1,6 +1,6 @@
from django.conf import settings
from django.forms import ModelForm
from board.models import Post
from board.models import Post, Report
from hcaptcha.fields import hCaptchaField
@@ -41,3 +41,20 @@ class ReplyForm(PostForm):
super(ReplyForm, self).__init__(*args, **kwargs)
self.instance.op = op
self.instance.reply = reply
class ReportForm(ModelForm):
"""
A form used to create reports on posts.
This requires the board and the IP address to be specified.
"""
class Meta:
model = Report
fields = ["reason"]
def __init__(self, *args, op, board, ip, **kwargs):
super(ReportForm, self).__init__(*args, **kwargs)
self.instance.ip = ip
self.instance.post = op