First pass at views for reporting

This commit is contained in:
Mouse Reeve
2021-03-08 15:49:44 -08:00
parent bf255bd51d
commit ab57b5b906
9 changed files with 102 additions and 3 deletions

View File

@ -20,15 +20,16 @@ from .notifications import Notifications
from .outbox import Outbox
from .reading import edit_readthrough, create_readthrough, delete_readthrough
from .reading import start_reading, finish_reading, delete_progressupdate
from .reports import Report, Reports
from .rss_feed import RssFeed
from .password import PasswordResetRequest, PasswordReset, ChangePassword
from .tag import Tag, AddTag, RemoveTag
from .search import Search
from .shelf import Shelf
from .shelf import user_shelves_page, create_shelf, delete_shelf
from .shelf import shelve, unshelve
from .site import Site
from .status import CreateStatus, DeleteStatus
from .tag import Tag, AddTag, RemoveTag
from .updates import Updates
from .user import User, EditUser, Followers, Following
from .isbn import Isbn

38
bookwyrm/views/reports.py Normal file
View File

@ -0,0 +1,38 @@
""" moderation via flagged posts and users """
from django.contrib.auth.decorators import login_required, permission_required
from django.shortcuts import get_object_or_404
from django.template.response import TemplateResponse
from django.utils.decorators import method_decorator
from django.views import View
from bookwyrm import models
# pylint: disable= no-self-use
@method_decorator(login_required, name="dispatch")
@method_decorator(
permission_required("bookwyrm.moderate_user", raise_exception=True),
name="dispatch",
)
@method_decorator(
permission_required("bookwyrm.moderate_post", raise_exception=True),
name="dispatch",
)
class Reports(View):
""" list of reports """
def get(self, request, status="open"):
""" view current reports """
data = {
"status": status
} # {"reports": models.Report.objects.filter(status=status)}
return TemplateResponse(request, "settings/reports.html", data)
class Report(View):
""" view a specific report """
def get(self, request, report_id):
""" load a report """
data = {"report": get_object_or_404(models.REport, id=report_id)}
return TemplateResponse(request, "settings/report.html", data)