diff --git a/board/admin.py b/board/admin.py index e4f29a8..6ecc685 100644 --- a/board/admin.py +++ b/board/admin.py @@ -1,10 +1,15 @@ -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 +from board.models import ( + Ban, + BanTemplate, + Board, + Post, + RangeBan, + ReportReason, + ReportRecord, +) # # Admin sites @@ -24,10 +29,6 @@ class ReportReasonAdmin(admin.ModelAdmin): pass -class BanFromReportForm(forms.ModelForm): - pass - - @admin.register(ReportRecord) class ReportRecordAdmin(admin.ModelAdmin): ordering = ( @@ -76,3 +77,8 @@ class RangeBanAdmin(admin.ModelAdmin): @admin.register(Ban) class BanAdmin(admin.ModelAdmin): pass + + +@admin.register(BanTemplate) +class BanTemplateAdmin(admin.ModelAdmin): + ordering = ("board__url", "name") diff --git a/board/models.py b/board/models.py index d32b33b..1b53df8 100644 --- a/board/models.py +++ b/board/models.py @@ -311,11 +311,21 @@ class Ban(BanCommon): class BanTemplate(models.Model): + # The name of this template + name = models.CharField(max_length=100) # The reason for this ban ban_reason = models.TextField(blank=False) - # The duration of the ban - duration = models.DurationField() + # The duration of the ban, in days + duration = models.IntegerField(blank=True, null=True) + # The board that this template is for, or none. + board = models.ForeignKey("Board", on_delete=models.CASCADE, null=True, blank=True) def create_ban(self, ip: str) -> Ban: expires = timezone.now() + self.duration return Ban.objects.create(ip=ip, ban_reason=self.ban_reason, expires=expires) + + def __str__(self) -> str: + if self.board: + return f"/{self.board.url}/ - {self.name}" + else: + return self.name diff --git a/board/templates/board/ban_form.html b/board/templates/board/ban_form.html index 918ff12..0d89013 100644 --- a/board/templates/board/ban_form.html +++ b/board/templates/board/ban_form.html @@ -2,7 +2,7 @@ {% load i18n %} {% block content %} -