diff --git a/users/admin.py b/users/admin.py index 2ff86b6a..c7772e1b 100644 --- a/users/admin.py +++ b/users/admin.py @@ -2,6 +2,5 @@ from django.contrib import admin from .models import * -admin.site.register(Report) admin.site.register(User) admin.site.register(Preference) diff --git a/users/forms.py b/users/forms.py deleted file mode 100644 index 85d1c0e3..00000000 --- a/users/forms.py +++ /dev/null @@ -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": _("详情")} diff --git a/users/migrations/0001_initial.py b/users/migrations/0001_initial.py index 6f4dd85b..65d1fa0c 100644 --- a/users/migrations/0001_initial.py +++ b/users/migrations/0001_initial.py @@ -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( diff --git a/users/models/__init__.py b/users/models/__init__.py index 94a8afef..deae32bb 100644 --- a/users/models/__init__.py +++ b/users/models/__init__.py @@ -1,5 +1,4 @@ from .apidentity import APIdentity from .preference import Preference -from .report import Report from .task import Task from .user import User diff --git a/users/models/report.py b/users/models/report.py deleted file mode 100644 index d89103a3..00000000 --- a/users/models/report.py +++ /dev/null @@ -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) diff --git a/users/templates/users/manage_report.html b/users/templates/users/manage_report.html deleted file mode 100644 index e12f2e36..00000000 --- a/users/templates/users/manage_report.html +++ /dev/null @@ -1,33 +0,0 @@ -{% load static %} -{% load i18n %} -{% load admin_url %} -{% load mastodon %} -{% load oauth_token %} -{% load truncate %} - - - - - - {{ site_name }} - {% trans '管理投诉' %} - {% include "common_libs.html" %} - - - {% include "_header.html" %} -
- {% for report in reports %} -
-
- {{ report.submit_user.display_name }} - {% trans '投诉了' %} - {{ report.reported_user.display_name }} - @{{ report.submitted_time }} -
-

{{ report.message }}

- {% if report.image %}{% endif %} -
- {% endfor %} -
- {% include "_footer.html" %} - - diff --git a/users/templates/users/report.html b/users/templates/users/report.html deleted file mode 100644 index a2dedbc6..00000000 --- a/users/templates/users/report.html +++ /dev/null @@ -1,43 +0,0 @@ -{% load static %} -{% load i18n %} -{% load admin_url %} -{% load mastodon %} -{% load oauth_token %} -{% load truncate %} - - - - - - {{ site_name }} - {% trans '投诉用户' %} - {% include "common_libs.html" %} - - - {% include "_header.html" %} -
-
- {% csrf_token %} - {{ form }} - -
-
- {% include "_footer.html" %} - - - diff --git a/users/urls.py b/users/urls.py index 5ef5a19b..9a7d16e6 100644 --- a/users/urls.py +++ b/users/urls.py @@ -51,8 +51,6 @@ urlpatterns = [ path("unmute/", unmute, name="unmute"), path("block/", block, name="block"), path("unblock/", unblock, name="unblock"), - path("report", report, name="report"), - path("manage_report", manage_report, name="manage_report"), path( "mark_announcements_read/", mark_announcements_read, diff --git a/users/views.py b/users/views.py index 628aaf00..1522a6b5 100644 --- a/users/views.py +++ b/users/views.py @@ -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":