Files
interchan/board/admin.py

79 lines
1.8 KiB
Python
Raw Normal View History

from django import forms
from django.contrib import admin
from django.http.response import HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from django.utils.safestring import mark_safe
from board.models import Ban, Board, Post, RangeBan, ReportReason, ReportRecord
#
# 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
class BanFromReportForm(forms.ModelForm):
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'<img src="{obj.post.thumbnail.url}" />')
else:
return None
def post_body(self, obj):
html = ""
if obj.urgent:
html += '<div class="urgent">'
else:
html += "<div>"
if obj.post.subject:
html += f"<p><strong>{obj.post.subject}</strong></p>"
html += f"<p>{obj.post.text}</p>"
html += "</div>"
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'<a href="#" data-ban-url="{ban_url}" class="ban_link">Ban</a>'
)
@admin.register(RangeBan)
class RangeBanAdmin(admin.ModelAdmin):
pass
@admin.register(Ban)
class BanAdmin(admin.ModelAdmin):
pass