diff --git a/boards/admin.py b/boards/admin.py --- a/boards/admin.py +++ b/boards/admin.py @@ -22,7 +22,21 @@ class PostAdmin(admin.ModelAdmin): bans += 1 self.message_user(request, _('{} posters were banned').format(bans)) - actions = ['ban_poster'] + def ban_with_hiding(self, request, queryset): + bans = 0 + hidden = 0 + for post in queryset: + poster_ip = post.poster_ip + ban, created = Ban.objects.get_or_create(ip=poster_ip) + if created: + bans += 1 + posts = Post.objects.filter(poster_ip=poster_ip) + hidden += posts.count() + posts.update(hidden=True) + self.message_user(request, _('{} posters were banned, {} messages were hidden').format(bans, hidden)) + + + actions = ['ban_poster', 'ban_with_hiding'] @admin.register(Tag)