Files
interchan/board/urls.py
Alek Ratzloff e686c3b235 Add ActionSuccessView
ActionSuccessView is a a generic view that indicates that something was
successful, e.g. deleting a post or banning a user. This hopefully
reduces the amount of boilerplate code used for creating success pages
since most of them can derive from this generic view.

The report and delete success views are updated to use this directly.

The ban and modify success views are updated to derive from this class,
with special permissions required.

The post success view is updated to derive from this class, using a
different template.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2022-07-17 15:08:33 -07:00

55 lines
2.1 KiB
Python

from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
from django.utils.translation import gettext as _
from board.views import *
app_name = "board"
urlpatterns = [
# News views
path("news/", NewsListView.as_view(), name="board_news"),
# Board views
path("<slug:url>/", BoardView.as_view(), name="board_detail"),
path("<slug:url>/page/<int:page>/", BoardView.as_view(), name="board_detail"),
path("<slug:url>/post/<int:id>/", PostView.as_view(), name="post_detail"),
path("<slug:url>/post/create/", PostCreateView.as_view(), name="post_create"),
path("<slug:url>/reply/<int:id>/", ReplyCreateView.as_view(), name="reply_create"),
path("post/success/", PostSuccessView.as_view(), name="post_success"),
# Reports
path("report/<slug:url>/<int:id>/", ReportView.as_view(), name="report_form"),
path(
"report/success/",
ActionSuccessView.as_view(
window_timeout=settings.REPORT_WINDOW_CLOSE_TIMEOUT,
message=_("Post reported."),
),
name="report_success",
),
# Bans
path("ban/<slug:url>/<int:id>/", BanCreateView.as_view(), name="ban_create"),
path(
"ban/success/",
BanSuccessView.as_view(window_timeout=settings.ACTION_SUCCESS_CLOSE_TIMEOUT),
name="ban_success",
),
path("banned/", BannedView.as_view(), name="banned"),
# Other moderation pages
path("modify/<int:pk>/", PostModifyView.as_view(), name="post_modify"),
path(
"modify/success/",
PostModifySuccessView.as_view(
window_timeout=settings.ACTION_SUCCESS_CLOSE_TIMEOUT
),
name="post_modify_success",
),
path("post/delete/<int:pk>/", PostDeleteView.as_view(), name="post_delete"),
path(
"post/delete/success/",
ActionSuccessView.as_view(window_timeout=settings.ACTION_SUCCESS_CLOSE_TIMEOUT),
name="post_delete_success",
),
]
# TODO - make this conditional so we can serve images up with whatever server we want
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)