from django.contrib import admin from django.urls import reverse from django.utils.safestring import mark_safe from guardian.admin import GuardedModelAdmin from board.models import * # # Admin sites # @admin.register(Board) class BoardAdmin(admin.ModelAdmin): pass @admin.register(Post) class PostAdmin(admin.ModelAdmin): pass @admin.register(ReportReason) class ReportReasonAdmin(admin.ModelAdmin): pass @admin.register(ReportRecord) class ReportRecordAdmin(admin.ModelAdmin): ordering = ( "-urgent", "-weight", ) readonly_fields = ("post", "weight", "urgent") list_display = ("post_id", "post_thumbnail", "post_body", "create_ban") save_as = False def post_id(self, obj): return obj.post.id def post_thumbnail(self, obj): if obj.post.thumbnail: return mark_safe(f'') else: return None def post_body(self, obj): html = "" if obj.urgent: html += '
' else: html += "
" if obj.post.subject: html += f"

{obj.post.subject}

" html += f"

{obj.post.text}

" html += "
" return mark_safe(html) def create_ban(self, obj): post = obj.post board = obj.post.board ban_url = reverse("board:ban_create", kwargs={"url": board.url, "id": post.id}) return mark_safe( f'Ban' ) @admin.register(RangeBan) class RangeBanAdmin(admin.ModelAdmin): pass @admin.register(Ban) class BanAdmin(admin.ModelAdmin): pass @admin.register(BanTemplate) class BanTemplateAdmin(admin.ModelAdmin): ordering = ("board__url", "name") @admin.register(Capcode) class CapcodeAdmin(GuardedModelAdmin): pass @admin.register(NewsPost) class NewsPostAdmin(admin.ModelAdmin): pass