mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-11-23 01:51:08 +00:00
Updates report model
This commit is contained in:
parent
3ce8b3390e
commit
ad41f19dc5
11 changed files with 93 additions and 19 deletions
|
@ -495,7 +495,7 @@ class GroupForm(CustomForm):
|
||||||
class ReportForm(CustomForm):
|
class ReportForm(CustomForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.Report
|
model = models.Report
|
||||||
fields = ["user", "reporter", "statuses", "links", "note"]
|
fields = ["user", "reporter", "status", "links", "note"]
|
||||||
|
|
||||||
|
|
||||||
class EmailBlocklistForm(CustomForm):
|
class EmailBlocklistForm(CustomForm):
|
||||||
|
|
37
bookwyrm/migrations/0139_report_status.py
Normal file
37
bookwyrm/migrations/0139_report_status.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Generated by Django 3.2.12 on 2022-02-24 20:41
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
def set_report_statuses(apps, schema_editor):
|
||||||
|
"""copy over status fields"""
|
||||||
|
db_alias = schema_editor.connection.alias
|
||||||
|
report_model = apps.get_model("bookwyrm", "Report")
|
||||||
|
reports = report_model.objects.using(db_alias).filter(statuses__isnull=False)
|
||||||
|
for report in reports:
|
||||||
|
report.status = report.statuses.first()
|
||||||
|
report.save()
|
||||||
|
|
||||||
|
def set_reverse(apps, schema_editor):
|
||||||
|
"""copy over status fields"""
|
||||||
|
db_alias = schema_editor.connection.alias
|
||||||
|
report_model = apps.get_model("bookwyrm", "Report")
|
||||||
|
reports = report_model.objects.using(db_alias).filter(status__isnull=False)
|
||||||
|
for report in reports:
|
||||||
|
report.statuses.set(report.status)
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('bookwyrm', '0138_automod'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='report',
|
||||||
|
name='status',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='reports', to='bookwyrm.status'),
|
||||||
|
),
|
||||||
|
migrations.RunPython(set_report_statuses, reverse_code=set_reverse),
|
||||||
|
]
|
17
bookwyrm/migrations/0140_remove_report_statuses.py
Normal file
17
bookwyrm/migrations/0140_remove_report_statuses.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# Generated by Django 3.2.12 on 2022-02-24 20:43
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('bookwyrm', '0139_report_status'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='report',
|
||||||
|
name='statuses',
|
||||||
|
),
|
||||||
|
]
|
19
bookwyrm/migrations/0141_alter_report_status.py
Normal file
19
bookwyrm/migrations/0141_alter_report_status.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Generated by Django 3.2.12 on 2022-02-24 20:50
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('bookwyrm', '0140_remove_report_statuses'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='report',
|
||||||
|
name='status',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='bookwyrm.status'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -109,7 +109,7 @@ def automod_statuses(reporter):
|
||||||
reporter=reporter,
|
reporter=reporter,
|
||||||
note=_("Automatically generated report"),
|
note=_("Automatically generated report"),
|
||||||
user=s.user,
|
user=s.user,
|
||||||
statuses=[s.id],
|
status=s,
|
||||||
)
|
)
|
||||||
for s in statuses
|
for s in statuses
|
||||||
]
|
]
|
||||||
|
|
|
@ -12,7 +12,12 @@ class Report(BookWyrmModel):
|
||||||
)
|
)
|
||||||
note = models.TextField(null=True, blank=True)
|
note = models.TextField(null=True, blank=True)
|
||||||
user = models.ForeignKey("User", on_delete=models.PROTECT)
|
user = models.ForeignKey("User", on_delete=models.PROTECT)
|
||||||
statuses = models.ManyToManyField("Status", blank=True)
|
status = models.ForeignKey(
|
||||||
|
"Status",
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
on_delete=models.PROTECT,
|
||||||
|
)
|
||||||
links = models.ManyToManyField("Link", blank=True)
|
links = models.ManyToManyField("Link", blank=True)
|
||||||
resolved = models.BooleanField(default=False)
|
resolved = models.BooleanField(default=False)
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
<div class="notification content">
|
<div class="notification content">
|
||||||
<p>
|
<p>
|
||||||
{% trans "Auto-moderation rules will create reports for any user or status with fields matching the provided string." %}
|
{% trans "Auto-moderation rules will create reports for any user or status with fields matching the provided string." %}
|
||||||
|
{% trans "Users or statuses that have already been reported (regardless of whether the report was resolved) will not be flagged." %}
|
||||||
{% trans "At this time, reports are <em>not</em> being generated automatically, and you must manually trigger a scan." %}
|
{% trans "At this time, reports are <em>not</em> being generated automatically, and you must manually trigger a scan." %}
|
||||||
</p>
|
</p>
|
||||||
<form name="run-scan" method="POST" action="{% url 'settings-automod-run' %}">
|
<form name="run-scan" method="POST" action="{% url 'settings-automod-run' %}">
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{% extends 'settings/layout.html' %}
|
{% extends 'settings/layout.html' %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load humanize %}
|
{% load humanize %}
|
||||||
|
{% load feed_page_tags %}
|
||||||
|
|
||||||
{% block title %}
|
{% block title %}
|
||||||
{% include "settings/reports/report_header.html" with report=report %}
|
{% include "settings/reports/report_header.html" with report=report %}
|
||||||
|
@ -30,20 +31,14 @@
|
||||||
</details>
|
</details>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if report.statuses.exists %}
|
{% if report.status %}
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<h3 class="title is-4">{% trans "Reported statuses" %}</h3>
|
<h3 class="title is-4">{% trans "Reported status" %}</h3>
|
||||||
<ul>
|
{% if report.status.deleted %}
|
||||||
{% for status in report.statuses.select_subclasses.all %}
|
|
||||||
<li>
|
|
||||||
{% if status.deleted %}
|
|
||||||
<em>{% trans "Status has been deleted" %}</em>
|
<em>{% trans "Status has been deleted" %}</em>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% include 'snippets/status/status.html' with status=status moderation_mode=True %}
|
{% include 'snippets/status/status.html' with status=report.status|load_subclass moderation_mode=True %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load utilities %}
|
{% load utilities %}
|
||||||
|
|
||||||
{% if report.statuses.exists %}
|
{% if report.status %}
|
||||||
|
|
||||||
{% blocktrans trimmed with report_id=report.id username=report.user|username %}
|
{% blocktrans trimmed with report_id=report.id username=report.user|username %}
|
||||||
Report #{{ report_id }}: Status posted by @{{ username }}
|
Report #{{ report_id }}: Status posted by @{{ username }}
|
||||||
|
|
|
@ -12,6 +12,6 @@
|
||||||
>
|
>
|
||||||
{% trans "Report" %}
|
{% trans "Report" %}
|
||||||
</button>
|
</button>
|
||||||
{% include 'snippets/report_modal.html' with user=user id=modal_id status=status.id %}
|
{% include 'snippets/report_modal.html' with user=user id=modal_id status_id=status.id %}
|
||||||
|
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
<input type="hidden" name="reporter" value="{{ request.user.id }}">
|
<input type="hidden" name="reporter" value="{{ request.user.id }}">
|
||||||
<input type="hidden" name="user" value="{{ user.id }}">
|
<input type="hidden" name="user" value="{{ user.id }}">
|
||||||
{% if status_id %}
|
{% if status_id %}
|
||||||
<input type="hidden" name="statuses" value="{{ status_id }}">
|
<input type="hidden" name="status" value="{{ status_id }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if link %}
|
{% if link %}
|
||||||
<input type="hidden" name="links" value="{{ link.id }}">
|
<input type="hidden" name="links" value="{{ link.id }}">
|
||||||
|
|
Loading…
Reference in a new issue