remove report model which is no longer in use

This commit is contained in:
Your Name 2024-04-13 01:21:28 -04:00 committed by Henri Dickson
parent 43907cb48d
commit 7ab1187b47
9 changed files with 1 additions and 237 deletions

View file

@ -2,6 +2,5 @@ from django.contrib import admin
from .models import * from .models import *
admin.site.register(Report)
admin.site.register(User) admin.site.register(User)
admin.site.register(Preference) admin.site.register(Preference)

View file

@ -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": _("详情")}

View file

@ -8,7 +8,6 @@ from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
import users.models import users.models
from users.models.report import report_image_path
class Migration(migrations.Migration): class Migration(migrations.Migration):
@ -177,47 +176,6 @@ class Migration(migrations.Migration):
("no_anonymous_view", models.PositiveSmallIntegerField(default=0)), ("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( migrations.AddConstraint(
model_name="user", model_name="user",
constraint=models.UniqueConstraint( constraint=models.UniqueConstraint(

View file

@ -1,5 +1,4 @@
from .apidentity import APIdentity from .apidentity import APIdentity
from .preference import Preference from .preference import Preference
from .report import Report
from .task import Task from .task import Task
from .user import User from .user import User

View file

@ -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)

View file

@ -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>

View file

@ -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>

View file

@ -51,8 +51,6 @@ urlpatterns = [
path("unmute/<str:user_name>", unmute, name="unmute"), path("unmute/<str:user_name>", unmute, name="unmute"),
path("block/<str:user_name>", block, name="block"), path("block/<str:user_name>", block, name="block"),
path("unblock/<str:user_name>", unblock, name="unblock"), path("unblock/<str:user_name>", unblock, name="unblock"),
path("report", report, name="report"),
path("manage_report", manage_report, name="manage_report"),
path( path(
"mark_announcements_read/", "mark_announcements_read/",
mark_announcements_read, mark_announcements_read,

View file

@ -20,8 +20,7 @@ from takahe.utils import Takahe
from .account import * from .account import *
from .data import * from .data import *
from .forms import ReportForm from .models import APIdentity, Preference, User
from .models import APIdentity, Preference, Report, User
from .profile import account_info, account_profile from .profile import account_info, account_profile
@ -216,67 +215,6 @@ def set_layout(request: AuthedHttpRequest):
raise BadRequest() 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 @login_required
def mark_announcements_read(request: AuthedHttpRequest): def mark_announcements_read(request: AuthedHttpRequest):
if request.method == "POST": if request.method == "POST":