feat(shard): ✨ Let people know when their report helped moderators ban or warn someone.

This commit is contained in:
2025-03-19 19:43:46 -03:00
parent c2146f21ab
commit ee47e11c7f
6 changed files with 56 additions and 10 deletions
@@ -0,0 +1,13 @@
from tortoise import BaseDBAsyncClient
async def upgrade(db: BaseDBAsyncClient) -> str:
return """
ALTER TABLE "report" ADD "reported_by_id" BIGINT;
ALTER TABLE "report" ADD CONSTRAINT "fk_report_user_3a7d2f49" FOREIGN KEY ("reported_by_id") REFERENCES "user" ("id") ON DELETE CASCADE;"""
async def downgrade(db: BaseDBAsyncClient) -> str:
return """
ALTER TABLE "report" DROP CONSTRAINT IF EXISTS "fk_report_user_3a7d2f49";
ALTER TABLE "report" DROP COLUMN "reported_by_id";"""
+12 -3
View File
@@ -28,8 +28,13 @@ class Report(models.Model):
reply_user_avatar_url = fields.TextField(null=True, default=None)
created_at = fields.DatetimeField(auto_now_add=True)
resolved = fields.BooleanField(default=False, index=True)
reported_by = fields.ForeignKeyField(
"models.User", related_name="reports", null=True
)
resolved_at = fields.DatetimeField(null=True)
resolved_by = fields.ForeignKeyField("models.User", null=True)
resolved_by = fields.ForeignKeyField(
"models.User", related_name="resolved_reports", null=True
)
class UserFlag(enum.IntFlag):
@@ -150,7 +155,9 @@ class Ban(models.Model):
created_at = fields.DatetimeField(auto_now_add=True)
expires_at = fields.DatetimeField(null=True)
created_by = fields.ForeignKeyField("models.User", related_name="created_bans")
expired_by = fields.ForeignKeyField("models.User", related_name="expired_bans", null=True)
expired_by = fields.ForeignKeyField(
"models.User", related_name="expired_bans", null=True
)
@property
def is_expired(self) -> bool:
@@ -158,7 +165,9 @@ class Ban(models.Model):
Whether the ban is expired.
"""
return self.expires_at is not None and self.expires_at < datetime.now(timezone.utc)
return self.expires_at is not None and self.expires_at < datetime.now(
timezone.utc
)
class Meta:
"""