Put unroled players on a single line in event text
parent
0396e2409a
commit
811adc2f02
|
@ -112,15 +112,22 @@ class Event(app_db.BaseModel):
|
|||
"PocketScout": "1373040277924614254"
|
||||
}
|
||||
|
||||
for player in players:
|
||||
# display roles on individual lines, and unroled players are grouped by
|
||||
# availability
|
||||
|
||||
roled_players = [p for p in players if p.role]
|
||||
unroled_players = [p for p in players if not p.role]
|
||||
unroled_confirmed = [p for p in unroled_players if p.has_confirmed]
|
||||
unroled_pending = [p for p in unroled_players if not p.has_confirmed]
|
||||
|
||||
for player in roled_players:
|
||||
assert player.role is not None
|
||||
|
||||
player_info = ""
|
||||
|
||||
if player.role:
|
||||
player_info += "<:" + player.role.role.name + ":" + role_emojis.get(
|
||||
player.role.role.name, "1373226295651209226"
|
||||
) + ">"
|
||||
else:
|
||||
player_info += "<:blank:1373226295651209226>"
|
||||
|
||||
if player.has_confirmed:
|
||||
player_info += " ✅"
|
||||
|
@ -134,6 +141,28 @@ class Event(app_db.BaseModel):
|
|||
|
||||
players_info.append(player_info)
|
||||
|
||||
for group in [unroled_confirmed, unroled_pending]:
|
||||
if len(group) == 0:
|
||||
continue
|
||||
|
||||
unroled_players_info = "<:blank:1373226295651209226> "
|
||||
if group == unroled_confirmed:
|
||||
unroled_players_info += "✅ "
|
||||
else:
|
||||
unroled_players_info += "⌛ "
|
||||
|
||||
# list players in this group
|
||||
unroled_players_info += ", ".join(
|
||||
[
|
||||
f"<@{player.player.discord_id}>"
|
||||
if player.player.discord_id
|
||||
else player.player.username
|
||||
for player in group
|
||||
]
|
||||
)
|
||||
|
||||
players_info.append(unroled_players_info)
|
||||
|
||||
non_players_info = "<:blank:1373226295651209226> ❌ "
|
||||
non_players_info += ", ".join(
|
||||
[
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
import datetime
|
||||
from models.event import Event
|
||||
from app_db import db
|
||||
from models.player import Player
|
||||
from models.player_event import PlayerEvent
|
||||
from models.player_team import PlayerTeam
|
||||
|
||||
|
||||
def test_get_event(client, headers):
|
||||
|
@ -74,3 +76,75 @@ def test_get_maximum_matching_no_players(app):
|
|||
start_time=datetime.datetime.now(datetime.timezone.utc),
|
||||
)
|
||||
assert event.get_maximum_matching() == 0
|
||||
|
||||
def test_get_discord_content(app):
|
||||
def populate_team():
|
||||
player2 = Player(steam_id=76561198248436609, username="pyro from cs2")
|
||||
player3 = Player(steam_id=76561198248436610, username="pyro from cs3")
|
||||
player4 = Player(steam_id=76561198248436611, username="pyro from cs4")
|
||||
|
||||
db.session.add(player2)
|
||||
db.session.add(player3)
|
||||
db.session.add(player4)
|
||||
db.session.flush()
|
||||
|
||||
player_team2 = PlayerTeam(
|
||||
player_id=player2.steam_id,
|
||||
team_id=1,
|
||||
)
|
||||
player_team3 = PlayerTeam(
|
||||
player_id=player3.steam_id,
|
||||
team_id=1,
|
||||
)
|
||||
player_team4 = PlayerTeam(
|
||||
player_id=player4.steam_id,
|
||||
team_id=1,
|
||||
)
|
||||
db.session.add(player_team2)
|
||||
db.session.add(player_team3)
|
||||
db.session.add(player_team4)
|
||||
db.session.commit()
|
||||
|
||||
populate_team()
|
||||
event = Event(
|
||||
team_id=1,
|
||||
name="New Event",
|
||||
start_time=datetime.datetime.now(datetime.timezone.utc),
|
||||
)
|
||||
db.session.add(event)
|
||||
db.session.flush()
|
||||
event_player = PlayerEvent(
|
||||
event_id=event.id,
|
||||
player_id=76561198248436608,
|
||||
player_team_role_id=1,
|
||||
has_confirmed=True,
|
||||
)
|
||||
event_player2 = PlayerEvent(
|
||||
event_id=event.id,
|
||||
player_id=76561198248436609,
|
||||
player_team_role_id=None,
|
||||
has_confirmed=True,
|
||||
)
|
||||
event_player3 = PlayerEvent(
|
||||
event_id=event.id,
|
||||
player_id=76561198248436610,
|
||||
player_team_role_id=None,
|
||||
has_confirmed=False,
|
||||
)
|
||||
event_player4 = PlayerEvent(
|
||||
event_id=event.id,
|
||||
player_id=76561198248436611,
|
||||
player_team_role_id=None,
|
||||
has_confirmed=False,
|
||||
)
|
||||
db.session.add(event_player)
|
||||
db.session.add(event_player2)
|
||||
db.session.add(event_player3)
|
||||
db.session.add(event_player4)
|
||||
db.session.commit()
|
||||
|
||||
content = event.get_discord_content()
|
||||
assert "✅ pyro from csgo" in content
|
||||
assert "✅ pyro from cs2" in content
|
||||
assert "⌛ pyro from cs3, pyro from cs4" in content
|
||||
|
||||
|
|
Loading…
Reference in New Issue