remove report model which is no longer in use
This commit is contained in:
parent
43907cb48d
commit
7ab1187b47
9 changed files with 1 additions and 237 deletions
|
@ -2,6 +2,5 @@ from django.contrib import admin
|
|||
|
||||
from .models import *
|
||||
|
||||
admin.site.register(Report)
|
||||
admin.site.register(User)
|
||||
admin.site.register(Preference)
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from common.forms import PreviewImageInput
|
||||
|
||||
from .models import Report
|
||||
|
||||
|
||||
class ReportForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Report
|
||||
fields = [
|
||||
"reported_user",
|
||||
"image",
|
||||
"message",
|
||||
]
|
||||
widgets = {
|
||||
"message": forms.Textarea(attrs={"placeholder": _("详情")}),
|
||||
"image": PreviewImageInput(),
|
||||
"reported_user": forms.HiddenInput(),
|
||||
}
|
||||
labels = {"reported_user": _("投诉对象"), "image": _("相关证据"), "message": _("详情")}
|
|
@ -8,7 +8,6 @@ from django.conf import settings
|
|||
from django.db import migrations, models
|
||||
|
||||
import users.models
|
||||
from users.models.report import report_image_path
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
@ -177,47 +176,6 @@ class Migration(migrations.Migration):
|
|||
("no_anonymous_view", models.PositiveSmallIntegerField(default=0)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Report",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"image",
|
||||
models.ImageField(
|
||||
blank=True, default="", upload_to=report_image_path
|
||||
),
|
||||
),
|
||||
("is_read", models.BooleanField(default=False)),
|
||||
("submitted_time", models.DateTimeField(auto_now_add=True)),
|
||||
("message", models.CharField(max_length=1000)),
|
||||
(
|
||||
"reported_user",
|
||||
models.ForeignKey(
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name="accused_reports",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
(
|
||||
"submit_user",
|
||||
models.ForeignKey(
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name="sumbitted_reports",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.AddConstraint(
|
||||
model_name="user",
|
||||
constraint=models.UniqueConstraint(
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
from .apidentity import APIdentity
|
||||
from .preference import Preference
|
||||
from .report import Report
|
||||
from .task import Task
|
||||
from .user import User
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
from django.conf import settings
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from loguru import logger
|
||||
|
||||
from common.utils import GenerateDateUUIDMediaFilePath
|
||||
from mastodon.api import *
|
||||
|
||||
from .user import User
|
||||
|
||||
|
||||
def report_image_path(instance, filename):
|
||||
return GenerateDateUUIDMediaFilePath(filename, settings.REPORT_MEDIA_PATH_ROOT)
|
||||
|
||||
|
||||
class Report(models.Model):
|
||||
submit_user = models.ForeignKey(
|
||||
User, on_delete=models.SET_NULL, related_name="sumbitted_reports", null=True
|
||||
)
|
||||
reported_user = models.ForeignKey(
|
||||
User, on_delete=models.SET_NULL, related_name="accused_reports", null=True
|
||||
)
|
||||
image = models.ImageField(
|
||||
upload_to=report_image_path,
|
||||
blank=True,
|
||||
default="",
|
||||
)
|
||||
is_read = models.BooleanField(default=False)
|
||||
submitted_time = models.DateTimeField(auto_now_add=True)
|
||||
message = models.CharField(max_length=1000)
|
|
@ -1,33 +0,0 @@
|
|||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load admin_url %}
|
||||
{% load mastodon %}
|
||||
{% load oauth_token %}
|
||||
{% load truncate %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ site_name }} - {% trans '管理投诉' %}</title>
|
||||
{% include "common_libs.html" %}
|
||||
</head>
|
||||
<body>
|
||||
{% include "_header.html" %}
|
||||
<main class="container">
|
||||
{% for report in reports %}
|
||||
<article>
|
||||
<header>
|
||||
<a href="{{ report.submit_user.url }}">{{ report.submit_user.display_name }}</a>
|
||||
{% trans '投诉了' %}
|
||||
<a href="{{ report.reported_user.url }}">{{ report.reported_user.display_name }}</a>
|
||||
@{{ report.submitted_time }}
|
||||
</header>
|
||||
<p>{{ report.message }}</p>
|
||||
{% if report.image %}<img src="{{ report.image.url }}" alt="" style="max-height: 80vh;">{% endif %}
|
||||
</article>
|
||||
{% endfor %}
|
||||
</main>
|
||||
{% include "_footer.html" %}
|
||||
</body>
|
||||
</html>
|
|
@ -1,43 +0,0 @@
|
|||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load admin_url %}
|
||||
{% load mastodon %}
|
||||
{% load oauth_token %}
|
||||
{% load truncate %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ site_name }} - {% trans '投诉用户' %}</title>
|
||||
{% include "common_libs.html" %}
|
||||
</head>
|
||||
<body>
|
||||
{% include "_header.html" %}
|
||||
<div class="container">
|
||||
<form action="{% url 'users:report' %}"
|
||||
method="post"
|
||||
enctype="multipart/form-data"
|
||||
class="report-form">
|
||||
{% csrf_token %}
|
||||
{{ form }}
|
||||
<input class="button" type="submit" value="{% trans '提交' %}">
|
||||
</form>
|
||||
</div>
|
||||
{% include "_footer.html" %}
|
||||
<script>
|
||||
// preview uploaded pic
|
||||
$("input[type='file']").on("change", function () {
|
||||
if (this.files && this.files[0]) {
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onload = function (e) {
|
||||
$('#previewImage').attr('src', e.target.result);
|
||||
}
|
||||
|
||||
reader.readAsDataURL(this.files[0]);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -51,8 +51,6 @@ urlpatterns = [
|
|||
path("unmute/<str:user_name>", unmute, name="unmute"),
|
||||
path("block/<str:user_name>", block, name="block"),
|
||||
path("unblock/<str:user_name>", unblock, name="unblock"),
|
||||
path("report", report, name="report"),
|
||||
path("manage_report", manage_report, name="manage_report"),
|
||||
path(
|
||||
"mark_announcements_read/",
|
||||
mark_announcements_read,
|
||||
|
|
|
@ -20,8 +20,7 @@ from takahe.utils import Takahe
|
|||
|
||||
from .account import *
|
||||
from .data import *
|
||||
from .forms import ReportForm
|
||||
from .models import APIdentity, Preference, Report, User
|
||||
from .models import APIdentity, Preference, User
|
||||
from .profile import account_info, account_profile
|
||||
|
||||
|
||||
|
@ -216,67 +215,6 @@ def set_layout(request: AuthedHttpRequest):
|
|||
raise BadRequest()
|
||||
|
||||
|
||||
@login_required
|
||||
def report(request: AuthedHttpRequest):
|
||||
if request.method == "GET":
|
||||
user_id = request.GET.get("user_id")
|
||||
if user_id:
|
||||
user = get_object_or_404(User, pk=user_id)
|
||||
form = ReportForm(initial={"reported_user": user})
|
||||
else:
|
||||
form = ReportForm()
|
||||
return render(
|
||||
request,
|
||||
"users/report.html",
|
||||
{
|
||||
"form": form,
|
||||
},
|
||||
)
|
||||
elif request.method == "POST":
|
||||
form = ReportForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
form.instance.is_read = False
|
||||
form.instance.submit_user = request.user
|
||||
form.save()
|
||||
dw = settings.DISCORD_WEBHOOKS.get("user-report")
|
||||
if dw:
|
||||
webhook = SyncWebhook.from_url(dw)
|
||||
webhook.send(
|
||||
f"New report from {request.user} about {form.instance.reported_user} : {form.instance.message}"
|
||||
)
|
||||
return redirect(reverse("common:home"))
|
||||
else:
|
||||
return render(
|
||||
request,
|
||||
"users/report.html",
|
||||
{
|
||||
"form": form,
|
||||
},
|
||||
)
|
||||
else:
|
||||
raise BadRequest()
|
||||
|
||||
|
||||
@login_required
|
||||
def manage_report(request: AuthedHttpRequest):
|
||||
if not request.user.is_staff:
|
||||
raise PermissionDenied()
|
||||
if request.method == "GET":
|
||||
reports = Report.objects.all()
|
||||
for r in reports.filter(is_read=False):
|
||||
r.is_read = True
|
||||
r.save()
|
||||
return render(
|
||||
request,
|
||||
"users/manage_report.html",
|
||||
{
|
||||
"reports": reports,
|
||||
},
|
||||
)
|
||||
else:
|
||||
raise BadRequest()
|
||||
|
||||
|
||||
@login_required
|
||||
def mark_announcements_read(request: AuthedHttpRequest):
|
||||
if request.method == "POST":
|
||||
|
|
Loading…
Add table
Reference in a new issue