Clarify some method names.
build_develop / build (push) Successful in 57s

current election cycle shoud return quarter cycle if it can't find a cycle.
This commit is contained in:
2024-05-16 22:41:27 -04:00
parent 1a6f373e03
commit 0b27c60bea
6 changed files with 56 additions and 56 deletions
+9 -14
View File
@@ -28,7 +28,7 @@ from utils import (
get_cl_election_name, get_cl_election_name,
get_datetime, get_datetime,
get_dm_election_name, get_dm_election_name,
get_election_cycle_name, get_election_name,
) )
@@ -199,7 +199,7 @@ class ElectionCycle:
parent: nextcord.TextChannel = self.guild.get_channel( parent: nextcord.TextChannel = self.guild.get_channel(
self.config.params.voting_parent_id self.config.params.voting_parent_id
) )
quarter_name: str = get_election_cycle_name(self.config) quarter_name: str = get_election_name(self.config)
thread_msg: nextcord.Message = await parent.send(content=quarter_name) thread_msg: nextcord.Message = await parent.send(content=quarter_name)
@@ -247,8 +247,7 @@ class ElectionCycle:
with Session(engine) as session: with Session(engine) as session:
stmt = select(ElectionInformation).where( stmt = select(ElectionInformation).where(
ElectionInformation.ElectionCycle ElectionInformation.ElectionCycle == get_election_name(self.config)
== get_election_cycle_name(self.config)
) )
info = session.scalar(stmt) info = session.scalar(stmt)
info.CouncilVoteMsgId = vote_msg.id info.CouncilVoteMsgId = vote_msg.id
@@ -277,7 +276,7 @@ class ElectionCycle:
message, view=NominateHighCouncilView(self.config, self.guild) message, view=NominateHighCouncilView(self.config, self.guild)
) )
election_name = get_election_cycle_name(self.config) election_name = get_election_name(self.config)
with Session(engine) as session: with Session(engine) as session:
# remove vote button from vote message # remove vote button from vote message
@@ -333,8 +332,7 @@ class ElectionCycle:
with Session(engine) as session: with Session(engine) as session:
stmt = select(ElectionInformation).where( stmt = select(ElectionInformation).where(
ElectionInformation.ElectionCycle ElectionInformation.ElectionCycle == get_election_name(self.config)
== get_election_cycle_name(self.config)
) )
info = session.scalar(stmt) info = session.scalar(stmt)
info.HighCouncilVoteMsgId = vote_msg.id info.HighCouncilVoteMsgId = vote_msg.id
@@ -364,9 +362,7 @@ class ElectionCycle:
# role management # role management
stmt = ( stmt = (
select(CouncilMembers.MemberId) select(CouncilMembers.MemberId)
.where( .where(CouncilMembers.ElectionCycle == get_election_name(self.config))
CouncilMembers.ElectionCycle == get_election_cycle_name(self.config)
)
.where(CouncilMembers.Elected == true()) .where(CouncilMembers.Elected == true())
) )
@@ -390,7 +386,7 @@ class ElectionCycle:
stmt = select(Votes.VotedForId).where(Votes.ElectionCycle == cl_election) stmt = select(Votes.VotedForId).where(Votes.ElectionCycle == cl_election)
cl_votes = collections.Counter(session.scalars(stmt)) cl_votes = collections.Counter(session.scalars(stmt))
election_cycle = get_election_cycle_name(self.config) election_cycle = get_election_name(self.config)
try: try:
dm_winner = max(dm_votes, key=dm_votes.get) dm_winner = max(dm_votes, key=dm_votes.get)
stmt = ( stmt = (
@@ -422,7 +418,7 @@ class ElectionCycle:
# clear view from vote message # clear view from vote message
stmt = select(ElectionInformation.HighCouncilVoteMsgId).where( stmt = select(ElectionInformation.HighCouncilVoteMsgId).where(
ElectionInformation.ElectionCycle == get_election_cycle_name(self.config) ElectionInformation.ElectionCycle == get_election_name(self.config)
) )
vote_msg_id = session.scalar(stmt) vote_msg_id = session.scalar(stmt)
vote_msg: nextcord.Message = await election_thread.fetch_message(vote_msg_id) vote_msg: nextcord.Message = await election_thread.fetch_message(vote_msg_id)
@@ -451,8 +447,7 @@ class ElectionCycle:
with Session(engine) as session: with Session(engine) as session:
stmt = select(ElectionInformation).where( stmt = select(ElectionInformation).where(
ElectionInformation.ElectionCycle ElectionInformation.ElectionCycle == get_election_name(self.config)
== get_election_cycle_name(self.config)
) )
return session.scalar(stmt) return session.scalar(stmt)
+5 -5
View File
@@ -13,7 +13,7 @@ from utils import (
NOMINEE_SPLITTER, NOMINEE_SPLITTER,
decorate_cl_nomination, decorate_cl_nomination,
decorate_dm_nomination, decorate_dm_nomination,
get_election_cycle_name, get_election_name,
) )
@@ -60,7 +60,7 @@ class NominateDMModal(nextcord.ui.Modal):
with Session(engine) as session: with Session(engine) as session:
# user already in table # user already in table
cycle = get_election_cycle_name(self.config) cycle = get_election_name(self.config)
stmt = ( stmt = (
select(CouncilMembers) select(CouncilMembers)
.where(CouncilMembers.ElectionCycle == cycle) .where(CouncilMembers.ElectionCycle == cycle)
@@ -127,7 +127,7 @@ class NominateCLModal(nextcord.ui.Modal):
with Session(engine) as session: with Session(engine) as session:
# user already in table # user already in table
cycle = get_election_cycle_name(self.config) cycle = get_election_name(self.config)
stmt = ( stmt = (
select(CouncilMembers) select(CouncilMembers)
.where(CouncilMembers.ElectionCycle == cycle) .where(CouncilMembers.ElectionCycle == cycle)
@@ -189,7 +189,7 @@ class NominateHighCouncilView(nextcord.ui.View):
) )
return return
cycle = get_election_cycle_name(self.config) cycle = get_election_name(self.config)
usr_nominated = False usr_nominated = False
speech_content = "" speech_content = ""
with Session(engine) as session: with Session(engine) as session:
@@ -242,7 +242,7 @@ class NominateHighCouncilView(nextcord.ui.View):
) )
return return
cycle = get_election_cycle_name(self.config) cycle = get_election_name(self.config)
usr_nominated = False usr_nominated = False
speech_content = "" speech_content = ""
with Session(engine) as session: with Session(engine) as session:
+4 -4
View File
@@ -9,7 +9,7 @@ from sqlalchemy.orm import Session
from config import DakinyConfig from config import DakinyConfig
from database_setup.sql_data_classes import CouncilMembers, engine from database_setup.sql_data_classes import CouncilMembers, engine
from utils import NOMINEE_SPLITTER, decorate_nomination, get_election_cycle_name from utils import NOMINEE_SPLITTER, decorate_nomination, get_election_name
class NominateModal(nextcord.ui.Modal): class NominateModal(nextcord.ui.Modal):
@@ -58,7 +58,7 @@ class NominateModal(nextcord.ui.Modal):
msg = await interaction.channel.send(speech) msg = await interaction.channel.send(speech)
council_member = CouncilMembers( council_member = CouncilMembers(
ElectionCycle=get_election_cycle_name(self.config), ElectionCycle=get_election_name(self.config),
MemberId=interaction.user.id, MemberId=interaction.user.id,
SpeechMsgId=msg.id, SpeechMsgId=msg.id,
) )
@@ -66,7 +66,7 @@ class NominateModal(nextcord.ui.Modal):
session.commit() session.commit()
else: else:
# user already nominated, just need to update the election speech # user already nominated, just need to update the election speech
cycle = get_election_cycle_name(self.config) cycle = get_election_name(self.config)
stmt = ( stmt = (
select(CouncilMembers) select(CouncilMembers)
.where(CouncilMembers.ElectionCycle == cycle) .where(CouncilMembers.ElectionCycle == cycle)
@@ -120,7 +120,7 @@ class NominateView(nextcord.ui.View):
) )
return return
cycle = get_election_cycle_name(self.config) cycle = get_election_name(self.config)
usr_nominated = False usr_nominated = False
speech_content = "" speech_content = ""
with Session(engine) as session: with Session(engine) as session:
+12 -8
View File
@@ -21,7 +21,7 @@ from utils import (
build_highcouncil_votes_str, build_highcouncil_votes_str,
get_cl_election_name, get_cl_election_name,
get_dm_election_name, get_dm_election_name,
get_election_cycle_name, get_election_name,
) )
@@ -49,7 +49,7 @@ class VoteSelect(nextcord.ui.StringSelect):
# should never happen # should never happen
raise ValueError('election type was not "cl" or "dm"') raise ValueError('election type was not "cl" or "dm"')
cycle: str = get_election_cycle_name(self.config) cycle: str = get_election_name(self.config)
with Session(engine) as session: with Session(engine) as session:
stmt = select(ElectionInformation.HighCouncilVoteMsgId).where( stmt = select(ElectionInformation.HighCouncilVoteMsgId).where(
ElectionInformation.ElectionCycle == cycle ElectionInformation.ElectionCycle == cycle
@@ -135,7 +135,7 @@ class VoteHighcouncilView(nextcord.ui.View):
) )
return return
cycle: str = get_election_cycle_name(self.config) cycle: str = get_election_name(self.config)
election: str = get_cl_election_name(self.config) election: str = get_cl_election_name(self.config)
with Session(engine) as session: with Session(engine) as session:
@@ -154,9 +154,11 @@ class VoteHighcouncilView(nextcord.ui.View):
options = [ options = [
SelectOption( SelectOption(
label=f"{self.guild.get_member(nominee).display_name} ☑️" label=(
f"{self.guild.get_member(nominee).display_name} ☑️"
if voted_for == nominee if voted_for == nominee
else f"{self.guild.get_member(nominee).display_name}", else f"{self.guild.get_member(nominee).display_name}"
),
value=str(nominee), value=str(nominee),
) )
for nominee in sorted( for nominee in sorted(
@@ -211,7 +213,7 @@ class VoteHighcouncilView(nextcord.ui.View):
) )
return return
cycle: str = get_election_cycle_name(self.config) cycle: str = get_election_name(self.config)
election: str = get_dm_election_name(self.config) election: str = get_dm_election_name(self.config)
with Session(engine) as session: with Session(engine) as session:
@@ -230,9 +232,11 @@ class VoteHighcouncilView(nextcord.ui.View):
options = [ options = [
SelectOption( SelectOption(
label=f"{self.guild.get_member(nominee).display_name} ☑️" label=(
f"{self.guild.get_member(nominee).display_name} ☑️"
if voted_for == nominee if voted_for == nominee
else f"{self.guild.get_member(nominee).display_name}", else f"{self.guild.get_member(nominee).display_name}"
),
value=str(nominee), value=str(nominee),
) )
for nominee in sorted( for nominee in sorted(
+7 -5
View File
@@ -17,7 +17,7 @@ from database_setup.sql_data_classes import (
Votes, Votes,
engine, engine,
) )
from utils import build_votes_str, get_election_cycle_name from utils import build_votes_str, get_election_name
class VoteSelect(nextcord.ui.StringSelect): class VoteSelect(nextcord.ui.StringSelect):
@@ -31,7 +31,7 @@ class VoteSelect(nextcord.ui.StringSelect):
self.config = config self.config = config
async def callback(self, interaction: Interaction): async def callback(self, interaction: Interaction):
election_name = get_election_cycle_name(self.config) election_name = get_election_name(self.config)
with Session(engine) as session: with Session(engine) as session:
stmt = select(ElectionInformation.CouncilVoteMsgId).where( stmt = select(ElectionInformation.CouncilVoteMsgId).where(
ElectionInformation.ElectionCycle == election_name ElectionInformation.ElectionCycle == election_name
@@ -114,7 +114,7 @@ class VoteView(nextcord.ui.View):
) )
return return
election: str = get_election_cycle_name(self.config) election: str = get_election_name(self.config)
with Session(engine) as session: with Session(engine) as session:
stmt = ( stmt = (
@@ -130,9 +130,11 @@ class VoteView(nextcord.ui.View):
options = [ options = [
SelectOption( SelectOption(
label=f"{self.guild.get_member(nominee).display_name} ☑️" label=(
f"{self.guild.get_member(nominee).display_name} ☑️"
if voted_for == nominee if voted_for == nominee
else f"{self.guild.get_member(nominee).display_name}", else f"{self.guild.get_member(nominee).display_name}"
),
value=str(nominee), value=str(nominee),
) )
for nominee in sorted( for nominee in sorted(
+16 -17
View File
@@ -49,7 +49,7 @@ def get_datetime(day: str) -> datetime:
return datetime(year, month, day) return datetime(year, month, day)
def get_election_cycle_name(config: DakinyConfig) -> str: def get_election_name(config: DakinyConfig) -> str:
""" """
Builds the unique name of the current election cycle Builds the unique name of the current election cycle
@@ -65,7 +65,7 @@ def get_election_cycle_name(config: DakinyConfig) -> str:
return f"vote-{get_datetime(current_cycle.term_start).year}-{current_cycle.name}" return f"vote-{get_datetime(current_cycle.term_start).year}-{current_cycle.name}"
def get_cycle_name(config: DakinyConfig) -> str: def get_quarter_name(config: DakinyConfig) -> str:
""" """
Builds the name of the current cycle/quarter Builds the name of the current cycle/quarter
@@ -76,7 +76,7 @@ def get_cycle_name(config: DakinyConfig) -> str:
str: the name of the cycle. str: the name of the cycle.
""" """
cycle = get_current_cycle(config) cycle = get_quarter_cycle(config)
current_cycle = config.election_cycles[cycle] current_cycle = config.election_cycles[cycle]
return f"{get_datetime(current_cycle.term_start).year}-{current_cycle.name}" return f"{get_datetime(current_cycle.term_start).year}-{current_cycle.name}"
@@ -93,7 +93,7 @@ def get_dm_election_name(config: DakinyConfig) -> str:
str: the name of the election str: the name of the election
""" """
return f"{get_election_cycle_name(config)}-dm" return f"{get_election_name(config)}-dm"
def get_cl_election_name(config: DakinyConfig) -> str: def get_cl_election_name(config: DakinyConfig) -> str:
@@ -107,7 +107,7 @@ def get_cl_election_name(config: DakinyConfig) -> str:
str: the name of the election str: the name of the election
""" """
return f"{get_election_cycle_name(config)}-cl" return f"{get_election_name(config)}-cl"
def get_current_election_cycle(config: DakinyConfig) -> int: def get_current_election_cycle(config: DakinyConfig) -> int:
@@ -130,10 +130,11 @@ def get_current_election_cycle(config: DakinyConfig) -> int:
): ):
return cycle return cycle
return None # It isn't a current election, get the quarter
return get_quarter_cycle(config)
def get_current_cycle(config: DakinyConfig) -> int: def get_quarter_cycle(config: DakinyConfig) -> int:
""" """
Returns the index for the current cycle/quarter. Defined as between term start and end. Shouldn't return none Returns the index for the current cycle/quarter. Defined as between term start and end. Shouldn't return none
@@ -171,7 +172,7 @@ def build_votes_str(config: DakinyConfig, guild: nextcord.Guild) -> str:
with Session(engine) as session: with Session(engine) as session:
stmt = select(CouncilMembers).where( stmt = select(CouncilMembers).where(
CouncilMembers.ElectionCycle == get_election_cycle_name(config) CouncilMembers.ElectionCycle == get_election_name(config)
) )
for nominee in sorted( for nominee in sorted(
@@ -180,9 +181,7 @@ def build_votes_str(config: DakinyConfig, guild: nextcord.Guild) -> str:
): ):
votes[nominee.MemberId] = 0 votes[nominee.MemberId] = 0
stmt = select(Votes).where( stmt = select(Votes).where(Votes.ElectionCycle == get_election_name(config))
Votes.ElectionCycle == get_election_cycle_name(config)
)
for vote in session.scalars(stmt): for vote in session.scalars(stmt):
if vote.VotedForId is not None: if vote.VotedForId is not None:
@@ -212,7 +211,7 @@ def build_highcouncil_votes_str(config: DakinyConfig, guild: nextcord.Guild) ->
with Session(engine) as session: with Session(engine) as session:
stmt = ( stmt = (
select(CouncilMembers) select(CouncilMembers)
.where(CouncilMembers.ElectionCycle == get_election_cycle_name(config)) .where(CouncilMembers.ElectionCycle == get_election_name(config))
.filter(CouncilMembers.ClanLeaderSpeechId.is_not(None)) .filter(CouncilMembers.ClanLeaderSpeechId.is_not(None))
) )
@@ -230,7 +229,7 @@ def build_highcouncil_votes_str(config: DakinyConfig, guild: nextcord.Guild) ->
stmt = ( stmt = (
select(CouncilMembers) select(CouncilMembers)
.where(CouncilMembers.ElectionCycle == get_election_cycle_name(config)) .where(CouncilMembers.ElectionCycle == get_election_name(config))
.filter(CouncilMembers.DiscordManagerSpeechId.is_not(None)) .filter(CouncilMembers.DiscordManagerSpeechId.is_not(None))
) )
@@ -338,7 +337,7 @@ def record_event_participation(config: DakinyConfig, users: list[str], is_member
is_member (bool): whether the users are a discord member or not is_member (bool): whether the users are a discord member or not
""" """
cycle = get_cycle_name(config) cycle = get_quarter_name(config)
participation_point_value = config.params.event_participate_points participation_point_value = config.params.event_participate_points
with Session(engine) as session: with Session(engine) as session:
for user in users: for user in users:
@@ -372,7 +371,7 @@ def record_event_host(config: DakinyConfig, user: int):
config (DakinyConfig): Dakiny config for getting points config (DakinyConfig): Dakiny config for getting points
user (int): Id of user that hosted. user (int): Id of user that hosted.
""" """
cycle = get_cycle_name(config) cycle = get_quarter_name(config)
host_point_value = config.params.event_host_points host_point_value = config.params.event_host_points
with Session(engine) as session: with Session(engine) as session:
stmt = ( stmt = (
@@ -545,7 +544,7 @@ async def edit_clan_council_info(guild: nextcord.Guild, config: DakinyConfig):
config.params.clan_info_channel_id config.params.clan_info_channel_id
) )
election = get_election_cycle_name(config) election = get_election_name(config)
with Session(engine) as session: with Session(engine) as session:
stmt = ( stmt = (
select(CouncilMembers.MemberId) select(CouncilMembers.MemberId)
@@ -571,7 +570,7 @@ async def edit_clan_council_info(guild: nextcord.Guild, config: DakinyConfig):
if id not in (discord_manager, clan_leader) if id not in (discord_manager, clan_leader)
] ]
quarter = get_cycle_name(config) quarter = get_quarter_name(config)
with open( with open(
f"{TEMPLATES_DIR}/council_members.txt", mode="r", encoding="utf8" f"{TEMPLATES_DIR}/council_members.txt", mode="r", encoding="utf8"