aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Chris Lovering <[email protected]>2021-11-01 17:20:42 +0000
committerGravatar Chris Lovering <[email protected]>2021-12-01 01:10:40 +0000
commitc217c3ef658954f2d491529a2a5c2085a285c229 (patch)
tree2aa34396958865f3fe70467d06126ad29d73fc83
parentRefactor make_review to return nominee too (diff)
Manage nomination threads
This change creates a thread while posting the nomination, and then archives it once the nomination is concluded.
-rw-r--r--bot/exts/recruitment/talentpool/_review.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/bot/exts/recruitment/talentpool/_review.py b/bot/exts/recruitment/talentpool/_review.py
index 6b5fae3b1..bc5cccda1 100644
--- a/bot/exts/recruitment/talentpool/_review.py
+++ b/bot/exts/recruitment/talentpool/_review.py
@@ -15,7 +15,7 @@ from discord.ext.commands import Context
from bot.api import ResponseCodeError
from bot.bot import Bot
-from bot.constants import Channels, Colours, Emojis, Guild
+from bot.constants import Channels, Colours, DEFAULT_THREAD_ARCHIVE_TIME, Emojis, Guild, Roles
from bot.log import get_logger
from bot.utils.members import get_or_fetch_member
from bot.utils.messages import count_unique_users_reaction, pin_no_system_message
@@ -95,6 +95,12 @@ class Reviewer:
for reaction in (reviewed_emoji, "\N{THUMBS UP SIGN}", "\N{THUMBS DOWN SIGN}"):
await last_message.add_reaction(reaction)
+ thread = await last_message.create_thread(
+ name=f"Nomination - {nominee}",
+ auto_archive_duration=DEFAULT_THREAD_ARCHIVE_TIME
+ )
+ await thread.send(fr"<@&{Roles.mod_team}> <@&{Roles.admins}>")
+
if update_database:
nomination = self._pool.cache.get(user_id)
await self.bot.api_client.patch(f"bot/nominations/{nomination['id']}", json={"reviewed": True})
@@ -210,6 +216,13 @@ class Reviewer:
colour=colour
))
+ # Thread channel IDs are the same as the message ID of the parent message.
+ nomination_thread = message.guild.get_thread(message.id)
+ if not nomination_thread:
+ log.warning(f"Could not find a thread linked to {message.channel.id}-{message.id}")
+ return
+ await nomination_thread.edit(archived=True)
+
for message_ in messages:
await message_.delete()