From 24ffb02869ecb934f5dafa1bbf310000ccb0d7f1 Mon Sep 17 00:00:00 2001 From: imcompiling Date: Thu, 16 May 2024 14:41:03 -0400 Subject: [PATCH] Update CouncilMembers database with high council winners. --- classes/election_cycle.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/classes/election_cycle.py b/classes/election_cycle.py index f4c21ac..ef73269 100644 --- a/classes/election_cycle.py +++ b/classes/election_cycle.py @@ -6,7 +6,7 @@ import collections from datetime import datetime, timedelta import nextcord -from sqlalchemy import select, true +from sqlalchemy import select, true, update from sqlalchemy.orm import Session from classes.nominate_highcouncil_views import NominateHighCouncilView @@ -388,15 +388,32 @@ class ElectionCycle: stmt = select(Votes.VotedForId).where(Votes.ElectionCycle == cl_election) cl_votes = collections.Counter(session.scalars(stmt)) + election_cycle = get_election_cycle_name(self.config) try: dm_winner = max(dm_votes, key=dm_votes.get) + stmt = ( + update(CouncilMembers) + .where(CouncilMembers.ElectionCycle == election_cycle) + .where(CouncilMembers.MemberId == dm_winner) + .values(DiscordManager=True) + ) + session.execute(stmt) except ValueError: dm_winner = "No winner" try: cl_winner = max(cl_votes, key=cl_votes.get) + stmt = ( + update(CouncilMembers) + .where(CouncilMembers.ElectionCycle == election_cycle) + .where(CouncilMembers.MemberId == cl_winner) + .values(ClanLeader=True) + ) + session.execute(stmt) except ValueError: cl_winner = "No winner" + session.commit() + election_thread: nextcord.Thread = self.guild.get_thread( self.get_election_info().ThreadId ) @@ -409,7 +426,9 @@ class ElectionCycle: vote_msg: nextcord.Message = await election_thread.fetch_message(vote_msg_id) await vote_msg.edit(view=None) - highcouncil_msg: str = f"Congratulations for our high council members!\n Clan Leader: <@{cl_winner}>\n" + highcouncil_msg: str = ( + f"Congratulations for our high council members!\n Clan Leader: <@{cl_winner}>\n" + ) highcouncil_msg += f"Discord Manager: <@{dm_winner}>" await election_thread.send(highcouncil_msg)