Add council role management to term start.
build_develop / build (push) Successful in 1m29s

This commit is contained in:
2023-11-08 22:50:42 -05:00
parent 9980c49764
commit b5ea709c3a
+34 -3
View File
@@ -6,7 +6,7 @@ import collections
from datetime import datetime, timedelta from datetime import datetime, timedelta
import nextcord import nextcord
from sqlalchemy import select from sqlalchemy import select, true
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from classes.nominate_views import NominateView from classes.nominate_views import NominateView
@@ -276,9 +276,12 @@ class ElectionCycle:
council_member.Elected = True council_member.Elected = True
session.commit() 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) await election_thread.send(message)
@@ -300,6 +303,34 @@ class ElectionCycle:
self.election_over = True 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( election_thread: nextcord.Thread = self.guild.get_thread(
self.get_election_info().ThreadId self.get_election_info().ThreadId
) )