Files
team-tryouts/app/models/_constants.py
cedrick2711 f468217745
CI - Security, Lint & Tests / validate (push) Failing after 1m13s
progression 50% pour evolution des joueurs
2026-09-05 11:30:13 -04:00

155 lines
5.8 KiB
Python

"""Global constants shared by all model files.
Contains game lists, position mappings, platform codes, and TRN URL templates.
"""
# ---------------------------------------------------------------------------
# Constants
# ---------------------------------------------------------------------------
USER_TYPES = ['admin', 'manager', 'coach', 'player', 'scout']
# Ordered list of (field_name, human_label) pairs for the player evaluation
# score criteria. Kept in a single place so the evaluation forms, batch
# evaluation page, and any future reporting all stay in sync.
EVALUATION_CRITERIA = [
('mecanics_score', 'Mecanics'),
('cohesion_score', 'Cohesion'),
('communication_score', 'Communication'),
('gamesense_score', 'Gamesense'),
('versatility_score', 'Versatility'),
('discipline_score', 'Discipline'),
('analysis_score', 'Analysis'),
('sport_ethics_score', 'Sport Ethics'),
('mental_score', 'Mental'),
]
ESPORT_GAMES = [
'Valorant',
'League of Legends',
'Counter-Strike 2',
'Apex Legends',
'Overwatch 2',
'Rainbow Six Siege',
'Rocket League',
'Super Smash Bros.',
]
GAME_POSITIONS = {
'League of Legends': ['Top Lane', 'Jungle', 'Mid Lane', 'ADC', 'Support'],
'Valorant': ['Controller', 'Initiator', 'Duelist', 'Sentinel', 'Flex'],
'Counter-Strike 2': ['AWPer', 'Entry Fragger', 'Lurker', 'In-Game Leader', 'Support'],
'Rainbow Six Siege': ['Entry', 'Support', 'Breacher', 'Anchor', 'Flex'],
'Overwatch 2': ['Tank', 'Damage', 'Support'],
'Apex Legends': [],
'Rocket League': [],
'Super Smash Bros.': [],
}
GAME_PLATFORMS = {
'Valorant': [],
'League of Legends': [],
'Counter-Strike 2': [],
'Apex Legends': ['PC', 'PlayStation', 'Xbox', 'Nintendo Switch'],
'Overwatch 2': [],
'Rainbow Six Siege': ['Ubisoft', 'PlayStation', 'Xbox'],
'Rocket League': ['Epic', 'PlayStation', 'Xbox', 'Nintendo Switch'],
'Super Smash Bros.': ['Nintendo Switch'],
}
PLATFORM_CODES = {
'Ubisoft': 'ubi',
'PlayStation': 'psn',
'Xbox': 'xbl',
'Nintendo Switch': 'switch',
'PC': 'pc',
'Steam': 'steam',
'Epic': 'epic',
}
PLATFORM_DEFAULTS = {'Apex Legends': 'pc', 'Rainbow Six Siege': 'ubi', 'Rocket League': 'epic'}
# Objective-related constants for the Player Evolution planning feature.
# Ordered lists of (value, human_label) pairs for form fields and display.
OBJECTIVE_TYPES = [
('individual', 'Individuel'),
('team', 'Équipe'),
]
OBJECTIVE_STATUSES = [
('active', 'Actif'),
('pending', 'En attente'),
('completed', 'Terminé'),
('overdue', 'En retard'),
]
OBJECTIVE_PRIORITIES = [
('low', 'Faible'),
('medium', 'Moyenne'),
('high', 'Élevée'),
]
OBJECTIVE_CHECK_FREQUENCIES = [
('weekly', 'Hebdomadaire'),
('biweekly', 'Bi-hebdomadaire'),
('monthly', 'Mensuelle'),
]
# Default templates seeded on first run.
# (priority, title, description, kpi_metric, kpi_target, kpi_unit, type, category)
DEFAULT_OBJECTIVE_TEMPLATES = [
# Quantitative
('medium', 'Améliorer le taux de headshot (HS)',
'Augmenter le pourcentage de têtes sur les kills totaux.',
'Taux de headshot', 45.0, '%', 'individual', 'Mécaniques'),
('medium', 'Augmenter le K/D ratio',
'Améliorer le ratio kills/morts sur les matchs compétitifs.',
'K/D Ratio', 1.2, '', 'individual', 'Performance'),
('medium', 'Atteindre un KDA cible',
'Maintenir un ratio kills/deaths/assists au-dessus du seuil.',
'KDA', 3.0, '', 'individual', 'Performance'),
('medium', 'Améliorer la précision',
'Augmenter le pourcentage de tirs touchés par partie.',
'Précision', 40.0, '%', 'individual', 'Mécaniques'),
('medium', 'Augmenter les CS par minute',
'Atteindre une moyenne de last-hits par minute en jeu.',
'CS/min', 8.0, '', 'individual', 'Farm'),
('medium', 'Réduire les morts par match',
'Diminuer le nombre de décès moyens par partie compétitive.',
'Morts/match', 5.0, '', 'individual', 'Survie'),
('medium', 'Augmenter les dégâts par round',
'Améliorer le damage output moyen par round joué.',
'Dégâts/round', 150.0, '', 'individual', 'Performance'),
('medium', 'Améliorer le taux de victoire',
'Augmenter le pourcentage de parties gagnées sur la saison.',
'Winrate', 55.0, '%', 'team', 'Compétitif'),
# Qualitative
('medium', 'Améliorer le positionnement',
'Travailler le placement sur la carte pour réduire les angles exposés.',
None, None, None, 'individual', 'Positionnement'),
('medium', 'Améliorer la communication',
'Être plus vocal et clair dans les callouts en équipe.',
None, None, None, 'individual', 'Communication'),
('medium', 'Développer la conscience de carte',
'Anticiper les rotations adverses et mieux lire la minimap.',
None, None, None, 'individual', 'Game Sense'),
('medium', 'Améliorer la prise de décision',
'Réduire les décisions risquées et améliorer le choix des engagements.',
None, None, None, 'individual', 'Decision'),
('medium', 'Renforcer la cohésion d\'équipe',
'Participer activement aux stratégies collectives et aux drills.',
None, None, None, 'team', 'Équipe'),
]
TRN_URLS = {
'Valorant': 'https://tracker.gg/valorant/profile/riot/{username}',
'League of Legends': 'https://tracker.gg/lol/riot/profile/{username}',
'Counter-Strike 2': 'https://tracker.gg/cs2/profile/steam/{username}',
'Apex Legends': 'https://tracker.gg/apex/profile/{platform_code}/{username}',
'Overwatch 2': 'https://tracker.gg/overwatch/profile/battlenet/{username}',
'Rainbow Six Siege': 'https://r6.tracker.network/r6siege/profile/{platform_code}/{username}',
'Rocket League': 'https://rocketleague.tracker.network/rocket-league/profile/{platform_code}/{username}',
'Super Smash Bros.': 'https://tracker.gg/smash/profile/{username}',
}