Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1731bd46a6 | ||
|
|
1b4c5780df | ||
|
|
d67940aa26 | ||
|
|
9867f91268 | ||
|
|
4763651e93 |
@@ -10,4 +10,4 @@ From {highcouncil_election_announce} to {highcouncil_election_start}, you will b
|
|||||||
Each member of the CCE can cast one for each category by using the emotes: <:Rank_Owner:479008325137072155> for Clan Leader and <:Rank_Deputy:479008295319896064> for Discord Server Manager.
|
Each member of the CCE can cast one for each category by using the emotes: <:Rank_Owner:479008325137072155> for Clan Leader and <:Rank_Deputy:479008295319896064> for Discord Server Manager.
|
||||||
If needed, the icon 🤷 can be used to abstain to vote in any or both categories and it should be apply to all candidates of that category.
|
If needed, the icon 🤷 can be used to abstain to vote in any or both categories and it should be apply to all candidates of that category.
|
||||||
|
|
||||||
Votes can be cast until the {highcouncil_election_end}, so we can announce and have everyone set up to start the term by {term_start}
|
Votes can be cast until the {highcouncil_election_end}, so we can announce and have everyone set up to start the term by {term_start}.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<@&{clan_council_elect_role_id}> it is now time to vote for the high council! You have until {term_start} to complete the vote.
|
||||||
+42
-19
@@ -90,6 +90,22 @@ class ElectionCycle:
|
|||||||
term_start_date=self.term_start.strftime("%B %d"),
|
term_start_date=self.term_start.strftime("%B %d"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def build_highcouncil_vote_start(self) -> str:
|
||||||
|
"""
|
||||||
|
Builds the message to announce that highcouncil voting has started.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
str: Message to send.
|
||||||
|
"""
|
||||||
|
|
||||||
|
with open("bot_messages/highcouncil_vote.txt", mode="r", encoding="utf8") as file:
|
||||||
|
message = file.read()
|
||||||
|
|
||||||
|
return message.format(
|
||||||
|
clan_council_elect_role_id=self.config.params.clan_council_elect_role_id,
|
||||||
|
term_start_date=self.term_start.strftime("%B %d"),
|
||||||
|
)
|
||||||
|
|
||||||
def build_vote_start(self) -> str:
|
def build_vote_start(self) -> str:
|
||||||
"""
|
"""
|
||||||
Builds the voting start message out of template and configurations.
|
Builds the voting start message out of template and configurations.
|
||||||
@@ -123,7 +139,7 @@ class ElectionCycle:
|
|||||||
elif today.date() == self.voting_end.date():
|
elif today.date() == self.voting_end.date():
|
||||||
await self.voting_end_action()
|
await self.voting_end_action()
|
||||||
elif today.date() == self.highcouncil_election_start.date():
|
elif today.date() == self.highcouncil_election_start.date():
|
||||||
await self.highcouncil_election_action()
|
await self.highcouncil_election_start_action()
|
||||||
elif today.date() == self.term_start.date():
|
elif today.date() == self.term_start.date():
|
||||||
await self.term_start_action()
|
await self.term_start_action()
|
||||||
elif today.date() == self.term_end.date():
|
elif today.date() == self.term_end.date():
|
||||||
@@ -159,14 +175,9 @@ class ElectionCycle:
|
|||||||
"""
|
"""
|
||||||
message = self.build_vote_start()
|
message = self.build_vote_start()
|
||||||
clan_member_role: nextcord.Role = self.guild.get_role(self.config.params.clan_member_role_id)
|
clan_member_role: nextcord.Role = self.guild.get_role(self.config.params.clan_member_role_id)
|
||||||
with Session(engine) as session:
|
election_channel = self.guild.get_channel(self.get_election_info().ElectionChannel)
|
||||||
stmt = select(ElectionInformation).where(
|
await election_channel.send(message)
|
||||||
ElectionInformation.ElectionCycle == self.get_election_cycle_name()
|
await election_channel.set_permissions(clan_member_role, send_messages=False)
|
||||||
)
|
|
||||||
election_info = session.scalar(stmt)
|
|
||||||
election_channel = self.guild.get_channel(election_info.ElectionChannel)
|
|
||||||
await election_channel.send(message)
|
|
||||||
await election_channel.set_permissions(clan_member_role, send_messages=False)
|
|
||||||
|
|
||||||
async def voting_end_action(self) -> None:
|
async def voting_end_action(self) -> None:
|
||||||
"""
|
"""
|
||||||
@@ -174,20 +185,18 @@ class ElectionCycle:
|
|||||||
"""
|
"""
|
||||||
message = self.build_highcouncil_election_announce()
|
message = self.build_highcouncil_election_announce()
|
||||||
council_elect_role: nextcord.Role = self.guild.get_role(self.config.params.clan_council_elect_role_id)
|
council_elect_role: nextcord.Role = self.guild.get_role(self.config.params.clan_council_elect_role_id)
|
||||||
with Session(engine) as session:
|
election_channel = self.guild.get_channel(self.get_election_info().ElectionChannel)
|
||||||
stmt = select(ElectionInformation).where(
|
await election_channel.send(message)
|
||||||
ElectionInformation.ElectionCycle == self.get_election_cycle_name()
|
await election_channel.set_permissions(council_elect_role, send_messages=True)
|
||||||
)
|
|
||||||
election_info = session.scalar(stmt)
|
|
||||||
election_channel = self.guild.get_channel(election_info.ElectionChannel)
|
|
||||||
await election_channel.send(message)
|
|
||||||
await election_channel.set_permissions(council_elect_role, send_messages=True)
|
|
||||||
|
|
||||||
async def highcouncil_election_action(self) -> None:
|
async def highcouncil_election_start_action(self) -> None:
|
||||||
"""
|
"""
|
||||||
Performs required actions for when the highcouncil is elected.
|
Performs required actions for when the highcouncil is elected.
|
||||||
"""
|
"""
|
||||||
print("Highcouncil election has started.")
|
|
||||||
|
message = self.build_highcouncil_vote_start()
|
||||||
|
election_channel = self.guild.get_channel(self.get_election_info().ElectionChannel)
|
||||||
|
await election_channel.send(message)
|
||||||
|
|
||||||
async def term_start_action(self) -> None:
|
async def term_start_action(self) -> None:
|
||||||
msg: str = "the term has started"
|
msg: str = "the term has started"
|
||||||
@@ -206,3 +215,17 @@ class ElectionCycle:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
return f"{self.election_start.year} {self.elecion_cycle.name} election"
|
return f"{self.election_start.year} {self.elecion_cycle.name} election"
|
||||||
|
|
||||||
|
def get_election_info(self) -> ElectionInformation:
|
||||||
|
"""
|
||||||
|
Gets information for current election.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
ElectionInformation: The information from the database about the current election.
|
||||||
|
"""
|
||||||
|
|
||||||
|
with Session(engine) as session:
|
||||||
|
stmt = select(ElectionInformation).where(
|
||||||
|
ElectionInformation.ElectionCycle == self.get_election_cycle_name()
|
||||||
|
)
|
||||||
|
return session.scalar(stmt)
|
||||||
|
|||||||
Reference in New Issue
Block a user