Pass config along so that nominate can add to database with election cycle name.

This commit is contained in:
2023-11-02 15:05:48 -04:00
parent 647af0353d
commit 133ff79b94
4 changed files with 12 additions and 7 deletions
+1 -1
View File
@@ -170,7 +170,7 @@ class ElectionCycle:
for index, message in enumerate(messages):
# if last item, add the nominate button
if index + 1 == len(messages):
await election_channel.send(message, view=NominateView())
await election_channel.send(message, view=NominateView(self.config))
else:
await election_channel.send(message)
+8 -4
View File
@@ -6,6 +6,7 @@ import nextcord
from nextcord.interactions import Interaction
from sqlalchemy.orm import Session
from config import DakinyConfig
from database_setup.sql_data_classes import CouncilMembers, engine
from utils import get_election_cycle_name
@@ -15,7 +16,7 @@ class NominateModal(nextcord.ui.Modal):
Modal for nominating oneself. User writes a speech and then the callback sends the speech into the correct channel.
"""
def __init__(self):
def __init__(self, config):
super().__init__(
"Nomination",
timeout=5 * 60, # 5 minutes
@@ -29,6 +30,7 @@ class NominateModal(nextcord.ui.Modal):
max_length=1500,
)
self.add_item(self.speech)
self.config: DakinyConfig = config
async def callback(self, interaction: Interaction) -> None:
"""
@@ -48,9 +50,10 @@ class NominateModal(nextcord.ui.Modal):
with Session(engine) as session:
council_member = CouncilMembers(
ElectionCycle=get_election_cycle_name(self.bot.config), MemberId=interaction.user.id
ElectionCycle=get_election_cycle_name(self.config), MemberId=interaction.user.id
)
session.add(council_member)
session.commit()
class NominateView(nextcord.ui.View):
@@ -58,9 +61,10 @@ class NominateView(nextcord.ui.View):
The button to press to start your nomination.
"""
def __init__(self):
def __init__(self, config):
super().__init__(timeout=None)
self.config: DakinyConfig = config
@nextcord.ui.button(label="Nominate Yourself", style=nextcord.ButtonStyle.primary, custom_id="nominate")
async def nominate(self, button: nextcord.ui.Button, interaction: nextcord.Interaction) -> None:
await interaction.response.send_modal(NominateModal())
await interaction.response.send_modal(NominateModal(self.config))
+2 -1
View File
@@ -7,6 +7,7 @@ from nextcord.ext import commands
from classes.election_cycle import ElectionCycle
from config import DakinyConfig
from utils import get_current_cycle
class TestCog(commands.Cog, name="Test commands."):
@@ -53,7 +54,7 @@ class TestCog(commands.Cog, name="Test commands."):
"""
config: DakinyConfig = self.bot.config
cycle = ElectionCycle(4, config, self.bot.get_guild(config.params.guild_id))
cycle = ElectionCycle(get_current_cycle(config), config, self.bot.get_guild(config.params.guild_id))
await cycle.election_start_action()
@test.subcommand()
+1 -1
View File
@@ -50,7 +50,7 @@ def main(cfg: DakinyConfig):
"""When Discord is connected"""
assert bot.user is not None
create_database # pylint: disable=pointless-statement
bot.add_view(NominateView())
bot.add_view(NominateView(cfg))
print(f"{bot.user.name} has connected to Discord!")
# Run Discord bot