##// END OF EJS Templates
Moved ban view to class-based
neko259 -
r553:fd6431be 1.7-dev
parent child Browse files
Show More
@@ -0,0 +1,20 b''
1 from django.db import transaction
2
3 from boards.views.base import BaseBoardView
4 from boards.models import Post, Ban
5
6 class BanUserView(BaseBoardView):
7
8 @transaction.atomic
9 def get(self, request, post_id):
10 user = self._get_user(request)
11 post = get_object_or_404(Post, id=post_id)
12
13 if user.is_moderator():
14 # TODO Show confirmation page before ban
15 ban, created = Ban.objects.get_or_create(ip=post.poster_ip)
16 if created:
17 ban.reason = 'Banned for post ' + str(post_id)
18 ban.save()
19
20 return self.redirect_to_next(request)
@@ -5,6 +5,7 b' from boards.views import api, tag_thread'
5 login, settings, all_tags
5 login, settings, all_tags
6 from boards.views.authors import AuthorsView
6 from boards.views.authors import AuthorsView
7 from boards.views.delete_post import DeletePostView
7 from boards.views.delete_post import DeletePostView
8 from boards.views.ban import BanUserView
8
9
9 js_info_dict = {
10 js_info_dict = {
10 'packages': ('boards',),
11 'packages': ('boards',),
@@ -52,7 +53,7 b" urlpatterns = patterns('',"
52 url(r'^authors/$', AuthorsView.as_view(), name='authors'),
53 url(r'^authors/$', AuthorsView.as_view(), name='authors'),
53 url(r'^delete/(?P<post_id>\w+)/$', DeletePostView.as_view(),
54 url(r'^delete/(?P<post_id>\w+)/$', DeletePostView.as_view(),
54 name='delete'),
55 name='delete'),
55 url(r'^ban/(?P<post_id>\w+)/$', views.ban, name='ban'),
56 url(r'^ban/(?P<post_id>\w+)/$', BanUserView.as_view(), name='ban'),
56
57
57 url(r'^banned/$', views.banned.BannedView.as_view(), name='banned'),
58 url(r'^banned/$', views.banned.BannedView.as_view(), name='banned'),
58 url(r'^staticpage/(?P<name>\w+)/$', views.static_page, name='staticpage'),
59 url(r'^staticpage/(?P<name>\w+)/$', views.static_page, name='staticpage'),
@@ -43,40 +43,6 b' def jump_to_post(request, post_id):'
43
43
44
44
45
45
46 @transaction.atomic
47 def delete(request, post_id):
48 """Delete post"""
49
50 user = _get_user(request)
51 post = get_object_or_404(Post, id=post_id)
52
53 if user.is_moderator():
54 # TODO Show confirmation page before deletion
55 Post.objects.delete_post(post)
56
57 if not post.thread:
58 return _redirect_to_next(request)
59 else:
60 return redirect('thread', post_id=post.thread.id)
61
62
63 @transaction.atomic
64 def ban(request, post_id):
65 """Ban user"""
66
67 user = _get_user(request)
68 post = get_object_or_404(Post, id=post_id)
69
70 if user.is_moderator():
71 # TODO Show confirmation page before ban
72 ban, created = Ban.objects.get_or_create(ip=post.poster_ip)
73 if created:
74 ban.reason = 'Banned for post ' + str(post_id)
75 ban.save()
76
77 return _redirect_to_next(request)
78
79
80 def page_404(request):
46 def page_404(request):
81 """Show page 404 (not found error)"""
47 """Show page 404 (not found error)"""
82
48
General Comments 0
You need to be logged in to leave comments. Login now