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>
55 lines
2.1 KiB
Python
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)
|