feat(bot): ✨ Add remaining reports counter to p.reports.

This commit is contained in:
Nyeki.py
2024-10-18 04:27:56 -03:00
parent 39232cf781
commit dc0aadc8f4
3 changed files with 18 additions and 7 deletions
+12 -4
View File
@@ -2,7 +2,7 @@ import discord
from discord.ext import pages
from discord.utils import find
from tortoise import transactions
from tortoise import transactions, functions
from payphone import bot
from payphone.db import models
@@ -55,12 +55,15 @@ class BanNotificationView(discord.ui.View):
class ReportView(discord.ui.View):
"""The view sent together with the report embed."""
def __init__(self, bot: bot.Payphone, report: models.Report) -> None:
def __init__(
self, bot: bot.Payphone, report: models.Report, remaining_reports: int
) -> None:
"""Initializes the view.
Args:
bot (bot.Payphone): The bot.
report (models.Report): The report.
remaining_reports (int): The amount of reports that need to be reviewed remaining.
"""
super().__init__(timeout=300, disable_on_timeout=True)
@@ -96,6 +99,9 @@ class ReportView(discord.ui.View):
actions.callback = actions_callback
self.add_item(actions)
self.add_item(
discord.ui.Button(label=f"Remaining: {remaining_reports}", disabled=True, row=2)
)
@discord.ui.button(label="Message Logs", style=discord.ButtonStyle.gray, row=2)
async def message_logs(
@@ -181,6 +187,7 @@ class ReportView(discord.ui.View):
.select_related("call")
.prefetch_related("call__call_rss", "call__call_rss__profile")
)
total = await models.Report.filter(status=models.ReportStatus.ON_REVIEW).count()
if report is None:
await interaction.response.edit_message(
@@ -192,7 +199,7 @@ class ReportView(discord.ui.View):
await interaction.response.edit_message(
embed=embeds.ReportEmbed(self.bot, report),
view=views.ReportView(self.bot, report),
view=views.ReportView(self.bot, report, total),
)
@discord.ui.button(label="Decline", style=discord.ButtonStyle.red, row=2)
@@ -213,6 +220,7 @@ class ReportView(discord.ui.View):
.select_related("call")
.prefetch_related("call__call_rss", "call__call_rss__profile")
)
total = await models.Report.filter(status=models.ReportStatus.ON_REVIEW).count()
if report is None:
await interaction.response.edit_message(
@@ -224,5 +232,5 @@ class ReportView(discord.ui.View):
await interaction.response.edit_message(
embed=embeds.ReportEmbed(self.bot, report),
view=views.ReportView(self.bot, report),
view=views.ReportView(self.bot, report, total),
)