diff --git a/utils.py b/utils.py index 51f87f2..3caba58 100644 --- a/utils.py +++ b/utils.py @@ -85,34 +85,6 @@ def get_quarter_name(config: DakinyConfig) -> str: return f"{get_datetime(current_cycle.term_start).year}-{current_cycle.name}" -def get_dm_election_name(config: DakinyConfig) -> str: - """ - creates the name of the discord manager election - - Args: - config (DakinyConfig): Config sent to get_election_cycle_name - - Returns: - str: the name of the election - """ - - return f"{get_election_name(config)}-dm" - - -def get_cl_election_name(config: DakinyConfig) -> str: - """ - creates the name of the clan leader election - - Args: - config (DakinyConfig): Config sent to get_election_cycle_name - - Returns: - str: the name of the election - """ - - return f"{get_election_name(config)}-cl" - - def get_current_election_cycle(config: DakinyConfig) -> int: """ Returns index for active election. An election is considered active between the election start and the term start. @@ -173,9 +145,11 @@ def build_votes_str(config: DakinyConfig, guild: nextcord.Guild) -> str: votes: dict[int, int] = {} + election_name = get_election_name(config) + with Session(engine) as session: stmt = select(CouncilMembers).where( - CouncilMembers.ElectionCycle == get_election_name(config) + CouncilMembers.ElectionCycle == election_name ) for nominee in sorted( @@ -184,7 +158,11 @@ def build_votes_str(config: DakinyConfig, guild: nextcord.Guild) -> str: ): votes[nominee.MemberId] = 0 - stmt = select(Votes).where(Votes.ElectionCycle == get_election_name(config)) + stmt = ( + select(Votes) + .where(Votes.ElectionCycle == election_name) + .where(Votes.Type == VoteType.COUNCIL) + ) for vote in session.scalars(stmt): if vote.VotedForId is not None: @@ -211,10 +189,12 @@ def build_highcouncil_votes_str(config: DakinyConfig, guild: nextcord.Guild) -> cl_votes: dict[int, int] = {} dm_votes: dict[int, int] = {} + election_name = get_election_name(config) + with Session(engine) as session: stmt = ( select(CouncilMembers) - .where(CouncilMembers.ElectionCycle == get_election_name(config)) + .where(CouncilMembers.ElectionCycle == election_name) .filter(CouncilMembers.ClanLeaderSpeechId.is_not(None)) ) @@ -224,7 +204,11 @@ def build_highcouncil_votes_str(config: DakinyConfig, guild: nextcord.Guild) -> ): cl_votes[nominee.MemberId] = 0 - stmt = select(Votes).where(Votes.ElectionCycle == get_cl_election_name(config)) + stmt = ( + select(Votes) + .where(Votes.ElectionCycle == election_name) + .where(Votes.Type == VoteType.CLANLEADER) + ) for vote in session.scalars(stmt): if vote.VotedForId is not None: @@ -232,7 +216,7 @@ def build_highcouncil_votes_str(config: DakinyConfig, guild: nextcord.Guild) -> stmt = ( select(CouncilMembers) - .where(CouncilMembers.ElectionCycle == get_election_name(config)) + .where(CouncilMembers.ElectionCycle == election_name) .filter(CouncilMembers.DiscordManagerSpeechId.is_not(None)) ) @@ -242,7 +226,11 @@ def build_highcouncil_votes_str(config: DakinyConfig, guild: nextcord.Guild) -> ): dm_votes[nominee.MemberId] = 0 - stmt = select(Votes).where(Votes.ElectionCycle == get_dm_election_name(config)) + stmt = ( + select(Votes) + .where(Votes.ElectionCycle == election_name) + .where(Votes.Type == VoteType.DISCORDMANAGER) + ) for vote in session.scalars(stmt): if vote.VotedForId is not None: