This commit is contained in:
@@ -6,7 +6,7 @@ import collections
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import nextcord
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy import select, true
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from classes.nominate_views import NominateView
|
||||
@@ -276,9 +276,12 @@ class ElectionCycle:
|
||||
council_member.Elected = True
|
||||
session.commit()
|
||||
|
||||
user: nextcord.Member = self.guild.get_member(user_id)
|
||||
member: nextcord.Member = self.guild.get_member(user_id)
|
||||
|
||||
await user.add_roles(council_elect_role)
|
||||
await member.add_roles(
|
||||
council_elect_role,
|
||||
reason=f"{member.display_name} has won a nomination and become a Council Elect.",
|
||||
)
|
||||
|
||||
await election_thread.send(message)
|
||||
|
||||
@@ -300,6 +303,34 @@ class ElectionCycle:
|
||||
|
||||
self.election_over = True
|
||||
|
||||
elect_role: nextcord.Role = self.guild.get_role(
|
||||
self.config.params.clan_council_elect_role_id
|
||||
)
|
||||
council_role: nextcord.Role = self.guild.get_role(
|
||||
self.config.params.clan_council_role_id
|
||||
)
|
||||
|
||||
# role management
|
||||
with Session(engine) as session:
|
||||
stmt = (
|
||||
select(CouncilMembers.MemberId)
|
||||
.where(
|
||||
CouncilMembers.ElectionCycle == get_election_cycle_name(self.config)
|
||||
)
|
||||
.where(CouncilMembers.Elected == true())
|
||||
)
|
||||
|
||||
for member_id in session.scalars(stmt):
|
||||
member = self.guild.get_member(member_id)
|
||||
await member.remove_roles(
|
||||
elect_role,
|
||||
reason=f"{member.display_name} no longer needs the elect role.",
|
||||
)
|
||||
await member.add_roles(
|
||||
council_role,
|
||||
reason=f"{member.display_name} has been elected to council.",
|
||||
)
|
||||
|
||||
election_thread: nextcord.Thread = self.guild.get_thread(
|
||||
self.get_election_info().ThreadId
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user