diff --git a/app/models/document.py b/app/models/document.py index 120a96a..e5004c1 100644 --- a/app/models/document.py +++ b/app/models/document.py @@ -84,7 +84,7 @@ class Document(db.Model): ) assignments = db.relationship( 'DocumentAssignment', - backref='assigned_document', + back_populates='document', lazy='dynamic', order_by='DocumentAssignment.created_at', foreign_keys='DocumentAssignment.document_id', @@ -161,7 +161,7 @@ class DocumentAssignment(db.Model): filed_team_id = db.Column(db.Integer, db.ForeignKey('org_teams.id'), nullable=True) created_at = db.Column(db.DateTime, default=utc_now_naive) - document = db.relationship('Document', foreign_keys=[document_id]) + document = db.relationship('Document', back_populates='assignments', foreign_keys=[document_id]) user = db.relationship('User', foreign_keys=[user_id], backref='document_assignments') completed_version = db.relationship('DocumentVersion', foreign_keys=[completed_version_id]) filed_team = db.relationship('OrgTeam', foreign_keys=[filed_team_id]) diff --git a/app/services/documents.py b/app/services/documents.py index 3fbd6fd..ada4f37 100644 --- a/app/services/documents.py +++ b/app/services/documents.py @@ -32,14 +32,14 @@ def user_org_team_ids(user): relationships (many-to-many *and* legacy single column) for staff. An admin or a scout belongs to none, regardless of how many teams exist. """ - from app.permissions import coach_org_team_ids, manager_org_team_ids + from app.permissions import coach_org_teams, manager_org_teams if isinstance(user, Player): return [tp.org_team_id for tp in user.team_placements] if isinstance(user, Coach): - return coach_org_team_ids(user) + return [team.id for team in coach_org_teams(user)] if isinstance(user, Manager): - return manager_org_team_ids(user) + return [team.id for team in manager_org_teams(user)] return [] diff --git a/app/translations/en/LC_MESSAGES/messages.mo b/app/translations/en/LC_MESSAGES/messages.mo index b9c72fe..7c1380e 100644 Binary files a/app/translations/en/LC_MESSAGES/messages.mo and b/app/translations/en/LC_MESSAGES/messages.mo differ diff --git a/app/translations/en/LC_MESSAGES/messages.po b/app/translations/en/LC_MESSAGES/messages.po index 4ee68ac..0fb86db 100644 --- a/app/translations/en/LC_MESSAGES/messages.po +++ b/app/translations/en/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: team-tryouts VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2026-08-26 22:04-0400\n" +"POT-Creation-Date: 2026-09-10 12:46-0400\n" "PO-Revision-Date: 2026-08-07 20:22-0400\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -19,12 +19,20 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.18.0\n" -#: app/app.py:564 +#: app/app.py:379 +msgid "" +"This page was changed by someone else. Reload to see the latest changes " +"before saving." +msgstr "" +"This page was changed by someone else. Reload to see the latest changes " +"before saving." + +#: app/app.py:614 msgid "Please log in to access this page." msgstr "Please log in to access this page." #: app/forms.py:37 app/routes/auth.py:230 app/routes/auth.py:389 -#: app/routes/auth.py:403 app/routes/users/contracts.py:120 +#: app/routes/auth.py:403 app/routes/users/contracts.py:121 #, python-format msgid "%(field)s: %(msg)s" msgstr "%(field)s: %(msg)s" @@ -78,7 +86,7 @@ msgstr "Full name is required." msgid "Passwords do not match." msgstr "Passwords do not match." -#: app/validators.py:284 app/validators.py:924 +#: app/validators.py:284 app/validators.py:936 msgid "Unknown game." msgstr "Unknown game." @@ -98,7 +106,7 @@ msgstr "Unknown platform for this game." msgid "Invalid role selected." msgstr "Invalid role selected." -#: app/validators.py:473 app/validators.py:596 app/validators.py:629 +#: app/validators.py:473 app/validators.py:596 app/validators.py:641 msgid "Player must be selected." msgstr "Player must be selected." @@ -106,15 +114,15 @@ msgstr "Player must be selected." msgid "Notes must be 2000 characters or less." msgstr "Notes must be 2000 characters or less." -#: app/validators.py:513 app/validators.py:994 +#: app/validators.py:513 app/validators.py:1006 msgid "Invalid coach selection." msgstr "Invalid coach selection." -#: app/validators.py:519 app/validators.py:1000 +#: app/validators.py:519 app/validators.py:1012 msgid "Invalid manager selection." msgstr "Invalid manager selection." -#: app/validators.py:537 app/validators.py:595 app/validators.py:628 +#: app/validators.py:537 app/validators.py:595 app/validators.py:640 msgid "Invalid player selection." msgstr "Invalid player selection." @@ -134,134 +142,167 @@ msgstr "Unknown registration status." msgid "Team name must be between 1 and 100 characters." msgstr "Team name must be between 1 and 100 characters." -#: app/validators.py:603 +#: app/validators.py:603 app/validators.py:615 msgid "Position must be 50 characters or less." msgstr "Position must be 50 characters or less." -#: app/validators.py:616 +#: app/validators.py:628 msgid "Note content must be between 1 and 5000 characters." msgstr "Note content must be between 1 and 5000 characters." -#: app/validators.py:642 +#: app/validators.py:654 msgid "Select at most one note context." msgstr "Select at most one note context." -#: app/validators.py:654 +#: app/validators.py:666 msgid "Rejection reason must be 2000 characters or less." msgstr "Rejection reason must be 2000 characters or less." -#: app/validators.py:678 +#: app/validators.py:690 msgid "Date must be in YYYY-MM-DD format." msgstr "Date must be in YYYY-MM-DD format." -#: app/validators.py:679 +#: app/validators.py:691 msgid "A date is required." msgstr "A date is required." -#: app/validators.py:685 app/validators.py:750 +#: app/validators.py:697 app/validators.py:762 msgid "Start time must be in HH:MM format." msgstr "Start time must be in HH:MM format." -#: app/validators.py:686 app/validators.py:751 +#: app/validators.py:698 app/validators.py:763 msgid "A start time is required." msgstr "A start time is required." -#: app/validators.py:692 +#: app/validators.py:704 msgid "End time must be in HH:MM format." msgstr "End time must be in HH:MM format." -#: app/validators.py:693 +#: app/validators.py:705 msgid "An end time is required." msgstr "An end time is required." -#: app/validators.py:697 +#: app/validators.py:709 msgid "Points must be 2000 characters or less." msgstr "Points must be 2000 characters or less." -#: app/validators.py:712 +#: app/validators.py:724 msgid "End time must be after start time." msgstr "End time must be after start time." -#: app/validators.py:741 app/validators.py:743 +#: app/validators.py:753 app/validators.py:755 msgid "Day must be 0 (Monday) to 6 (Sunday)." msgstr "Day must be 0 (Monday) to 6 (Sunday)." -#: app/validators.py:744 +#: app/validators.py:756 msgid "A day is required." msgstr "A day is required." -#: app/validators.py:779 +#: app/validators.py:791 msgid "Player selection is malformed." msgstr "Player selection is malformed." -#: app/validators.py:805 app/validators.py:915 +#: app/validators.py:817 app/validators.py:927 msgid "A title is required." msgstr "A title is required." -#: app/validators.py:814 +#: app/validators.py:826 msgid "Invalid date format." msgstr "Invalid date format." -#: app/validators.py:819 app/validators.py:826 +#: app/validators.py:831 app/validators.py:838 msgid "Invalid time format." msgstr "Invalid time format." -#: app/validators.py:820 +#: app/validators.py:832 msgid "Start time is required. Please select a time slot." msgstr "Start time is required. Please select a time slot." -#: app/validators.py:834 +#: app/validators.py:846 msgid "Unknown match status." msgstr "Unknown match status." -#: app/validators.py:850 +#: app/validators.py:862 msgid "The end time must come after the start time." msgstr "The end time must come after the start time." -#: app/validators.py:864 +#: app/validators.py:876 msgid "Unknown match type." msgstr "Unknown match type." -#: app/validators.py:876 +#: app/validators.py:888 msgid "A team cannot play against itself." msgstr "A team cannot play against itself." -#: app/validators.py:929 +#: app/validators.py:941 msgid "Invalid start date format." msgstr "Invalid start date format." -#: app/validators.py:930 +#: app/validators.py:942 msgid "A start date is required." msgstr "A start date is required." -#: app/validators.py:936 +#: app/validators.py:948 msgid "Invalid end date format." msgstr "Invalid end date format." -#: app/validators.py:944 +#: app/validators.py:956 msgid "A tryout must allow at least one player." msgstr "A tryout must allow at least one player." -#: app/validators.py:947 +#: app/validators.py:959 msgid "The player limit must be a whole number." msgstr "The player limit must be a whole number." -#: app/validators.py:960 +#: app/validators.py:972 msgid "End date cannot be before start date." msgstr "End date cannot be before start date." -#: app/validators.py:987 app/validators.py:988 +#: app/validators.py:999 app/validators.py:1000 msgid "Team name is required." msgstr "Team name is required." -#: app/validators.py:1012 +#: app/validators.py:1024 msgid "Scores run from 1 to 10." msgstr "Scores run from 1 to 10." -#: app/validators.py:1013 +#: app/validators.py:1025 msgid "A score must be a whole number from 1 to 10." msgstr "A score must be a whole number from 1 to 10." +#: app/validators.py:1078 +msgid "Title is required." +msgstr "A title is required." + +#: app/validators.py:1082 +msgid "That document type is not recognised." +msgstr "That document type is not recognised." + +#: app/routes/admin.py:485 +#, python-format +msgid "Document \"%(title)s\" created." +msgstr "Team \"%(team_name)s\" created!" + +#: app/routes/admin.py:510 app/routes/admin.py:584 +#: app/routes/users/documents.py:144 app/routes/users/documents.py:206 +msgid "Document storage is temporarily unavailable. Please try again later." +msgstr "Contract storage is temporarily unavailable. Please try again later." + +#: app/routes/admin.py:534 +#, python-format +msgid "Version %(number)s of \"%(title)s\" published." +msgstr "Version %(number)s of \"%(title)s\" published." + +#: app/routes/admin.py:560 +#, python-format +msgid "\"%(title)s\" is now downloadable by team members." +msgstr "\"%(title)s\" is now downloadable by team members." + +#: app/routes/admin.py:566 +#, python-format +msgid "\"%(title)s\" is no longer downloadable." +msgstr "\"%(title)s\" is no longer downloadable." + #: app/routes/auth.py:247 msgid "This account has been deactivated." msgstr "This account has been deactivated." @@ -344,318 +385,346 @@ msgstr "Discord account connected! Your profile has been pre-filled." msgid "You have been logged out." msgstr "You have been logged out." -#: app/routes/evaluations.py:53 +#: app/routes/evaluations.py:169 app/routes/evaluations.py:281 msgid "You do not have permission to view evaluations." msgstr "You do not have permission to view evaluations." -#: app/routes/evaluations.py:143 +#: app/routes/evaluations.py:286 +msgid "Can only view evaluations for players." +msgstr "Can only evaluate players." + +#: app/routes/evaluations.py:334 msgid "You do not have permission to evaluate players." msgstr "You do not have permission to evaluate players." -#: app/routes/evaluations.py:148 app/routes/evaluations.py:234 +#: app/routes/evaluations.py:339 app/routes/evaluations.py:425 msgid "You do not have permission to evaluate players in this tryout." msgstr "You do not have permission to evaluate players in this tryout." -#: app/routes/evaluations.py:159 +#: app/routes/evaluations.py:350 msgid "Player is not registered for this tryout." msgstr "Player is not registered for this tryout." -#: app/routes/evaluations.py:164 +#: app/routes/evaluations.py:355 msgid "Can only evaluate players." msgstr "Can only evaluate players." -#: app/routes/evaluations.py:210 +#: app/routes/evaluations.py:401 msgid "Evaluation submitted successfully!" msgstr "Evaluation submitted successfully!" -#: app/routes/evaluations.py:212 +#: app/routes/evaluations.py:403 msgid "Evaluation updated!" msgstr "Evaluation updated!" -#: app/routes/evaluations.py:229 app/routes/teams.py:340 -#: app/routes/teams.py:383 app/routes/teams.py:426 app/routes/teams.py:454 -#: app/routes/teams.py:482 app/routes/teams.py:519 app/routes/tryouts.py:507 -#: app/routes/tryouts.py:531 app/routes/tryouts.py:559 -#: app/routes/tryouts.py:610 app/routes/tryouts.py:650 -#: app/routes/tryouts.py:677 +#: app/routes/evaluations.py:420 app/routes/teams.py:347 +#: app/routes/teams.py:391 app/routes/teams.py:435 app/routes/teams.py:463 +#: app/routes/teams.py:491 app/routes/teams.py:529 app/routes/tryouts.py:521 +#: app/routes/tryouts.py:548 app/routes/tryouts.py:579 +#: app/routes/tryouts.py:633 app/routes/tryouts.py:676 +#: app/routes/tryouts.py:706 app/routes/tryouts.py:756 +#: app/routes/tryouts.py:788 app/routes/tryouts.py:832 +#: app/routes/tryouts.py:870 msgid "Permission denied." msgstr "Permission denied." +#: app/routes/evaluations.py:541 +msgid "Scores must be whole numbers from 1 to 10." +msgstr "A score must be a whole number from 1 to 10." + #: app/routes/main.py:55 msgid "That language is not available." msgstr "That language is not available." -#: app/routes/matches.py:383 +#: app/routes/matches.py:444 msgid "You do not have permission to schedule matches for this tryout." msgstr "You do not have permission to schedule matches for this tryout." -#: app/routes/matches.py:387 app/routes/matches.py:463 +#: app/routes/matches.py:448 app/routes/matches.py:524 msgid "This tryout has ended. Matches can no longer be created or modified." msgstr "This tryout has ended. Matches can no longer be created or modified." -#: app/routes/matches.py:445 +#: app/routes/matches.py:506 msgid "Match scheduled successfully!" msgstr "Match scheduled successfully!" -#: app/routes/matches.py:459 app/routes/team_matches.py:235 +#: app/routes/matches.py:520 app/routes/team_matches.py:238 msgid "You do not have permission to edit this match." msgstr "You do not have permission to edit this match." -#: app/routes/matches.py:552 app/routes/team_matches.py:265 +#: app/routes/matches.py:684 app/routes/team_matches.py:268 msgid "Match updated successfully!" msgstr "Match updated successfully!" -#: app/routes/matches.py:588 app/routes/team_matches.py:284 +#: app/routes/matches.py:720 app/routes/team_matches.py:289 msgid "You do not have permission to delete this match." msgstr "You do not have permission to delete this match." -#: app/routes/matches.py:591 +#: app/routes/matches.py:723 msgid "This tryout has ended. Matches can no longer be deleted." msgstr "This tryout has ended. Matches can no longer be deleted." -#: app/routes/matches.py:604 app/routes/team_matches.py:289 +#: app/routes/matches.py:736 app/routes/team_matches.py:294 msgid "Match deleted successfully." msgstr "Match deleted successfully." -#: app/routes/team_matches.py:128 +#: app/routes/team_matches.py:131 msgid "You do not have permission to schedule matches for this team." msgstr "You do not have permission to schedule matches for this team." -#: app/routes/team_matches.py:220 +#: app/routes/team_matches.py:223 #, python-format msgid "Team match \"%(title)s\" scheduled successfully!" msgstr "Team match \"%(title)s\" scheduled successfully!" -#: app/routes/teams.py:43 +#: app/routes/teams.py:45 msgid "Use My Team(s) to view your teams." msgstr "Use My Team(s) to view your teams." -#: app/routes/teams.py:46 +#: app/routes/teams.py:48 msgid "You do not have permission to view teams." msgstr "You do not have permission to view teams." -#: app/routes/teams.py:78 +#: app/routes/teams.py:80 msgid "This page is for players." msgstr "This page is for players." -#: app/routes/teams.py:185 +#: app/routes/teams.py:187 msgid "You do not have permission to create teams." msgstr "You do not have permission to create teams." -#: app/routes/teams.py:196 app/routes/teams.py:238 +#: app/routes/teams.py:198 app/routes/teams.py:243 #, python-format msgid "Team \"%(name)s\" already exists." msgstr "Team \"%(name)s\" already exists." -#: app/routes/teams.py:217 +#: app/routes/teams.py:222 #, python-format msgid "Team \"%(name)s\" created successfully!" msgstr "Team \"%(name)s\" created successfully!" -#: app/routes/teams.py:227 +#: app/routes/teams.py:232 msgid "You do not have permission to edit this team." msgstr "You do not have permission to edit this team." -#: app/routes/teams.py:271 +#: app/routes/teams.py:278 #, python-format msgid "Team \"%(name)s\" updated successfully!" msgstr "Team \"%(name)s\" updated successfully!" -#: app/routes/teams.py:299 +#: app/routes/teams.py:306 msgid "You do not have permission to delete teams." msgstr "You do not have permission to delete teams." -#: app/routes/teams.py:330 +#: app/routes/teams.py:337 #, python-format msgid "Team \"%(name)s\" deleted successfully." msgstr "Team \"%(name)s\" deleted successfully." -#: app/routes/teams.py:347 +#: app/routes/teams.py:354 msgid "Please select a coach." msgstr "Please select a coach." -#: app/routes/teams.py:352 +#: app/routes/teams.py:359 msgid "Only coaches can be assigned as coach." msgstr "Only coaches can be assigned as coach." -#: app/routes/teams.py:358 +#: app/routes/teams.py:365 #, python-format msgid "%(username)s is already a coach of %(name)s." msgstr "%(username)s is already a coach of %(name)s." -#: app/routes/teams.py:371 +#: app/routes/teams.py:379 #, python-format msgid "%(username)s added as coach of %(name)s." msgstr "%(username)s added as coach of %(name)s." -#: app/routes/teams.py:390 +#: app/routes/teams.py:398 msgid "Please select a manager." msgstr "Please select a manager." -#: app/routes/teams.py:395 +#: app/routes/teams.py:403 msgid "Only managers can be assigned as manager." msgstr "Only managers can be assigned as manager." -#: app/routes/teams.py:401 +#: app/routes/teams.py:409 #, python-format msgid "%(username)s is already a manager of %(name)s." msgstr "%(username)s is already a manager of %(name)s." -#: app/routes/teams.py:414 +#: app/routes/teams.py:423 #, python-format msgid "%(username)s added as manager of %(name)s." msgstr "%(username)s added as manager of %(name)s." -#: app/routes/teams.py:444 +#: app/routes/teams.py:453 #, python-format msgid "Coach removed from %(name)s." msgstr "Coach removed from %(name)s." -#: app/routes/teams.py:472 +#: app/routes/teams.py:481 #, python-format msgid "Manager removed from %(name)s." msgstr "Manager removed from %(name)s." -#: app/routes/teams.py:489 app/routes/tryouts.py:568 +#: app/routes/teams.py:498 app/routes/tryouts.py:588 msgid "Please select a player." msgstr "Please select a player." -#: app/routes/teams.py:495 +#: app/routes/teams.py:504 msgid "Can only assign players to teams." msgstr "Can only assign players to teams." -#: app/routes/teams.py:501 +#: app/routes/teams.py:510 #, python-format msgid "%(username)s is already on %(name)s." msgstr "%(username)s is already on %(name)s." -#: app/routes/teams.py:509 +#: app/routes/teams.py:519 #, python-format msgid "%(username)s added to %(name)s!" msgstr "%(username)s added to %(name)s!" -#: app/routes/teams.py:526 app/routes/teams.py:604 +#: app/routes/teams.py:536 app/routes/teams.py:614 #, python-format msgid "%(username)s is not on %(name)s." msgstr "%(username)s is not on %(name)s." -#: app/routes/teams.py:534 +#: app/routes/teams.py:544 #, python-format msgid "%(username)s removed from %(name)s." msgstr "%(username)s removed from %(name)s." -#: app/routes/teams.py:571 app/routes/teams.py:593 +#: app/routes/teams.py:581 app/routes/teams.py:603 msgid "You do not have permission to add notes to this team." msgstr "You do not have permission to add notes to this team." -#: app/routes/teams.py:583 +#: app/routes/teams.py:593 msgid "Team notes added successfully!" msgstr "Team notes added successfully!" -#: app/routes/teams.py:598 app/routes/users/notes.py:222 -#: app/routes/users/notes.py:262 +#: app/routes/teams.py:608 app/routes/users/notes.py:223 +#: app/routes/users/notes.py:263 msgid "Can only add notes for players." msgstr "Can only add notes for players." -#: app/routes/teams.py:618 +#: app/routes/teams.py:628 #, python-format msgid "Note added for %(username)s!" msgstr "Note added for %(username)s!" -#: app/routes/tryouts.py:147 +#: app/routes/tryouts.py:152 msgid "You do not have permission to create tryouts." msgstr "You do not have permission to create tryouts." -#: app/routes/tryouts.py:194 +#: app/routes/tryouts.py:199 msgid "Tryout created successfully!" msgstr "Tryout created successfully!" -#: app/routes/tryouts.py:211 +#: app/routes/tryouts.py:219 msgid "You do not have permission to edit this tryout." msgstr "You do not have permission to edit this tryout." -#: app/routes/tryouts.py:215 +#: app/routes/tryouts.py:223 msgid "This tryout has ended and can no longer be modified." msgstr "This tryout has ended and can no longer be modified." -#: app/routes/tryouts.py:261 +#: app/routes/tryouts.py:269 msgid "Tryout updated successfully!" msgstr "Tryout updated successfully!" -#: app/routes/tryouts.py:301 +#: app/routes/tryouts.py:307 msgid "You do not have permission to view this tryout." msgstr "You do not have permission to view this tryout." -#: app/routes/tryouts.py:469 +#: app/routes/tryouts.py:480 msgid "Only players can register for tryouts." msgstr "Only players can register for tryouts." -#: app/routes/tryouts.py:474 +#: app/routes/tryouts.py:485 msgid "This tryout is not accepting registrations." msgstr "This tryout is not accepting registrations." -#: app/routes/tryouts.py:481 +#: app/routes/tryouts.py:492 msgid "You are already registered for this tryout." msgstr "You are already registered for this tryout." -#: app/routes/tryouts.py:487 app/routes/tryouts.py:590 +#: app/routes/tryouts.py:498 app/routes/tryouts.py:610 msgid "This tryout is full." msgstr "This tryout is full." -#: app/routes/tryouts.py:493 +#: app/routes/tryouts.py:504 msgid "Successfully registered for tryout!" msgstr "Successfully registered for tryout!" -#: app/routes/tryouts.py:517 +#: app/routes/tryouts.py:531 #, python-format msgid "Tryout status updated to %(new_status)s." msgstr "Tryout status updated to %(new_status)s." -#: app/routes/tryouts.py:545 +#: app/routes/tryouts.py:562 msgid "Registration status updated." msgstr "Registration status updated." -#: app/routes/tryouts.py:576 +#: app/routes/tryouts.py:596 msgid "Can only register players." msgstr "Can only register players." -#: app/routes/tryouts.py:582 +#: app/routes/tryouts.py:602 #, python-format msgid "%(username)s is already registered for this tryout." msgstr "%(username)s is already registered for this tryout." -#: app/routes/tryouts.py:596 +#: app/routes/tryouts.py:616 #, python-format msgid "%(username)s registered for tryout!" msgstr "%(username)s registered for tryout!" -#: app/routes/tryouts.py:636 +#: app/routes/tryouts.py:659 #, python-format msgid "%(username)s removed from tryout." msgstr "%(username)s removed from tryout." -#: app/routes/tryouts.py:662 +#: app/routes/tryouts.py:688 #, python-format msgid "Team \"%(team_name)s\" created!" msgstr "Team \"%(team_name)s\" created!" -#: app/routes/tryouts.py:699 app/routes/users/notes.py:350 +#: app/routes/tryouts.py:728 app/routes/users/notes.py:351 msgid "That player is not registered for this tryout." msgstr "That player is not registered for this tryout." -#: app/routes/tryouts.py:704 +#: app/routes/tryouts.py:733 msgid "Player is already on this team." msgstr "Player is already on this team." -#: app/routes/tryouts.py:709 +#: app/routes/tryouts.py:738 msgid "Player added to team!" msgstr "Player added to team!" -#: app/routes/tryouts.py:723 +#: app/routes/tryouts.py:770 +#, python-format +msgid "Team renamed to \"%(team_name)s\"." +msgstr "Team \"%(team_name)s\" created!" + +#: app/routes/tryouts.py:814 +#, python-format +msgid "Team \"%(name)s\" deleted." +msgstr "Team \"%(name)s\" deleted successfully." + +#: app/routes/tryouts.py:849 +msgid "Player removed from team." +msgstr "Manager removed from %(name)s." + +#: app/routes/tryouts.py:884 +msgid "Position updated." +msgstr "Last Updated" + +#: app/routes/tryouts.py:901 msgid "You do not have permission to delete this tryout." msgstr "You do not have permission to delete this tryout." -#: app/routes/tryouts.py:759 +#: app/routes/tryouts.py:937 msgid "Tryout deleted successfully." msgstr "Tryout deleted successfully." @@ -723,190 +792,226 @@ msgstr "Only the president can create users." msgid "User %(full_name)s created as %(role)s!" msgstr "User %(full_name)s created as %(role)s!" -#: app/routes/users/availability.py:210 -msgid "Only coaches can manage availability." -msgstr "Only coaches can manage availability." - -#: app/routes/users/contracts.py:104 +#: app/routes/users/contracts.py:105 msgid "Only presidents, managers, and coaches can upload contracts." msgstr "Only presidents, managers, and coaches can upload contracts." -#: app/routes/users/contracts.py:108 app/routes/users/contracts.py:189 +#: app/routes/users/contracts.py:109 app/routes/users/contracts.py:190 msgid "Document uploads are currently disabled." msgstr "Document uploads are currently disabled." -#: app/routes/users/contracts.py:127 +#: app/routes/users/contracts.py:128 msgid "You do not have permission to upload a contract for this player." msgstr "You do not have permission to upload a contract for this player." -#: app/routes/users/contracts.py:155 app/routes/users/contracts.py:210 -#: app/routes/users/contracts.py:233 app/routes/users/contracts.py:252 +#: app/routes/users/contracts.py:156 app/routes/users/contracts.py:211 +#: app/routes/users/contracts.py:234 app/routes/users/contracts.py:253 msgid "Contract storage is temporarily unavailable. Please try again later." msgstr "Contract storage is temporarily unavailable. Please try again later." -#: app/routes/users/contracts.py:171 +#: app/routes/users/contracts.py:172 #, python-format msgid "Contract uploaded successfully for %(username)s!" msgstr "Contract uploaded successfully for %(username)s!" -#: app/routes/users/contracts.py:185 +#: app/routes/users/contracts.py:186 msgid "Only the player can upload their signed contract." msgstr "Only the player can upload their signed contract." -#: app/routes/users/contracts.py:218 +#: app/routes/users/contracts.py:219 msgid "Signed contract uploaded successfully!" msgstr "Signed contract uploaded successfully!" -#: app/routes/users/contracts.py:228 app/routes/users/contracts.py:244 +#: app/routes/users/contracts.py:229 app/routes/users/contracts.py:245 msgid "You do not have permission to download this contract." msgstr "You do not have permission to download this contract." -#: app/routes/users/contracts.py:247 +#: app/routes/users/contracts.py:248 msgid "No signed contract available." msgstr "No signed contract available." -#: app/routes/users/notes.py:43 +#: app/routes/users/documents.py:106 +msgid "You do not have permission to sign this document." +msgstr "You do not have permission to view this tryout." + +#: app/routes/users/documents.py:110 app/routes/users/documents.py:171 +msgid "This document has already been completed." +msgstr "This request has already been processed." + +#: app/routes/users/documents.py:113 +msgid "This document is acknowledged, not signed." +msgstr "This document is acknowledged, not signed." + +#: app/routes/users/documents.py:116 app/routes/users/documents.py:177 +msgid "This document has no version published yet." +msgstr "This document has no version published yet." + +#: app/routes/users/documents.py:127 +msgid "You must be part of a team before signing documents." +msgstr "You must be part of a team before signing documents." + +#: app/routes/users/documents.py:157 +msgid "Document signed successfully!" +msgstr "Tryout updated successfully!" + +#: app/routes/users/documents.py:167 +msgid "You do not have permission to acknowledge this document." +msgstr "You do not have permission to delete this tryout." + +#: app/routes/users/documents.py:174 +msgid "This document must be signed, not acknowledged." +msgstr "This document must be signed, not acknowledged." + +#: app/routes/users/documents.py:185 +msgid "Document acknowledged." +msgstr "Document acknowledged." + +#: app/routes/users/documents.py:199 +msgid "This document is not available to you." +msgstr "This request is not for you." + +#: app/routes/users/notes.py:44 msgid "This page is for players only." msgstr "This page is for players only." -#: app/routes/users/notes.py:80 +#: app/routes/users/notes.py:81 msgid "Only coaches can access the notes dashboard." msgstr "Only coaches can access the notes dashboard." -#: app/routes/users/notes.py:172 +#: app/routes/users/notes.py:173 msgid "Only coaches can manage team notes." msgstr "Only coaches can manage team notes." -#: app/routes/users/notes.py:178 +#: app/routes/users/notes.py:179 msgid "You are not assigned to a team." msgstr "You are not assigned to a team." -#: app/routes/users/notes.py:195 +#: app/routes/users/notes.py:196 msgid "Team notes saved successfully!" msgstr "Team notes saved successfully!" -#: app/routes/users/notes.py:210 +#: app/routes/users/notes.py:211 msgid "Only coaches can manage personal notes." msgstr "Only coaches can manage personal notes." -#: app/routes/users/notes.py:226 app/routes/users/notes.py:266 -#: app/routes/users/notes.py:346 app/routes/users/notes.py:411 +#: app/routes/users/notes.py:227 app/routes/users/notes.py:267 +#: app/routes/users/notes.py:347 app/routes/users/notes.py:412 msgid "You can only write notes about players you work with." msgstr "You can only write notes about players you work with." -#: app/routes/users/notes.py:236 app/routes/users/notes.py:306 +#: app/routes/users/notes.py:237 app/routes/users/notes.py:307 #, python-format msgid "Note added for %(username)s." msgstr "Note added for %(username)s." -#: app/routes/users/notes.py:250 app/routes/users/notes.py:320 -#: app/routes/users/notes.py:384 +#: app/routes/users/notes.py:251 app/routes/users/notes.py:321 +#: app/routes/users/notes.py:385 msgid "Only coaches can add personal notes." msgstr "Only coaches can add personal notes." -#: app/routes/users/notes.py:272 +#: app/routes/users/notes.py:273 msgid "You cannot use that match as note context." msgstr "You cannot use that match as note context." -#: app/routes/users/notes.py:275 +#: app/routes/users/notes.py:276 msgid "That player did not participate in the selected match." msgstr "That player did not participate in the selected match." -#: app/routes/users/notes.py:281 +#: app/routes/users/notes.py:282 msgid "You cannot use that tryout as note context." msgstr "You cannot use that tryout as note context." -#: app/routes/users/notes.py:284 +#: app/routes/users/notes.py:285 msgid "That player is not registered for the selected tryout." msgstr "That player is not registered for the selected tryout." -#: app/routes/users/notes.py:290 +#: app/routes/users/notes.py:291 msgid "You cannot use that team as note context." msgstr "You cannot use that team as note context." -#: app/routes/users/notes.py:293 +#: app/routes/users/notes.py:294 msgid "That player is not on the selected team." msgstr "That player is not on the selected team." -#: app/routes/users/notes.py:325 +#: app/routes/users/notes.py:326 msgid "You do not have permission to add notes for this tryout." msgstr "You do not have permission to add notes for this tryout." -#: app/routes/users/notes.py:342 +#: app/routes/users/notes.py:343 msgid "Invalid tryout context." msgstr "Invalid tryout context." -#: app/routes/users/notes.py:361 app/routes/users/notes.py:426 +#: app/routes/users/notes.py:362 app/routes/users/notes.py:427 msgid "Note added successfully." msgstr "Note added successfully." -#: app/routes/users/notes.py:389 +#: app/routes/users/notes.py:390 msgid "You do not have permission to add notes for this match." msgstr "You do not have permission to add notes for this match." -#: app/routes/users/notes.py:407 +#: app/routes/users/notes.py:408 msgid "Invalid match context." msgstr "Invalid match context." -#: app/routes/users/notes.py:415 +#: app/routes/users/notes.py:416 msgid "That player did not participate in this match." msgstr "That player did not participate in this match." -#: app/routes/users/one_on_one.py:22 +#: app/routes/users/one_on_one.py:23 msgid "Only players can request One on One sessions." msgstr "Only players can request One on One sessions." -#: app/routes/users/one_on_one.py:35 +#: app/routes/users/one_on_one.py:36 msgid "You do not have a coach assigned to your team." msgstr "You do not have a coach assigned to your team." -#: app/routes/users/one_on_one.py:66 +#: app/routes/users/one_on_one.py:67 msgid "Cannot request One on One - no coach assigned." msgstr "Cannot request One on One - no coach assigned." -#: app/routes/users/one_on_one.py:92 +#: app/routes/users/one_on_one.py:93 msgid "The requested time is not within the coach's availability." msgstr "The requested time is not within the coach's availability." -#: app/routes/users/one_on_one.py:120 +#: app/routes/users/one_on_one.py:121 msgid "Your One on One request has been submitted!" msgstr "Your One on One request has been submitted!" -#: app/routes/users/one_on_one.py:165 +#: app/routes/users/one_on_one.py:166 msgid "Only coaches can accept One on One requests." msgstr "Only coaches can accept One on One requests." -#: app/routes/users/one_on_one.py:171 app/routes/users/one_on_one.py:221 +#: app/routes/users/one_on_one.py:172 app/routes/users/one_on_one.py:222 msgid "This request is not for you." msgstr "This request is not for you." -#: app/routes/users/one_on_one.py:175 app/routes/users/one_on_one.py:225 +#: app/routes/users/one_on_one.py:176 app/routes/users/one_on_one.py:226 msgid "This request has already been processed." msgstr "This request has already been processed." -#: app/routes/users/one_on_one.py:202 +#: app/routes/users/one_on_one.py:203 #, python-format msgid "One on One request from %(player)s has been approved!" msgstr "One on One request from %(player)s has been approved!" -#: app/routes/users/one_on_one.py:215 +#: app/routes/users/one_on_one.py:216 msgid "Only coaches can reject One on One requests." msgstr "Only coaches can reject One on One requests." -#: app/routes/users/one_on_one.py:262 +#: app/routes/users/one_on_one.py:263 #, python-format msgid "One on One request from %(player)s has been rejected." msgstr "One on One request from %(player)s has been rejected." -#: app/routes/users/profile.py:82 +#: app/routes/users/profile.py:83 msgid "Username already taken." msgstr "Username already taken." -#: app/routes/users/profile.py:92 +#: app/routes/users/profile.py:93 msgid "Email already in use." msgstr "Email already in use." -#: app/routes/users/profile.py:131 +#: app/routes/users/profile.py:132 msgid "Profile updated successfully!" msgstr "Profile updated successfully!" @@ -1055,7 +1160,7 @@ msgstr "%(total)s in total" msgid "Next" msgstr "Next" -#: app/templates/layouts/base.html:48 app/templates/layouts/base.html:154 +#: app/templates/layouts/base.html:48 app/templates/layouts/base.html:160 #: app/templates/pages/dashboard.html:2 app/templates/pages/dashboard.html:3 msgid "Dashboard" msgstr "Dashboard" @@ -1073,6 +1178,8 @@ msgstr "Calendar" #: app/templates/layouts/base.html:67 app/templates/pages/dashboard.html:43 #: app/templates/pages/evaluations.html:3 #: app/templates/pages/evaluations.html:4 +#: app/templates/pages/player_evaluations.html:2 +#: app/templates/pages/player_evaluations.html:4 msgid "Evaluations" msgstr "Evaluations" @@ -1100,29 +1207,36 @@ msgstr "My Notes" msgid "Notes & One on One" msgstr "Notes & One on One" -#: app/templates/layouts/base.html:119 app/templates/pages/contracts.html:2 +#: app/templates/layouts/base.html:119 +#: app/templates/pages/admin_document_detail.html:4 +#: app/templates/pages/admin_documents.html:2 +#: app/templates/pages/admin_documents.html:4 +msgid "Documents" +msgstr "Comments" + +#: app/templates/layouts/base.html:125 app/templates/pages/contracts.html:2 #: app/templates/pages/contracts.html:3 app/templates/pages/profile.html:9 msgid "Contracts" msgstr "Contracts" -#: app/templates/layouts/base.html:126 app/templates/pages/profile.html:2 +#: app/templates/layouts/base.html:132 app/templates/pages/profile.html:2 #: app/templates/pages/profile.html:3 msgid "My Profile" msgstr "My Profile" -#: app/templates/layouts/base.html:137 +#: app/templates/layouts/base.html:143 msgid "Logout" msgstr "Logout" -#: app/templates/layouts/base.html:158 +#: app/templates/layouts/base.html:164 msgid "Toggle dark mode" msgstr "Toggle dark mode" -#: app/templates/layouts/base.html:170 app/templates/layouts/base.html:189 +#: app/templates/layouts/base.html:176 app/templates/layouts/base.html:195 msgid "Dismiss" msgstr "Dismiss" -#: app/templates/layouts/base.html:199 +#: app/templates/layouts/base.html:205 msgid "UdeS team manager" msgstr "UdeS team manager" @@ -1142,7 +1256,7 @@ msgstr "Add Personal Note" #: app/templates/pages/notes.html:122 #: app/templates/pages/team_match_form.html:114 #: app/templates/pages/teams.html:145 app/templates/pages/view_tryout.html:154 -#: app/templates/pages/view_tryout.html:498 +#: app/templates/pages/view_tryout.html:575 msgid "Player" msgstr "Player" @@ -1193,11 +1307,298 @@ msgstr "Team Notes (Reference)" #: app/templates/pages/evaluate_player.html:131 #: app/templates/pages/notes.html:100 #: app/templates/pages/personal_notes.html:36 -#: app/templates/pages/view_tryout.html:309 +#: app/templates/pages/view_tryout.html:380 msgid "Add Note" msgstr "Add Note" -#: app/templates/pages/calendar.html:9 app/templates/pages/view_tryout.html:302 +#: app/templates/pages/admin_document_detail.html:8 +#: app/templates/pages/admin_documents.html:8 +#: app/templates/pages/my_documents.html:8 +msgid "Player contract" +msgstr "Upload Contract" + +#: app/templates/pages/admin_document_detail.html:9 +#: app/templates/pages/admin_documents.html:9 +#: app/templates/pages/my_documents.html:9 +msgid "Coach contract" +msgstr "Upload Contract" + +#: app/templates/pages/admin_document_detail.html:10 +#: app/templates/pages/admin_documents.html:10 +#: app/templates/pages/my_documents.html:10 +msgid "Manager contract" +msgstr "My Contracts" + +#: app/templates/pages/admin_document_detail.html:11 +#: app/templates/pages/admin_documents.html:11 +#: app/templates/pages/my_documents.html:11 +msgid "Team agreement" +msgstr "Team Assignments" + +#: app/templates/pages/admin_document_detail.html:12 +#: app/templates/pages/admin_documents.html:12 +#: app/templates/pages/my_documents.html:12 +msgid "Code of conduct" +msgstr "Code of conduct" + +#: app/templates/pages/admin_document_detail.html:13 +#: app/templates/pages/admin_documents.html:13 +#: app/templates/pages/my_documents.html:13 +msgid "Ethics code" +msgstr "Ethics code" + +#: app/templates/pages/admin_document_detail.html:18 +msgid "Publish a new version" +msgstr "Publish a new version" + +#: app/templates/pages/admin_document_detail.html:22 +#: app/templates/pages/admin_documents.html:29 +#: app/templates/pages/admin_documents.html:59 +#: app/templates/pages/my_documents.html:27 +#: app/templates/pages/view_tryout.html:393 +msgid "Type" +msgstr "Type" + +#: app/templates/pages/admin_document_detail.html:23 +msgid "signed by the member" +msgstr "signed by the member" + +#: app/templates/pages/admin_document_detail.html:24 +msgid "acknowledged by the member" +msgstr "acknowledged by the member" + +#: app/templates/pages/admin_document_detail.html:29 +msgid "New version file (PDF)" +msgstr "New version file (PDF)" + +#: app/templates/pages/admin_document_detail.html:31 +#: app/templates/pages/contracts.html:98 +#: app/templates/pages/my_documents.html:145 +#: app/templates/pages/upload_contract.html:28 +msgid "Accepted format: PDF" +msgstr "Accepted formats: PDF, DOC, DOCX, JPG, PNG" + +#: app/templates/pages/admin_document_detail.html:34 +msgid "Version notes (optional)" +msgstr "Notes (Optional)" + +#: app/templates/pages/admin_document_detail.html:35 +msgid "What changed in this version?" +msgstr "What changed in this version?" + +#: app/templates/pages/admin_document_detail.html:38 +msgid "Back" +msgstr "Go Back" + +#: app/templates/pages/admin_document_detail.html:40 +msgid "Publish version" +msgstr "Publish version" + +#: app/templates/pages/admin_document_detail.html:49 +msgid "Versions" +msgstr "Cohesion" + +#: app/templates/pages/admin_document_detail.html:56 +#: app/templates/pages/admin_documents.html:60 +#: app/templates/pages/my_documents.html:28 +msgid "Version" +msgstr "Cohesion" + +#: app/templates/pages/admin_document_detail.html:57 +msgid "File" +msgstr "Profile" + +#: app/templates/pages/admin_document_detail.html:58 +#: app/templates/pages/notes.html:2 app/templates/pages/notes.html:3 +#: app/templates/pages/teams.html:75 +msgid "Notes" +msgstr "Notes" + +#: app/templates/pages/admin_document_detail.html:59 +msgid "Published" +msgstr "Published" + +#: app/templates/pages/admin_document_detail.html:60 +#: app/templates/pages/admin_documents.html:63 +#: app/templates/pages/contracts.html:30 app/templates/pages/dashboard.html:175 +#: app/templates/pages/my_documents.html:30 app/templates/pages/notes.html:127 +#: app/templates/pages/team_matches.html:34 app/templates/pages/teams.html:151 +#: app/templates/pages/users.html:27 app/templates/pages/view_tryout.html:160 +#: app/templates/pages/view_tryout.html:400 +msgid "Actions" +msgstr "Actions" + +#: app/templates/pages/admin_document_detail.html:67 +#: app/templates/pages/admin_documents.html:73 +#, python-format +msgid "v%(number)s" +msgstr "v%(number)s" + +#: app/templates/pages/admin_document_detail.html:69 +msgid "Current" +msgstr "Create" + +#: app/templates/pages/admin_document_detail.html:75 +#: app/templates/pages/contracts.html:49 app/templates/pages/contracts.html:50 +#: app/templates/pages/my_documents.html:56 +#: app/templates/pages/my_documents.html:57 +msgid "Download" +msgstr "Download" + +#: app/templates/pages/admin_document_detail.html:82 +msgid "No versions published yet." +msgstr "No players registered yet." + +#: app/templates/pages/admin_document_detail.html:93 +msgid "Completion" +msgstr "Completed" + +#: app/templates/pages/admin_document_detail.html:100 +#: app/templates/pages/my_documents.html:102 +msgid "Member" +msgstr "Member" + +#: app/templates/pages/admin_document_detail.html:101 +#: app/templates/pages/create_user.html:31 +#: app/templates/pages/dashboard.html:74 app/templates/pages/edit_user.html:27 +#: app/templates/pages/my_documents.html:103 app/templates/pages/users.html:23 +msgid "Role" +msgstr "Role" + +#: app/templates/pages/admin_document_detail.html:102 +#: app/templates/pages/contracts.html:28 app/templates/pages/dashboard.html:95 +#: app/templates/pages/dashboard.html:118 +#: app/templates/pages/dashboard.html:175 +#: app/templates/pages/dashboard.html:202 +#: app/templates/pages/dashboard.html:321 +#: app/templates/pages/match_form.html:60 +#: app/templates/pages/my_documents.html:29 +#: app/templates/pages/my_teams.html:53 app/templates/pages/notes.html:126 +#: app/templates/pages/one_on_one.html:73 +#: app/templates/pages/team_match_form.html:61 +#: app/templates/pages/team_matches.html:33 app/templates/pages/teams.html:146 +#: app/templates/pages/users.html:25 app/templates/pages/view_tryout.html:155 +#: app/templates/pages/view_tryout.html:398 +msgid "Status" +msgstr "Status" + +#: app/templates/pages/admin_document_detail.html:103 +msgid "Completed at" +msgstr "Completed" + +#: app/templates/pages/admin_document_detail.html:113 +#: app/templates/pages/contracts.html:54 +#: app/templates/pages/my_documents.html:46 +#: app/templates/pages/my_documents.html:115 +msgid "Signed" +msgstr "Signed" + +#: app/templates/pages/admin_document_detail.html:115 +#: app/templates/pages/my_documents.html:48 +#: app/templates/pages/my_documents.html:116 +msgid "Acknowledged" +msgstr "Acknowledged" + +#: app/templates/pages/admin_document_detail.html:117 +#: app/templates/pages/dashboard.html:238 +#: app/templates/pages/my_documents.html:50 +#: app/templates/pages/my_documents.html:117 +#: app/templates/pages/one_on_one.html:85 +msgid "Pending" +msgstr "Pending" + +#: app/templates/pages/admin_document_detail.html:125 +msgid "No one is assigned yet. Publish a version first." +msgstr "No one is assigned yet. Publish a version first." + +#: app/templates/pages/admin_documents.html:3 +msgid "Document management" +msgstr "Document management" + +#: app/templates/pages/admin_documents.html:18 +msgid "Create a document" +msgstr "Create Account" + +#: app/templates/pages/admin_documents.html:24 +#: app/templates/pages/admin_documents.html:58 +#: app/templates/pages/dashboard.html:95 app/templates/pages/dashboard.html:175 +msgid "Title" +msgstr "Title" + +#: app/templates/pages/admin_documents.html:26 +msgid "e.g. Player contract 2026-2027" +msgstr "e.g. Player contract 2026-2027" + +#: app/templates/pages/admin_documents.html:31 +msgid "-- Select a type --" +msgstr "-- Select a team --" + +#: app/templates/pages/admin_documents.html:37 +msgid "The type decides who must complete the document and how." +msgstr "The type decides who must complete the document and how." + +#: app/templates/pages/admin_documents.html:42 +msgid "Create document" +msgstr "Create Account" + +#: app/templates/pages/admin_documents.html:51 +msgid "Existing documents" +msgstr "Existing documents" + +#: app/templates/pages/admin_documents.html:61 +#: app/templates/pages/view_user.html:87 +msgid "Availability" +msgstr "Availability" + +#: app/templates/pages/admin_documents.html:62 +msgid "Progress" +msgstr "In Progress" + +#: app/templates/pages/admin_documents.html:74 +msgid "None" +msgstr "Note" + +#: app/templates/pages/admin_documents.html:78 +msgid "Downloadable" +msgstr "Download" + +#: app/templates/pages/admin_documents.html:80 +msgid "Hidden" +msgstr "Hidden" + +#: app/templates/pages/admin_documents.html:85 +#, python-format +msgid "%(completed)s done" +msgstr "Completed" + +#: app/templates/pages/admin_documents.html:86 +#, python-format +msgid "%(pending)s pending" +msgstr "%(pending)s pending" + +#: app/templates/pages/admin_documents.html:90 +#: app/templates/pages/admin_documents.html:91 +msgid "Manage" +msgstr "Managers" + +#: app/templates/pages/admin_documents.html:96 +#: app/templates/pages/admin_documents.html:97 +msgid "Hide" +msgstr "Hide" + +#: app/templates/pages/admin_documents.html:100 +msgid "Make downloadable" +msgstr "Download" + +#: app/templates/pages/admin_documents.html:101 +msgid "Publish" +msgstr "Publish" + +#: app/templates/pages/admin_documents.html:110 +msgid "No documents yet. Create one above." +msgstr "No documents yet. Create one above." + +#: app/templates/pages/calendar.html:9 app/templates/pages/view_tryout.html:373 msgid "Schedule" msgstr "Schedule" @@ -1275,6 +1676,7 @@ msgstr "Confirm" #: app/templates/pages/calendar.html:102 #: app/templates/pages/team_matches.html:103 +#: app/templates/pages/view_tryout.html:534 msgid "Delete Match" msgstr "Delete Match" @@ -1287,33 +1689,6 @@ msgstr "Edit Match" msgid "View Tryout" msgstr "View Tryout" -#: app/templates/pages/coach_availability.html:2 -#: app/templates/pages/coach_availability.html:3 -msgid "Manage Availability" -msgstr "Manage Availability" - -#: app/templates/pages/coach_availability.html:9 -msgid "Set Your Weekly Availability" -msgstr "Set Your Weekly Availability" - -#: app/templates/pages/coach_availability.html:10 -msgid "Select time slots when you're available for One on One sessions" -msgstr "Select time slots when you're available for One on One sessions" - -#: app/templates/pages/coach_availability.html:14 -#: app/templates/pages/profile.html:256 -msgid "Loading availability grid..." -msgstr "Loading availability grid..." - -#: app/templates/pages/coach_availability.html:19 -msgid "Save Availability" -msgstr "Save Availability" - -#: app/templates/pages/coach_availability.html:22 -#: app/templates/pages/profile.html:240 app/templates/pages/profile.html:260 -msgid "Clear All" -msgstr "Clear All" - #: app/templates/pages/contracts.html:9 #: app/templates/pages/upload_contract.html:2 #: app/templates/pages/upload_contract.html:3 @@ -1334,44 +1709,14 @@ msgstr "Team" msgid "Contract" msgstr "Contract" -#: app/templates/pages/contracts.html:28 app/templates/pages/dashboard.html:95 -#: app/templates/pages/dashboard.html:118 -#: app/templates/pages/dashboard.html:175 -#: app/templates/pages/dashboard.html:202 -#: app/templates/pages/dashboard.html:321 -#: app/templates/pages/match_form.html:60 app/templates/pages/my_teams.html:53 -#: app/templates/pages/notes.html:126 app/templates/pages/one_on_one.html:73 -#: app/templates/pages/team_match_form.html:61 -#: app/templates/pages/team_matches.html:33 app/templates/pages/teams.html:146 -#: app/templates/pages/users.html:25 app/templates/pages/view_tryout.html:155 -#: app/templates/pages/view_tryout.html:327 -msgid "Status" -msgstr "Status" - #: app/templates/pages/contracts.html:29 msgid "Uploaded" msgstr "Uploaded" -#: app/templates/pages/contracts.html:30 app/templates/pages/dashboard.html:175 -#: app/templates/pages/notes.html:127 app/templates/pages/team_matches.html:34 -#: app/templates/pages/teams.html:151 app/templates/pages/users.html:27 -#: app/templates/pages/view_tryout.html:160 -#: app/templates/pages/view_tryout.html:329 -msgid "Actions" -msgstr "Actions" - -#: app/templates/pages/contracts.html:49 app/templates/pages/contracts.html:50 -msgid "Download" -msgstr "Download" - #: app/templates/pages/contracts.html:53 msgid "Download Signed" msgstr "Download Signed" -#: app/templates/pages/contracts.html:54 -msgid "Signed" -msgstr "Signed" - #: app/templates/pages/contracts.html:58 app/templates/pages/contracts.html:89 #: app/templates/pages/contracts.html:102 msgid "Upload Signed Contract" @@ -1405,13 +1750,9 @@ msgstr "" msgid "Select Signed Contract File" msgstr "Select Signed Contract File" -#: app/templates/pages/contracts.html:98 -#: app/templates/pages/upload_contract.html:28 -msgid "Accepted format: PDF" -msgstr "Accepted formats: PDF, DOC, DOCX, JPG, PNG" - #: app/templates/pages/contracts.html:101 -#: app/templates/pages/match_form.html:265 app/templates/pages/notes.html:189 +#: app/templates/pages/match_form.html:265 +#: app/templates/pages/my_documents.html:148 app/templates/pages/notes.html:189 #: app/templates/pages/teams.html:48 app/templates/pages/teams.html:295 #: app/templates/pages/view_tryout.html:245 msgid "Cancel" @@ -1464,12 +1805,6 @@ msgstr "Phone" msgid "Phone number" msgstr "Phone number" -#: app/templates/pages/create_user.html:31 -#: app/templates/pages/dashboard.html:74 app/templates/pages/edit_user.html:27 -#: app/templates/pages/users.html:23 -msgid "Role" -msgstr "Role" - #: app/templates/pages/create_user.html:41 app/templates/pages/login.html:11 #: app/templates/pages/register.html:137 msgid "Password" @@ -1516,18 +1851,16 @@ msgstr "Joined" msgid "Recent Tryouts" msgstr "Recent Tryouts" -#: app/templates/pages/dashboard.html:95 app/templates/pages/dashboard.html:175 -msgid "Title" -msgstr "Title" - #: app/templates/pages/dashboard.html:95 app/templates/pages/dashboard.html:175 #: app/templates/pages/dashboard.html:249 #: app/templates/pages/dashboard.html:321 +#: app/templates/pages/evaluations.html:82 #: app/templates/pages/match_form.html:55 app/templates/pages/my_teams.html:92 #: app/templates/pages/notes.html:123 app/templates/pages/one_on_one.html:70 +#: app/templates/pages/player_evaluations.html:67 #: app/templates/pages/team_match_form.html:34 #: app/templates/pages/team_matches.html:29 -#: app/templates/pages/view_tryout.html:323 +#: app/templates/pages/view_tryout.html:394 msgid "Date" msgstr "Date" @@ -1540,7 +1873,7 @@ msgstr "Upcoming Matches" #: app/templates/pages/dashboard.html:202 #: app/templates/pages/dashboard.html:285 app/templates/pages/my_teams.html:90 #: app/templates/pages/notes.html:69 app/templates/pages/team_matches.html:26 -#: app/templates/pages/teams.html:132 app/templates/pages/view_tryout.html:321 +#: app/templates/pages/teams.html:132 app/templates/pages/view_tryout.html:392 msgid "Match" msgstr "Match" @@ -1548,7 +1881,9 @@ msgstr "Match" #: app/templates/pages/dashboard.html:202 #: app/templates/pages/dashboard.html:249 #: app/templates/pages/dashboard.html:285 -#: app/templates/pages/dashboard.html:321 app/templates/pages/notes.html:78 +#: app/templates/pages/dashboard.html:321 +#: app/templates/pages/evaluations.html:76 app/templates/pages/notes.html:78 +#: app/templates/pages/player_evaluations.html:61 msgid "Tryout" msgstr "Tryout" @@ -1576,11 +1911,6 @@ msgstr "My Evaluations" msgid "Evaluations Done" msgstr "Evaluations Done" -#: app/templates/pages/dashboard.html:238 -#: app/templates/pages/one_on_one.html:85 -msgid "Pending" -msgstr "Pending" - #: app/templates/pages/dashboard.html:244 msgid "Recent Evaluations" msgstr "Recent Evaluations" @@ -1623,7 +1953,7 @@ msgid "Avg Score" msgstr "Avg Score" #: app/templates/pages/dashboard.html:373 -#: app/templates/pages/view_tryout.html:532 +#: app/templates/pages/view_tryout.html:609 msgid "No evaluations yet." msgstr "No evaluations yet." @@ -1817,7 +2147,7 @@ msgid "Recommended Position" msgstr "Recommended Position" #: app/templates/pages/evaluate_player.html:109 -#: app/templates/pages/view_tryout.html:280 +#: app/templates/pages/view_tryout.html:339 msgid "-- Select Position --" msgstr "-- Select Position --" @@ -1826,16 +2156,11 @@ msgid "Enter position (optional)" msgstr "Enter position (optional)" #: app/templates/pages/evaluate_player.html:121 -#: app/templates/pages/player_evaluations.html -#: app/templates/pages/evaluations.html +#: app/templates/pages/evaluations.html:108 +#: app/templates/pages/player_evaluations.html:100 msgid "Comments" msgstr "Comments" -#: app/templates/pages/player_evaluations.html -#: app/templates/pages/evaluations.html -msgid "No comments" -msgstr "No comments" - #: app/templates/pages/evaluate_player.html:122 msgid "Enter your evaluation notes..." msgstr "Enter your evaluation notes..." @@ -1845,67 +2170,120 @@ msgid "Add note for this player" msgstr "Add note for this player" #: app/templates/pages/evaluate_player.html:147 -#: app/templates/pages/view_tryout.html:499 +#: app/templates/pages/evaluations.html:75 +#: app/templates/pages/evaluations.html:114 +#: app/templates/pages/player_evaluations.html:60 +#: app/templates/pages/player_evaluations.html:109 +#: app/templates/pages/view_tryout.html:576 msgid "Evaluator" msgstr "Evaluator" #: app/templates/pages/evaluate_player.html:148 -#: app/templates/pages/view_tryout.html:500 +#: app/templates/pages/view_tryout.html:577 msgid "Mecanics" msgstr "Mecanics" #: app/templates/pages/evaluate_player.html:149 -#: app/templates/pages/view_tryout.html:501 +#: app/templates/pages/view_tryout.html:578 msgid "Cohesion" msgstr "Cohesion" #: app/templates/pages/evaluate_player.html:150 -#: app/templates/pages/view_tryout.html:502 +#: app/templates/pages/view_tryout.html:579 msgid "Communication" msgstr "Communication" #: app/templates/pages/evaluate_player.html:151 -#: app/templates/pages/view_tryout.html:503 +#: app/templates/pages/view_tryout.html:580 msgid "Gamesense" msgstr "Gamesense" #: app/templates/pages/evaluate_player.html:152 -#: app/templates/pages/view_tryout.html:504 +#: app/templates/pages/view_tryout.html:581 msgid "Versatility" msgstr "Versatility" #: app/templates/pages/evaluate_player.html:153 -#: app/templates/pages/view_tryout.html:505 +#: app/templates/pages/view_tryout.html:582 msgid "Discipline" msgstr "Discipline" #: app/templates/pages/evaluate_player.html:154 -#: app/templates/pages/view_tryout.html:506 +#: app/templates/pages/view_tryout.html:583 msgid "Analysis" msgstr "Analysis" #: app/templates/pages/evaluate_player.html:155 -#: app/templates/pages/view_tryout.html:507 +#: app/templates/pages/view_tryout.html:584 msgid "Sport Ethics" msgstr "Sport Ethics" #: app/templates/pages/evaluate_player.html:156 -#: app/templates/pages/view_tryout.html:508 +#: app/templates/pages/view_tryout.html:585 msgid "Mental" msgstr "Mental" #: app/templates/pages/evaluate_player.html:157 -#: app/templates/pages/view_tryout.html:509 +#: app/templates/pages/evaluations.html:80 +#: app/templates/pages/player_evaluations.html:65 +#: app/templates/pages/view_tryout.html:586 msgid "Overall" msgstr "Overall" #: app/templates/pages/evaluate_player.html:158 -#: app/templates/pages/my_teams.html:54 -#: app/templates/pages/view_tryout.html:286 +#: app/templates/pages/evaluations.html:81 app/templates/pages/my_teams.html:54 +#: app/templates/pages/player_evaluations.html:66 +#: app/templates/pages/view_tryout.html:345 msgid "Position" msgstr "Position" -#: app/templates/pages/evaluations.html:97 +#: app/templates/pages/evaluations.html:27 +#: app/templates/pages/player_evaluations.html:9 +msgid "Table" +msgstr "Title" + +#: app/templates/pages/evaluations.html:31 +#: app/templates/pages/player_evaluations.html:12 +msgid "By player" +msgstr "Player" + +#: app/templates/pages/evaluations.html:38 +#: app/templates/pages/player_evaluations.html:3 +msgid "Player Evaluations" +msgstr "Player Evaluation" + +#: app/templates/pages/evaluations.html:49 +msgid "Open" +msgstr "Opponent" + +#: app/templates/pages/evaluations.html:64 +msgid "Open player view" +msgstr "No players available" + +#: app/templates/pages/evaluations.html:88 +#: app/templates/pages/evaluations.html:114 +#: app/templates/pages/player_evaluations.html:73 +#: app/templates/pages/player_evaluations.html:109 +msgid "Deleted evaluator" +msgstr "Evaluator" + +#: app/templates/pages/evaluations.html:89 +#: app/templates/pages/evaluations.html:115 +#: app/templates/pages/player_evaluations.html:74 +#: app/templates/pages/player_evaluations.html:110 +msgid "Deleted tryout" +msgstr "Delete Tryout" + +#: app/templates/pages/evaluations.html:99 +msgid "No evaluations for this player." +msgstr "No evaluations yet." + +#: app/templates/pages/evaluations.html:120 +#: app/templates/pages/player_evaluations.html:118 +msgid "No comments" +msgstr "No comments" + +#: app/templates/pages/evaluations.html:132 msgid "No evaluations yet" msgstr "No evaluations yet" @@ -2005,7 +2383,7 @@ msgstr "Reset time selection" msgid "Reset Time" msgstr "Reset Time" -#: app/templates/pages/match_form.html:86 app/templates/pages/profile.html:236 +#: app/templates/pages/match_form.html:86 app/templates/pages/profile.html:193 msgid "Loading..." msgstr "Loading..." @@ -2111,6 +2489,66 @@ msgstr "T2" msgid "No players available" msgstr "No players available" +#: app/templates/pages/my_documents.html:2 +#: app/templates/pages/my_documents.html:3 +#: app/templates/pages/my_documents.html:4 +msgid "My Documents" +msgstr "My Tryouts" + +#: app/templates/pages/my_documents.html:18 +msgid "Documents to sign or acknowledge" +msgstr "Documents to sign or acknowledge" + +#: app/templates/pages/my_documents.html:26 +msgid "Document" +msgstr "No comments" + +#: app/templates/pages/my_documents.html:40 +#, python-format +msgid "Version %(number)s" +msgstr "Phone number" + +#: app/templates/pages/my_documents.html:62 +msgid "Return signed" +msgstr "Return Signed" + +#: app/templates/pages/my_documents.html:63 +msgid "Sign" +msgstr "Signed" + +#: app/templates/pages/my_documents.html:68 +msgid "Confirm that you have read and understood this document" +msgstr "Confirm that you have read and understood this document" + +#: app/templates/pages/my_documents.html:69 +msgid "Acknowledge" +msgstr "Acknowledge" + +#: app/templates/pages/my_documents.html:84 +msgid "No documents for now" +msgstr "No tryouts found" + +#: app/templates/pages/my_documents.html:85 +msgid "Nothing has been published for you yet. Check back later." +msgstr "No matches scheduled yet. Check back later!" + +#: app/templates/pages/my_documents.html:95 +msgid "Team progress" +msgstr "In Progress" + +#: app/templates/pages/my_documents.html:118 +msgid "Not required" +msgstr "A date is required." + +#: app/templates/pages/my_documents.html:136 +#: app/templates/pages/my_documents.html:149 +msgid "Upload Signed Document" +msgstr "Upload Signed Contract" + +#: app/templates/pages/my_documents.html:143 +msgid "Select Signed Document File" +msgstr "Select Signed Contract File" + #: app/templates/pages/my_teams.html:18 app/templates/pages/teams.html:84 #: app/templates/pages/teams.html:273 msgid "Coaches" @@ -2132,14 +2570,14 @@ msgstr "No players on this team." #: app/templates/pages/my_teams.html:93 app/templates/pages/notes.html:124 #: app/templates/pages/one_on_one.html:71 #: app/templates/pages/team_matches.html:30 -#: app/templates/pages/view_tryout.html:325 +#: app/templates/pages/view_tryout.html:396 msgid "Time" msgstr "Time" #: app/templates/pages/my_teams.html:95 #: app/templates/pages/team_match_form.html:115 #: app/templates/pages/team_matches.html:32 -#: app/templates/pages/view_tryout.html:326 +#: app/templates/pages/view_tryout.html:397 msgid "Presence" msgstr "Presence" @@ -2159,11 +2597,6 @@ msgstr "No Teams" msgid "You are not currently assigned to any team." msgstr "You are not currently assigned to any team." -#: app/templates/pages/notes.html:2 app/templates/pages/notes.html:3 -#: app/templates/pages/teams.html:75 -msgid "Notes" -msgstr "Notes" - #: app/templates/pages/notes.html:12 app/templates/pages/one_on_one.html:11 #: app/templates/pages/player_personal_notes.html:55 #: app/templates/pages/team_notes.html:2 app/templates/pages/team_notes.html:3 @@ -2385,6 +2818,18 @@ msgstr "-- Select End Time --" msgid "Recent Notes" msgstr "Recent Notes" +#: app/templates/pages/player_evaluations.html:42 +msgid "Combined average" +msgstr "Combined average" + +#: app/templates/pages/player_evaluations.html:42 +msgid "evaluations" +msgstr "Evaluations" + +#: app/templates/pages/player_evaluations.html:87 +msgid "No evaluations for this player yet" +msgstr "No evaluations yet" + #: app/templates/pages/players_to_evaluate.html:2 #: app/templates/pages/players_to_evaluate.html:3 msgid "Players to Evaluate" @@ -2426,23 +2871,23 @@ msgstr "Evaluations Given" msgid "No statistics available for this role." msgstr "No statistics available for this role." -#: app/templates/pages/profile.html:195 +#: app/templates/pages/profile.html:152 msgid "My Contracts" msgstr "My Contracts" -#: app/templates/pages/profile.html:217 +#: app/templates/pages/profile.html:174 msgid "View All Contracts" msgstr "View All Contracts" -#: app/templates/pages/profile.html:221 +#: app/templates/pages/profile.html:178 msgid "No contracts have been uploaded for you yet." msgstr "No contracts have been uploaded for you yet." -#: app/templates/pages/profile.html:231 +#: app/templates/pages/profile.html:188 msgid "My Disponibilities" msgstr "My Disponibilities" -#: app/templates/pages/profile.html:234 +#: app/templates/pages/profile.html:191 msgid "" "Select your available time blocks for matches (5pm to 12am). Green = " "selected, Gray = available to select." @@ -2450,11 +2895,15 @@ msgstr "" "Select your available time blocks for matches (5pm to 12am). Green = " "selected, Gray = available to select." -#: app/templates/pages/profile.html:251 +#: app/templates/pages/profile.html:197 app/templates/pages/profile.html:217 +msgid "Clear All" +msgstr "Clear All" + +#: app/templates/pages/profile.html:208 msgid "My Coaching Availability" msgstr "My Coaching Availability" -#: app/templates/pages/profile.html:252 +#: app/templates/pages/profile.html:209 msgid "" "Select time slots when you're available for One on One sessions (8am to " "10pm)." @@ -2462,7 +2911,11 @@ msgstr "" "Select time slots when you're available for One on One sessions (8am to " "10pm)." -#: app/templates/pages/profile.html:500 +#: app/templates/pages/profile.html:213 +msgid "Loading availability grid..." +msgstr "Loading availability grid..." + +#: app/templates/pages/profile.html:464 msgid "Click or click-and-drag to select your available hours" msgstr "Click or click-and-drag to select your available hours" @@ -2599,7 +3052,7 @@ msgid "No players on this team. Add players in the Teams page first." msgstr "No players on this team. Add players in the Teams page first." #: app/templates/pages/team_match_form.html:107 -#: app/templates/pages/view_tryout.html:324 +#: app/templates/pages/view_tryout.html:395 msgid "Participants" msgstr "Participants" @@ -2617,6 +3070,7 @@ msgid "+ Schedule Match" msgstr "+ Schedule Match" #: app/templates/pages/team_matches.html:101 +#: app/templates/pages/view_tryout.html:532 msgid "Delete this match?" msgstr "Delete this match?" @@ -2687,7 +3141,8 @@ msgstr "Create Team" #: app/templates/pages/teams.html:64 app/templates/pages/users.html:59 #: app/templates/pages/view_tryout.html:29 -#: app/templates/pages/view_tryout.html:459 +#: app/templates/pages/view_tryout.html:256 +#: app/templates/pages/view_tryout.html:530 msgid "Edit" msgstr "Edit" @@ -2696,7 +3151,7 @@ msgstr "Edit" msgid "Delete team %(name)s? It will be unassigned from any linked tryouts." msgstr "Delete team %(name)s? It will be unassigned from any linked tryouts." -#: app/templates/pages/teams.html:69 +#: app/templates/pages/teams.html:69 app/templates/pages/view_tryout.html:535 msgid "Delete" msgstr "Delete" @@ -2914,7 +3369,7 @@ msgid "Tryout Details" msgstr "Tryout Details" #: app/templates/pages/view_tryout.html:14 -#: app/templates/pages/view_tryout.html:306 +#: app/templates/pages/view_tryout.html:377 msgid "Schedule Match" msgstr "Schedule Match" @@ -2984,6 +3439,7 @@ msgid "No players registered yet." msgstr "No players registered yet." #: app/templates/pages/view_tryout.html:243 +#: app/templates/pages/view_tryout.html:289 msgid "Team name" msgstr "Team name" @@ -2991,47 +3447,86 @@ msgstr "Team name" msgid "Create" msgstr "Create" -#: app/templates/pages/view_tryout.html:263 +#: app/templates/pages/view_tryout.html:270 +#: app/templates/pages/view_tryout.html:320 msgid "No players assigned yet." msgstr "No players assigned yet." -#: app/templates/pages/view_tryout.html:271 +#: app/templates/pages/view_tryout.html:282 +#, python-format +msgid "Edit Team: %(name)s" +msgstr "Team name" + +#: app/templates/pages/view_tryout.html:291 +msgid "Rename" +msgstr "Name" + +#: app/templates/pages/view_tryout.html:297 +msgid "Roster" +msgstr "Register" + +#: app/templates/pages/view_tryout.html:306 +msgid "No role" +msgstr "Role" + +#: app/templates/pages/view_tryout.html:312 +#, python-format +msgid "Remove %(player)s from this team?" +msgstr "Remove %(player)s from %(team)s?" + +#: app/templates/pages/view_tryout.html:314 +msgid "Remove from team" +msgstr "From team" + +#: app/templates/pages/view_tryout.html:326 +msgid "Add Player" +msgstr "Max Players" + +#: app/templates/pages/view_tryout.html:330 msgid "Select player..." msgstr "Select player..." -#: app/templates/pages/view_tryout.html:288 +#: app/templates/pages/view_tryout.html:347 msgid "Add" msgstr "Add" -#: app/templates/pages/view_tryout.html:293 +#: app/templates/pages/view_tryout.html:353 +msgid "" +"Delete this team? Players already in the team will be removed and matches" +" referencing it will be unlinked." +msgstr "" +"Delete this team? Players already in the team will be removed and matches" +" referencing it will be unlinked." + +#: app/templates/pages/view_tryout.html:355 +msgid "Delete Team" +msgstr "Select Teams" + +#: app/templates/pages/view_tryout.html:364 msgid "No teams created yet." msgstr "No teams created yet." -#: app/templates/pages/view_tryout.html:322 -msgid "Type" -msgstr "Type" - -#: app/templates/pages/view_tryout.html:387 +#: app/templates/pages/view_tryout.html:458 msgid "Toggle your attendance" msgstr "Toggle your attendance" -#: app/templates/pages/view_tryout.html:462 +#: app/templates/pages/view_tryout.html:539 msgid "Add Note for this Match" msgstr "Add Note for this Match" -#: app/templates/pages/view_tryout.html:463 +#: app/templates/pages/view_tryout.html:540 msgid "Note" msgstr "Note" -#: app/templates/pages/view_tryout.html:481 +#: app/templates/pages/view_tryout.html:558 msgid "No matches scheduled yet. Check back later!" msgstr "No matches scheduled yet. Check back later!" -#: app/templates/pages/view_tryout.html:491 +#: app/templates/pages/view_tryout.html:568 msgid "Evaluation Summary" msgstr "Evaluation Summary" -#: app/templates/pages/view_tryout.html:510 +#: app/templates/pages/view_tryout.html:587 msgid "Recommendation" msgstr "Recommendation" @@ -3043,10 +3538,6 @@ msgstr "Profile" msgid "View Profile" msgstr "View Profile" -#: app/templates/pages/view_user.html:87 -msgid "Availability" -msgstr "Availability" - #~ msgid "×" #~ msgstr "×" @@ -3107,3 +3598,18 @@ msgstr "Availability" #~ msgid "No players registered for this tryout." #~ msgstr "No players registered for this tryout." +#~ msgid "Only coaches can manage availability." +#~ msgstr "Only coaches can manage availability." + +#~ msgid "Manage Availability" +#~ msgstr "Manage Availability" + +#~ msgid "Set Your Weekly Availability" +#~ msgstr "Set Your Weekly Availability" + +#~ msgid "Select time slots when you're available for One on One sessions" +#~ msgstr "Select time slots when you're available for One on One sessions" + +#~ msgid "Save Availability" +#~ msgstr "Save Availability" + diff --git a/app/translations/fr/LC_MESSAGES/messages.mo b/app/translations/fr/LC_MESSAGES/messages.mo index 1ff1e2e..c5fd53d 100644 Binary files a/app/translations/fr/LC_MESSAGES/messages.mo and b/app/translations/fr/LC_MESSAGES/messages.mo differ diff --git a/app/translations/fr/LC_MESSAGES/messages.po b/app/translations/fr/LC_MESSAGES/messages.po index a41082b..bfcb0fd 100644 --- a/app/translations/fr/LC_MESSAGES/messages.po +++ b/app/translations/fr/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: team-tryouts VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2026-08-26 22:04-0400\n" +"POT-Creation-Date: 2026-09-10 12:46-0400\n" "PO-Revision-Date: 2026-08-07 20:22-0400\n" "Last-Translator: FULL NAME \n" "Language: fr\n" @@ -19,12 +19,20 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.18.0\n" -#: app/app.py:564 +#: app/app.py:379 +msgid "" +"This page was changed by someone else. Reload to see the latest changes " +"before saving." +msgstr "" +"Cette page a été modifiée par quelqu'un d'autre. Rechargez la page pour " +"voir les derniers changements avant d'enregistrer." + +#: app/app.py:614 msgid "Please log in to access this page." msgstr "Veuillez vous connecter pour accéder à cette page." #: app/forms.py:37 app/routes/auth.py:230 app/routes/auth.py:389 -#: app/routes/auth.py:403 app/routes/users/contracts.py:120 +#: app/routes/auth.py:403 app/routes/users/contracts.py:121 #, python-format msgid "%(field)s: %(msg)s" msgstr "%(field)s : %(msg)s" @@ -80,7 +88,7 @@ msgstr "Le nom complet est obligatoire." msgid "Passwords do not match." msgstr "Les mots de passe ne concordent pas." -#: app/validators.py:284 app/validators.py:924 +#: app/validators.py:284 app/validators.py:936 msgid "Unknown game." msgstr "Jeu inconnu." @@ -100,7 +108,7 @@ msgstr "Plateforme inconnue pour ce jeu." msgid "Invalid role selected." msgstr "Rôle sélectionné invalide." -#: app/validators.py:473 app/validators.py:596 app/validators.py:629 +#: app/validators.py:473 app/validators.py:596 app/validators.py:641 msgid "Player must be selected." msgstr "Vous devez choisir un joueur." @@ -108,15 +116,15 @@ msgstr "Vous devez choisir un joueur." msgid "Notes must be 2000 characters or less." msgstr "Les notes ne doivent pas dépasser 2000 caractères." -#: app/validators.py:513 app/validators.py:994 +#: app/validators.py:513 app/validators.py:1006 msgid "Invalid coach selection." msgstr "Sélection de coach invalide." -#: app/validators.py:519 app/validators.py:1000 +#: app/validators.py:519 app/validators.py:1012 msgid "Invalid manager selection." msgstr "Sélection de gérant invalide." -#: app/validators.py:537 app/validators.py:595 app/validators.py:628 +#: app/validators.py:537 app/validators.py:595 app/validators.py:640 msgid "Invalid player selection." msgstr "Sélection de joueur invalide." @@ -136,134 +144,169 @@ msgstr "Statut d’inscription inconnu." msgid "Team name must be between 1 and 100 characters." msgstr "Le nom de l’équipe doit compter de 1 à 100 caractères." -#: app/validators.py:603 +#: app/validators.py:603 app/validators.py:615 msgid "Position must be 50 characters or less." msgstr "La position ne doit pas dépasser 50 caractères." -#: app/validators.py:616 +#: app/validators.py:628 msgid "Note content must be between 1 and 5000 characters." msgstr "La note doit compter de 1 à 5000 caractères." -#: app/validators.py:642 +#: app/validators.py:654 msgid "Select at most one note context." msgstr "Sélectionnez au plus un contexte pour la note." -#: app/validators.py:654 +#: app/validators.py:666 msgid "Rejection reason must be 2000 characters or less." msgstr "Le motif de refus ne doit pas dépasser 2000 caractères." -#: app/validators.py:678 +#: app/validators.py:690 msgid "Date must be in YYYY-MM-DD format." msgstr "La date doit être au format AAAA-MM-JJ." -#: app/validators.py:679 +#: app/validators.py:691 msgid "A date is required." msgstr "Une date est requise." -#: app/validators.py:685 app/validators.py:750 +#: app/validators.py:697 app/validators.py:762 msgid "Start time must be in HH:MM format." msgstr "L’heure de début doit être au format HH:MM." -#: app/validators.py:686 app/validators.py:751 +#: app/validators.py:698 app/validators.py:763 msgid "A start time is required." msgstr "Une heure de début est requise." -#: app/validators.py:692 +#: app/validators.py:704 msgid "End time must be in HH:MM format." msgstr "L’heure de fin doit être au format HH:MM." -#: app/validators.py:693 +#: app/validators.py:705 msgid "An end time is required." msgstr "Une heure de fin est requise." -#: app/validators.py:697 +#: app/validators.py:709 msgid "Points must be 2000 characters or less." msgstr "Les points ne doivent pas dépasser 2000 caractères." -#: app/validators.py:712 +#: app/validators.py:724 msgid "End time must be after start time." msgstr "L'heure de fin doit être postérieure à l'heure de début." -#: app/validators.py:741 app/validators.py:743 +#: app/validators.py:753 app/validators.py:755 msgid "Day must be 0 (Monday) to 6 (Sunday)." msgstr "Le jour doit aller de 0 (lundi) à 6 (dimanche)." -#: app/validators.py:744 +#: app/validators.py:756 msgid "A day is required." msgstr "Un jour est requis." -#: app/validators.py:779 +#: app/validators.py:791 msgid "Player selection is malformed." msgstr "La sélection de joueurs est mal formée." -#: app/validators.py:805 app/validators.py:915 +#: app/validators.py:817 app/validators.py:927 msgid "A title is required." msgstr "Un titre est requis." -#: app/validators.py:814 +#: app/validators.py:826 msgid "Invalid date format." msgstr "Format de date invalide." -#: app/validators.py:819 app/validators.py:826 +#: app/validators.py:831 app/validators.py:838 msgid "Invalid time format." msgstr "Format d’heure invalide." -#: app/validators.py:820 +#: app/validators.py:832 msgid "Start time is required. Please select a time slot." msgstr "L’heure de début est obligatoire. Choisissez une plage horaire." -#: app/validators.py:834 +#: app/validators.py:846 msgid "Unknown match status." msgstr "Statut de match inconnu." -#: app/validators.py:850 +#: app/validators.py:862 msgid "The end time must come after the start time." msgstr "L'heure de fin doit être postérieure à l'heure de début." -#: app/validators.py:864 +#: app/validators.py:876 msgid "Unknown match type." msgstr "Type de match inconnu." -#: app/validators.py:876 +#: app/validators.py:888 msgid "A team cannot play against itself." msgstr "Une équipe ne peut pas jouer contre elle-même." -#: app/validators.py:929 +#: app/validators.py:941 msgid "Invalid start date format." msgstr "Format de date de début invalide." -#: app/validators.py:930 +#: app/validators.py:942 msgid "A start date is required." msgstr "Une date de début est requise." -#: app/validators.py:936 +#: app/validators.py:948 msgid "Invalid end date format." msgstr "Format de date de fin invalide." -#: app/validators.py:944 +#: app/validators.py:956 msgid "A tryout must allow at least one player." msgstr "Une sélection doit accepter au moins un joueur." -#: app/validators.py:947 +#: app/validators.py:959 msgid "The player limit must be a whole number." msgstr "La limite de joueurs doit être un nombre entier." -#: app/validators.py:960 +#: app/validators.py:972 msgid "End date cannot be before start date." msgstr "La date de fin ne peut pas précéder la date de début." -#: app/validators.py:987 app/validators.py:988 +#: app/validators.py:999 app/validators.py:1000 msgid "Team name is required." msgstr "Le nom de l’équipe est obligatoire." -#: app/validators.py:1012 +#: app/validators.py:1024 msgid "Scores run from 1 to 10." msgstr "Les notes vont de 1 à 10." -#: app/validators.py:1013 +#: app/validators.py:1025 msgid "A score must be a whole number from 1 to 10." msgstr "Une note doit être un nombre entier de 1 à 10." +#: app/validators.py:1078 +msgid "Title is required." +msgstr "Un titre est requis." + +#: app/validators.py:1082 +msgid "That document type is not recognised." +msgstr "Ce type de document n'est pas reconnu." + +#: app/routes/admin.py:485 +#, python-format +msgid "Document \"%(title)s\" created." +msgstr "Équipe « %(team_name)s » créée." + +#: app/routes/admin.py:510 app/routes/admin.py:584 +#: app/routes/users/documents.py:144 app/routes/users/documents.py:206 +msgid "Document storage is temporarily unavailable. Please try again later." +msgstr "" +"Le stockage des contrats est temporairement indisponible. Veuillez " +"r\\xc3\\xa9essayer plus tard." + +#: app/routes/admin.py:534 +#, python-format +msgid "Version %(number)s of \"%(title)s\" published." +msgstr "Version %(number)s de « %(title)s » publiée." + +#: app/routes/admin.py:560 +#, python-format +msgid "\"%(title)s\" is now downloadable by team members." +msgstr "« %(title)s » est maintenant téléchargeable par les membres des équipes." + +#: app/routes/admin.py:566 +#, python-format +msgid "\"%(title)s\" is no longer downloadable." +msgstr "« %(title)s » n'est plus téléchargeable." + #: app/routes/auth.py:247 msgid "This account has been deactivated." msgstr "Ce compte a été désactivé." @@ -346,320 +389,348 @@ msgstr "Compte Discord connecté. Votre profil a été pré-rempli." msgid "You have been logged out." msgstr "Vous avez été déconnecté." -#: app/routes/evaluations.py:53 +#: app/routes/evaluations.py:169 app/routes/evaluations.py:281 msgid "You do not have permission to view evaluations." msgstr "Vous n’avez pas les droits pour consulter les évaluations." -#: app/routes/evaluations.py:143 +#: app/routes/evaluations.py:286 +msgid "Can only view evaluations for players." +msgstr "Seuls des joueurs peuvent être évalués." + +#: app/routes/evaluations.py:334 msgid "You do not have permission to evaluate players." msgstr "Vous n’avez pas les droits pour évaluer des joueurs." -#: app/routes/evaluations.py:148 app/routes/evaluations.py:234 +#: app/routes/evaluations.py:339 app/routes/evaluations.py:425 msgid "You do not have permission to evaluate players in this tryout." msgstr "Vous n’avez pas les droits pour évaluer des joueurs dans cette sélection." -#: app/routes/evaluations.py:159 +#: app/routes/evaluations.py:350 msgid "Player is not registered for this tryout." msgstr "Ce joueur n’est pas inscrit à cette sélection." -#: app/routes/evaluations.py:164 +#: app/routes/evaluations.py:355 msgid "Can only evaluate players." msgstr "Seuls des joueurs peuvent être évalués." -#: app/routes/evaluations.py:210 +#: app/routes/evaluations.py:401 msgid "Evaluation submitted successfully!" msgstr "Évaluation enregistrée." -#: app/routes/evaluations.py:212 +#: app/routes/evaluations.py:403 msgid "Evaluation updated!" msgstr "Évaluation mise à jour." -#: app/routes/evaluations.py:229 app/routes/teams.py:340 -#: app/routes/teams.py:383 app/routes/teams.py:426 app/routes/teams.py:454 -#: app/routes/teams.py:482 app/routes/teams.py:519 app/routes/tryouts.py:507 -#: app/routes/tryouts.py:531 app/routes/tryouts.py:559 -#: app/routes/tryouts.py:610 app/routes/tryouts.py:650 -#: app/routes/tryouts.py:677 +#: app/routes/evaluations.py:420 app/routes/teams.py:347 +#: app/routes/teams.py:391 app/routes/teams.py:435 app/routes/teams.py:463 +#: app/routes/teams.py:491 app/routes/teams.py:529 app/routes/tryouts.py:521 +#: app/routes/tryouts.py:548 app/routes/tryouts.py:579 +#: app/routes/tryouts.py:633 app/routes/tryouts.py:676 +#: app/routes/tryouts.py:706 app/routes/tryouts.py:756 +#: app/routes/tryouts.py:788 app/routes/tryouts.py:832 +#: app/routes/tryouts.py:870 msgid "Permission denied." msgstr "Accès refusé." +#: app/routes/evaluations.py:541 +msgid "Scores must be whole numbers from 1 to 10." +msgstr "Une note doit être un nombre entier de 1 à 10." + #: app/routes/main.py:55 msgid "That language is not available." msgstr "Cette langue n’est pas disponible." -#: app/routes/matches.py:383 +#: app/routes/matches.py:444 msgid "You do not have permission to schedule matches for this tryout." msgstr "Vous n’avez pas les droits pour planifier des matchs pour cette sélection." -#: app/routes/matches.py:387 app/routes/matches.py:463 +#: app/routes/matches.py:448 app/routes/matches.py:524 msgid "This tryout has ended. Matches can no longer be created or modified." msgstr "" "Cette sélection est terminée. Les matchs ne peuvent plus être créés ni " "modifiés." -#: app/routes/matches.py:445 +#: app/routes/matches.py:506 msgid "Match scheduled successfully!" msgstr "Match planifié." -#: app/routes/matches.py:459 app/routes/team_matches.py:235 +#: app/routes/matches.py:520 app/routes/team_matches.py:238 msgid "You do not have permission to edit this match." msgstr "Vous n’avez pas les droits pour modifier ce match." -#: app/routes/matches.py:552 app/routes/team_matches.py:265 +#: app/routes/matches.py:684 app/routes/team_matches.py:268 msgid "Match updated successfully!" msgstr "Match mis à jour." -#: app/routes/matches.py:588 app/routes/team_matches.py:284 +#: app/routes/matches.py:720 app/routes/team_matches.py:289 msgid "You do not have permission to delete this match." msgstr "Vous n’avez pas les droits pour supprimer ce match." -#: app/routes/matches.py:591 +#: app/routes/matches.py:723 msgid "This tryout has ended. Matches can no longer be deleted." msgstr "Cette sélection est terminée. Les matchs ne peuvent plus être supprimés." -#: app/routes/matches.py:604 app/routes/team_matches.py:289 +#: app/routes/matches.py:736 app/routes/team_matches.py:294 msgid "Match deleted successfully." msgstr "Match supprimé." -#: app/routes/team_matches.py:128 +#: app/routes/team_matches.py:131 msgid "You do not have permission to schedule matches for this team." msgstr "Vous n’avez pas les droits pour planifier des matchs pour cette équipe." -#: app/routes/team_matches.py:220 +#: app/routes/team_matches.py:223 #, python-format msgid "Team match \"%(title)s\" scheduled successfully!" msgstr "Match d’équipe « %(title)s » planifié." -#: app/routes/teams.py:43 +#: app/routes/teams.py:45 msgid "Use My Team(s) to view your teams." msgstr "Utilisez « Mon ou mes équipes » pour consulter vos équipes." -#: app/routes/teams.py:46 +#: app/routes/teams.py:48 msgid "You do not have permission to view teams." msgstr "Vous n’avez pas les droits pour consulter les équipes." -#: app/routes/teams.py:78 +#: app/routes/teams.py:80 msgid "This page is for players." msgstr "Cette page est réservée aux joueurs." -#: app/routes/teams.py:185 +#: app/routes/teams.py:187 msgid "You do not have permission to create teams." msgstr "Vous n’avez pas les droits pour créer une équipe." -#: app/routes/teams.py:196 app/routes/teams.py:238 +#: app/routes/teams.py:198 app/routes/teams.py:243 #, python-format msgid "Team \"%(name)s\" already exists." msgstr "L’équipe « %(name)s » existe déjà." -#: app/routes/teams.py:217 +#: app/routes/teams.py:222 #, python-format msgid "Team \"%(name)s\" created successfully!" msgstr "Équipe « %(name)s » créée." -#: app/routes/teams.py:227 +#: app/routes/teams.py:232 msgid "You do not have permission to edit this team." msgstr "Vous n’avez pas les droits pour modifier cette équipe." -#: app/routes/teams.py:271 +#: app/routes/teams.py:278 #, python-format msgid "Team \"%(name)s\" updated successfully!" msgstr "Équipe « %(name)s » mise à jour." -#: app/routes/teams.py:299 +#: app/routes/teams.py:306 msgid "You do not have permission to delete teams." msgstr "Vous n’avez pas les droits pour supprimer une équipe." -#: app/routes/teams.py:330 +#: app/routes/teams.py:337 #, python-format msgid "Team \"%(name)s\" deleted successfully." msgstr "Équipe « %(name)s » supprimée." -#: app/routes/teams.py:347 +#: app/routes/teams.py:354 msgid "Please select a coach." msgstr "Veuillez choisir un coach." -#: app/routes/teams.py:352 +#: app/routes/teams.py:359 msgid "Only coaches can be assigned as coach." msgstr "Seuls les coachs peuvent être assignés comme coach." -#: app/routes/teams.py:358 +#: app/routes/teams.py:365 #, python-format msgid "%(username)s is already a coach of %(name)s." msgstr "%(username)s est déjà coach de %(name)s." -#: app/routes/teams.py:371 +#: app/routes/teams.py:379 #, python-format msgid "%(username)s added as coach of %(name)s." msgstr "%(username)s a été ajouté comme coach de %(name)s." -#: app/routes/teams.py:390 +#: app/routes/teams.py:398 msgid "Please select a manager." msgstr "Veuillez choisir un gérant." -#: app/routes/teams.py:395 +#: app/routes/teams.py:403 msgid "Only managers can be assigned as manager." msgstr "Seuls les gérants peuvent être assignés comme gérant." -#: app/routes/teams.py:401 +#: app/routes/teams.py:409 #, python-format msgid "%(username)s is already a manager of %(name)s." msgstr "%(username)s est déjà gérant de %(name)s." -#: app/routes/teams.py:414 +#: app/routes/teams.py:423 #, python-format msgid "%(username)s added as manager of %(name)s." msgstr "%(username)s a été ajouté comme gérant de %(name)s." -#: app/routes/teams.py:444 +#: app/routes/teams.py:453 #, python-format msgid "Coach removed from %(name)s." msgstr "Coach retiré de %(name)s." -#: app/routes/teams.py:472 +#: app/routes/teams.py:481 #, python-format msgid "Manager removed from %(name)s." msgstr "Gérant retiré de %(name)s." -#: app/routes/teams.py:489 app/routes/tryouts.py:568 +#: app/routes/teams.py:498 app/routes/tryouts.py:588 msgid "Please select a player." msgstr "Veuillez choisir un joueur." -#: app/routes/teams.py:495 +#: app/routes/teams.py:504 msgid "Can only assign players to teams." msgstr "Seuls des joueurs peuvent être assignés à une équipe." -#: app/routes/teams.py:501 +#: app/routes/teams.py:510 #, python-format msgid "%(username)s is already on %(name)s." msgstr "%(username)s fait déjà partie de %(name)s." -#: app/routes/teams.py:509 +#: app/routes/teams.py:519 #, python-format msgid "%(username)s added to %(name)s!" msgstr "%(username)s a été ajouté à %(name)s." -#: app/routes/teams.py:526 app/routes/teams.py:604 +#: app/routes/teams.py:536 app/routes/teams.py:614 #, python-format msgid "%(username)s is not on %(name)s." msgstr "%(username)s ne fait pas partie de %(name)s." -#: app/routes/teams.py:534 +#: app/routes/teams.py:544 #, python-format msgid "%(username)s removed from %(name)s." msgstr "%(username)s a été retiré de %(name)s." -#: app/routes/teams.py:571 app/routes/teams.py:593 +#: app/routes/teams.py:581 app/routes/teams.py:603 msgid "You do not have permission to add notes to this team." msgstr "Vous n’avez pas les droits pour ajouter des notes à cette équipe." -#: app/routes/teams.py:583 +#: app/routes/teams.py:593 msgid "Team notes added successfully!" msgstr "Notes d’équipe ajoutées." -#: app/routes/teams.py:598 app/routes/users/notes.py:222 -#: app/routes/users/notes.py:262 +#: app/routes/teams.py:608 app/routes/users/notes.py:223 +#: app/routes/users/notes.py:263 msgid "Can only add notes for players." msgstr "Il n’est possible d’ajouter des notes que pour des joueurs." -#: app/routes/teams.py:618 +#: app/routes/teams.py:628 #, python-format msgid "Note added for %(username)s!" msgstr "Note ajoutée pour %(username)s." -#: app/routes/tryouts.py:147 +#: app/routes/tryouts.py:152 msgid "You do not have permission to create tryouts." msgstr "Vous n’avez pas les droits pour créer une sélection." -#: app/routes/tryouts.py:194 +#: app/routes/tryouts.py:199 msgid "Tryout created successfully!" msgstr "Sélection créée." -#: app/routes/tryouts.py:211 +#: app/routes/tryouts.py:219 msgid "You do not have permission to edit this tryout." msgstr "Vous n’avez pas les droits pour modifier cette sélection." -#: app/routes/tryouts.py:215 +#: app/routes/tryouts.py:223 msgid "This tryout has ended and can no longer be modified." msgstr "Cette sélection est terminée et ne peut plus être modifiée." -#: app/routes/tryouts.py:261 +#: app/routes/tryouts.py:269 msgid "Tryout updated successfully!" msgstr "Sélection mise à jour." -#: app/routes/tryouts.py:301 +#: app/routes/tryouts.py:307 msgid "You do not have permission to view this tryout." msgstr "Vous n’avez pas les droits pour consulter cette sélection." -#: app/routes/tryouts.py:469 +#: app/routes/tryouts.py:480 msgid "Only players can register for tryouts." msgstr "Seuls les joueurs peuvent s’inscrire à une sélection." -#: app/routes/tryouts.py:474 +#: app/routes/tryouts.py:485 msgid "This tryout is not accepting registrations." msgstr "Cette sélection n’accepte pas d’inscriptions." -#: app/routes/tryouts.py:481 +#: app/routes/tryouts.py:492 msgid "You are already registered for this tryout." msgstr "Vous êtes déjà inscrit à cette sélection." -#: app/routes/tryouts.py:487 app/routes/tryouts.py:590 +#: app/routes/tryouts.py:498 app/routes/tryouts.py:610 msgid "This tryout is full." msgstr "Cette sélection est complète." -#: app/routes/tryouts.py:493 +#: app/routes/tryouts.py:504 msgid "Successfully registered for tryout!" msgstr "Inscription à la sélection réussie." -#: app/routes/tryouts.py:517 +#: app/routes/tryouts.py:531 #, python-format msgid "Tryout status updated to %(new_status)s." msgstr "Statut de la sélection mis à jour : %(new_status)s." -#: app/routes/tryouts.py:545 +#: app/routes/tryouts.py:562 msgid "Registration status updated." msgstr "Statut d’inscription mis à jour." -#: app/routes/tryouts.py:576 +#: app/routes/tryouts.py:596 msgid "Can only register players." msgstr "Seuls des joueurs peuvent être inscrits." -#: app/routes/tryouts.py:582 +#: app/routes/tryouts.py:602 #, python-format msgid "%(username)s is already registered for this tryout." msgstr "%(username)s est déjà inscrit à cette sélection." -#: app/routes/tryouts.py:596 +#: app/routes/tryouts.py:616 #, python-format msgid "%(username)s registered for tryout!" msgstr "%(username)s est inscrit à la sélection." -#: app/routes/tryouts.py:636 +#: app/routes/tryouts.py:659 #, python-format msgid "%(username)s removed from tryout." msgstr "%(username)s a été retiré de la sélection." -#: app/routes/tryouts.py:662 +#: app/routes/tryouts.py:688 #, python-format msgid "Team \"%(team_name)s\" created!" msgstr "Équipe « %(team_name)s » créée." -#: app/routes/tryouts.py:699 app/routes/users/notes.py:350 +#: app/routes/tryouts.py:728 app/routes/users/notes.py:351 msgid "That player is not registered for this tryout." msgstr "Ce joueur n’est pas inscrit à cette sélection." -#: app/routes/tryouts.py:704 +#: app/routes/tryouts.py:733 msgid "Player is already on this team." msgstr "Ce joueur est déjà dans cette équipe." -#: app/routes/tryouts.py:709 +#: app/routes/tryouts.py:738 msgid "Player added to team!" msgstr "Joueur ajouté à l’équipe." -#: app/routes/tryouts.py:723 +#: app/routes/tryouts.py:770 +#, python-format +msgid "Team renamed to \"%(team_name)s\"." +msgstr "Équipe « %(team_name)s » créée." + +#: app/routes/tryouts.py:814 +#, python-format +msgid "Team \"%(name)s\" deleted." +msgstr "Équipe « %(name)s » supprimée." + +#: app/routes/tryouts.py:849 +msgid "Player removed from team." +msgstr "Gérant retiré de %(name)s." + +#: app/routes/tryouts.py:884 +msgid "Position updated." +msgstr "Dernière mise à jour" + +#: app/routes/tryouts.py:901 msgid "You do not have permission to delete this tryout." msgstr "Vous n’avez pas les droits pour supprimer cette sélection." -#: app/routes/tryouts.py:759 +#: app/routes/tryouts.py:937 msgid "Tryout deleted successfully." msgstr "Sélection supprimée." @@ -729,194 +800,230 @@ msgstr "Seul le président peut créer des utilisateurs." msgid "User %(full_name)s created as %(role)s!" msgstr "Utilisateur %(full_name)s créé avec le rôle %(role)s." -#: app/routes/users/availability.py:210 -msgid "Only coaches can manage availability." -msgstr "Seuls les coachs peuvent gérer leurs disponibilités." - -#: app/routes/users/contracts.py:104 +#: app/routes/users/contracts.py:105 msgid "Only presidents, managers, and coaches can upload contracts." msgstr "Seuls les présidents, gérants et coachs peuvent téléverser un contrat." -#: app/routes/users/contracts.py:108 app/routes/users/contracts.py:189 +#: app/routes/users/contracts.py:109 app/routes/users/contracts.py:190 msgid "Document uploads are currently disabled." msgstr "Les téléversements de documents sont actuellement désactivés." -#: app/routes/users/contracts.py:127 +#: app/routes/users/contracts.py:128 msgid "You do not have permission to upload a contract for this player." msgstr "Vous n’avez pas les droits pour téléverser un contrat pour ce joueur." -#: app/routes/users/contracts.py:155 app/routes/users/contracts.py:210 -#: app/routes/users/contracts.py:233 app/routes/users/contracts.py:252 +#: app/routes/users/contracts.py:156 app/routes/users/contracts.py:211 +#: app/routes/users/contracts.py:234 app/routes/users/contracts.py:253 msgid "Contract storage is temporarily unavailable. Please try again later." msgstr "" "Le stockage des contrats est temporairement indisponible. Veuillez " "r\\xc3\\xa9essayer plus tard." -#: app/routes/users/contracts.py:171 +#: app/routes/users/contracts.py:172 #, python-format msgid "Contract uploaded successfully for %(username)s!" msgstr "Contrat téléversé pour %(username)s." -#: app/routes/users/contracts.py:185 +#: app/routes/users/contracts.py:186 msgid "Only the player can upload their signed contract." msgstr "Seul le joueur peut téléverser son contrat signé." -#: app/routes/users/contracts.py:218 +#: app/routes/users/contracts.py:219 msgid "Signed contract uploaded successfully!" msgstr "Contrat signé téléversé." -#: app/routes/users/contracts.py:228 app/routes/users/contracts.py:244 +#: app/routes/users/contracts.py:229 app/routes/users/contracts.py:245 msgid "You do not have permission to download this contract." msgstr "Vous n’avez pas les droits pour télécharger ce contrat." -#: app/routes/users/contracts.py:247 +#: app/routes/users/contracts.py:248 msgid "No signed contract available." msgstr "Aucun contrat signé disponible." -#: app/routes/users/notes.py:43 +#: app/routes/users/documents.py:106 +msgid "You do not have permission to sign this document." +msgstr "Vous n’avez pas les droits pour consulter cette sélection." + +#: app/routes/users/documents.py:110 app/routes/users/documents.py:171 +msgid "This document has already been completed." +msgstr "Cette demande a déjà été traitée." + +#: app/routes/users/documents.py:113 +msgid "This document is acknowledged, not signed." +msgstr "Ce document exige une prise de connaissance, pas une signature." + +#: app/routes/users/documents.py:116 app/routes/users/documents.py:177 +msgid "This document has no version published yet." +msgstr "Ce document n'a pas encore de version publiée." + +#: app/routes/users/documents.py:127 +msgid "You must be part of a team before signing documents." +msgstr "Vous devez faire partie d'une équipe avant de signer des documents." + +#: app/routes/users/documents.py:157 +msgid "Document signed successfully!" +msgstr "Sélection mise à jour." + +#: app/routes/users/documents.py:167 +msgid "You do not have permission to acknowledge this document." +msgstr "Vous n’avez pas les droits pour supprimer cette sélection." + +#: app/routes/users/documents.py:174 +msgid "This document must be signed, not acknowledged." +msgstr "Ce document doit être signé, pas seulement confirmé." + +#: app/routes/users/documents.py:185 +msgid "Document acknowledged." +msgstr "Prise de connaissance confirmée." + +#: app/routes/users/documents.py:199 +msgid "This document is not available to you." +msgstr "Cette demande ne vous est pas destinée." + +#: app/routes/users/notes.py:44 msgid "This page is for players only." msgstr "Cette page est réservée aux joueurs." -#: app/routes/users/notes.py:80 +#: app/routes/users/notes.py:81 msgid "Only coaches can access the notes dashboard." msgstr "Seuls les coachs ont accès au tableau des notes." -#: app/routes/users/notes.py:172 +#: app/routes/users/notes.py:173 msgid "Only coaches can manage team notes." msgstr "Seuls les coachs peuvent gérer les notes d’équipe." -#: app/routes/users/notes.py:178 +#: app/routes/users/notes.py:179 msgid "You are not assigned to a team." msgstr "Vous n’êtes assigné à aucune équipe." -#: app/routes/users/notes.py:195 +#: app/routes/users/notes.py:196 msgid "Team notes saved successfully!" msgstr "Notes d’équipe enregistrées." -#: app/routes/users/notes.py:210 +#: app/routes/users/notes.py:211 msgid "Only coaches can manage personal notes." msgstr "Seuls les coachs peuvent gérer les notes personnelles." -#: app/routes/users/notes.py:226 app/routes/users/notes.py:266 -#: app/routes/users/notes.py:346 app/routes/users/notes.py:411 +#: app/routes/users/notes.py:227 app/routes/users/notes.py:267 +#: app/routes/users/notes.py:347 app/routes/users/notes.py:412 msgid "You can only write notes about players you work with." msgstr "" "Vous ne pouvez écrire des notes que sur les joueurs avec qui vous " "travaillez." -#: app/routes/users/notes.py:236 app/routes/users/notes.py:306 +#: app/routes/users/notes.py:237 app/routes/users/notes.py:307 #, python-format msgid "Note added for %(username)s." msgstr "Note ajoutée pour %(username)s." -#: app/routes/users/notes.py:250 app/routes/users/notes.py:320 -#: app/routes/users/notes.py:384 +#: app/routes/users/notes.py:251 app/routes/users/notes.py:321 +#: app/routes/users/notes.py:385 msgid "Only coaches can add personal notes." msgstr "Seuls les coachs peuvent ajouter des notes personnelles." -#: app/routes/users/notes.py:272 +#: app/routes/users/notes.py:273 msgid "You cannot use that match as note context." msgstr "Vous ne pouvez pas utiliser ce match comme contexte de note." -#: app/routes/users/notes.py:275 +#: app/routes/users/notes.py:276 msgid "That player did not participate in the selected match." msgstr "Ce joueur n’a pas participé au match sélectionné." -#: app/routes/users/notes.py:281 +#: app/routes/users/notes.py:282 msgid "You cannot use that tryout as note context." msgstr "Vous ne pouvez pas utiliser cette sélection comme contexte de note." -#: app/routes/users/notes.py:284 +#: app/routes/users/notes.py:285 msgid "That player is not registered for the selected tryout." msgstr "Ce joueur n’est pas inscrit à la sélection choisie." -#: app/routes/users/notes.py:290 +#: app/routes/users/notes.py:291 msgid "You cannot use that team as note context." msgstr "Vous ne pouvez pas utiliser cette équipe comme contexte de note." -#: app/routes/users/notes.py:293 +#: app/routes/users/notes.py:294 msgid "That player is not on the selected team." msgstr "Ce joueur ne fait pas partie de l’équipe sélectionnée." -#: app/routes/users/notes.py:325 +#: app/routes/users/notes.py:326 msgid "You do not have permission to add notes for this tryout." msgstr "Vous n’avez pas les droits pour ajouter des notes à cette sélection." -#: app/routes/users/notes.py:342 +#: app/routes/users/notes.py:343 msgid "Invalid tryout context." msgstr "Contexte de sélection invalide." -#: app/routes/users/notes.py:361 app/routes/users/notes.py:426 +#: app/routes/users/notes.py:362 app/routes/users/notes.py:427 msgid "Note added successfully." msgstr "Note ajoutée." -#: app/routes/users/notes.py:389 +#: app/routes/users/notes.py:390 msgid "You do not have permission to add notes for this match." msgstr "Vous n’avez pas les droits pour ajouter des notes à ce match." -#: app/routes/users/notes.py:407 +#: app/routes/users/notes.py:408 msgid "Invalid match context." msgstr "Contexte de match invalide." -#: app/routes/users/notes.py:415 +#: app/routes/users/notes.py:416 msgid "That player did not participate in this match." msgstr "Ce joueur n’a pas participé à ce match." -#: app/routes/users/one_on_one.py:22 +#: app/routes/users/one_on_one.py:23 msgid "Only players can request One on One sessions." msgstr "Seuls les joueurs peuvent demander une rencontre individuelle." -#: app/routes/users/one_on_one.py:35 +#: app/routes/users/one_on_one.py:36 msgid "You do not have a coach assigned to your team." msgstr "Aucun coach n’est assigné à votre équipe." -#: app/routes/users/one_on_one.py:66 +#: app/routes/users/one_on_one.py:67 msgid "Cannot request One on One - no coach assigned." msgstr "Impossible de demander une rencontre : aucun coach assigné." -#: app/routes/users/one_on_one.py:92 +#: app/routes/users/one_on_one.py:93 msgid "The requested time is not within the coach's availability." msgstr "L’horaire demandé ne correspond à aucune disponibilité du coach." -#: app/routes/users/one_on_one.py:120 +#: app/routes/users/one_on_one.py:121 msgid "Your One on One request has been submitted!" msgstr "Votre demande de rencontre a été envoyée." -#: app/routes/users/one_on_one.py:165 +#: app/routes/users/one_on_one.py:166 msgid "Only coaches can accept One on One requests." msgstr "Seuls les coachs peuvent accepter une demande de rencontre." -#: app/routes/users/one_on_one.py:171 app/routes/users/one_on_one.py:221 +#: app/routes/users/one_on_one.py:172 app/routes/users/one_on_one.py:222 msgid "This request is not for you." msgstr "Cette demande ne vous est pas destinée." -#: app/routes/users/one_on_one.py:175 app/routes/users/one_on_one.py:225 +#: app/routes/users/one_on_one.py:176 app/routes/users/one_on_one.py:226 msgid "This request has already been processed." msgstr "Cette demande a déjà été traitée." -#: app/routes/users/one_on_one.py:202 +#: app/routes/users/one_on_one.py:203 #, python-format msgid "One on One request from %(player)s has been approved!" msgstr "La demande de rencontre de %(player)s a été approuvée." -#: app/routes/users/one_on_one.py:215 +#: app/routes/users/one_on_one.py:216 msgid "Only coaches can reject One on One requests." msgstr "Seuls les coachs peuvent refuser une demande de rencontre." -#: app/routes/users/one_on_one.py:262 +#: app/routes/users/one_on_one.py:263 #, python-format msgid "One on One request from %(player)s has been rejected." msgstr "La demande de rencontre de %(player)s a été refusée." -#: app/routes/users/profile.py:82 +#: app/routes/users/profile.py:83 msgid "Username already taken." msgstr "Ce nom d’utilisateur est déjà pris." -#: app/routes/users/profile.py:92 +#: app/routes/users/profile.py:93 msgid "Email already in use." msgstr "Cette adresse courriel est déjà utilisée." -#: app/routes/users/profile.py:131 +#: app/routes/users/profile.py:132 msgid "Profile updated successfully!" msgstr "Profil mis à jour." @@ -1063,7 +1170,7 @@ msgstr "%(total)s au total" msgid "Next" msgstr "Suivant" -#: app/templates/layouts/base.html:48 app/templates/layouts/base.html:154 +#: app/templates/layouts/base.html:48 app/templates/layouts/base.html:160 #: app/templates/pages/dashboard.html:2 app/templates/pages/dashboard.html:3 msgid "Dashboard" msgstr "Tableau de bord" @@ -1081,6 +1188,8 @@ msgstr "Calendrier" #: app/templates/layouts/base.html:67 app/templates/pages/dashboard.html:43 #: app/templates/pages/evaluations.html:3 #: app/templates/pages/evaluations.html:4 +#: app/templates/pages/player_evaluations.html:2 +#: app/templates/pages/player_evaluations.html:4 msgid "Evaluations" msgstr "Évaluations" @@ -1108,29 +1217,36 @@ msgstr "Mes notes" msgid "Notes & One on One" msgstr "Notes et rencontres individuelles" -#: app/templates/layouts/base.html:119 app/templates/pages/contracts.html:2 +#: app/templates/layouts/base.html:119 +#: app/templates/pages/admin_document_detail.html:4 +#: app/templates/pages/admin_documents.html:2 +#: app/templates/pages/admin_documents.html:4 +msgid "Documents" +msgstr "Commentaires" + +#: app/templates/layouts/base.html:125 app/templates/pages/contracts.html:2 #: app/templates/pages/contracts.html:3 app/templates/pages/profile.html:9 msgid "Contracts" msgstr "Contrats" -#: app/templates/layouts/base.html:126 app/templates/pages/profile.html:2 +#: app/templates/layouts/base.html:132 app/templates/pages/profile.html:2 #: app/templates/pages/profile.html:3 msgid "My Profile" msgstr "Mon profil" -#: app/templates/layouts/base.html:137 +#: app/templates/layouts/base.html:143 msgid "Logout" msgstr "Déconnexion" -#: app/templates/layouts/base.html:158 +#: app/templates/layouts/base.html:164 msgid "Toggle dark mode" msgstr "Basculer le mode sombre" -#: app/templates/layouts/base.html:170 app/templates/layouts/base.html:189 +#: app/templates/layouts/base.html:176 app/templates/layouts/base.html:195 msgid "Dismiss" msgstr "Fermer" -#: app/templates/layouts/base.html:199 +#: app/templates/layouts/base.html:205 msgid "UdeS team manager" msgstr "UdeS team manager" @@ -1150,7 +1266,7 @@ msgstr "Ajouter une note personnelle" #: app/templates/pages/notes.html:122 #: app/templates/pages/team_match_form.html:114 #: app/templates/pages/teams.html:145 app/templates/pages/view_tryout.html:154 -#: app/templates/pages/view_tryout.html:498 +#: app/templates/pages/view_tryout.html:575 msgid "Player" msgstr "Joueur" @@ -1201,11 +1317,298 @@ msgstr "Notes d’équipe (référence)" #: app/templates/pages/evaluate_player.html:131 #: app/templates/pages/notes.html:100 #: app/templates/pages/personal_notes.html:36 -#: app/templates/pages/view_tryout.html:309 +#: app/templates/pages/view_tryout.html:380 msgid "Add Note" msgstr "Ajouter une note" -#: app/templates/pages/calendar.html:9 app/templates/pages/view_tryout.html:302 +#: app/templates/pages/admin_document_detail.html:8 +#: app/templates/pages/admin_documents.html:8 +#: app/templates/pages/my_documents.html:8 +msgid "Player contract" +msgstr "Téléverser un contrat" + +#: app/templates/pages/admin_document_detail.html:9 +#: app/templates/pages/admin_documents.html:9 +#: app/templates/pages/my_documents.html:9 +msgid "Coach contract" +msgstr "Téléverser un contrat" + +#: app/templates/pages/admin_document_detail.html:10 +#: app/templates/pages/admin_documents.html:10 +#: app/templates/pages/my_documents.html:10 +msgid "Manager contract" +msgstr "Mes contrats" + +#: app/templates/pages/admin_document_detail.html:11 +#: app/templates/pages/admin_documents.html:11 +#: app/templates/pages/my_documents.html:11 +msgid "Team agreement" +msgstr "Répartition des équipes" + +#: app/templates/pages/admin_document_detail.html:12 +#: app/templates/pages/admin_documents.html:12 +#: app/templates/pages/my_documents.html:12 +msgid "Code of conduct" +msgstr "Code de conduite" + +#: app/templates/pages/admin_document_detail.html:13 +#: app/templates/pages/admin_documents.html:13 +#: app/templates/pages/my_documents.html:13 +msgid "Ethics code" +msgstr "Code d'éthique" + +#: app/templates/pages/admin_document_detail.html:18 +msgid "Publish a new version" +msgstr "Publier une nouvelle version" + +#: app/templates/pages/admin_document_detail.html:22 +#: app/templates/pages/admin_documents.html:29 +#: app/templates/pages/admin_documents.html:59 +#: app/templates/pages/my_documents.html:27 +#: app/templates/pages/view_tryout.html:393 +msgid "Type" +msgstr "Type" + +#: app/templates/pages/admin_document_detail.html:23 +msgid "signed by the member" +msgstr "signé par le membre" + +#: app/templates/pages/admin_document_detail.html:24 +msgid "acknowledged by the member" +msgstr "confirmé par le membre" + +#: app/templates/pages/admin_document_detail.html:29 +msgid "New version file (PDF)" +msgstr "Nouveau fichier de version (PDF)" + +#: app/templates/pages/admin_document_detail.html:31 +#: app/templates/pages/contracts.html:98 +#: app/templates/pages/my_documents.html:145 +#: app/templates/pages/upload_contract.html:28 +msgid "Accepted format: PDF" +msgstr "Format accepté : PDF" + +#: app/templates/pages/admin_document_detail.html:34 +msgid "Version notes (optional)" +msgstr "Notes (facultatives)" + +#: app/templates/pages/admin_document_detail.html:35 +msgid "What changed in this version?" +msgstr "Qu'est-ce qui a changé dans cette version ?" + +#: app/templates/pages/admin_document_detail.html:38 +msgid "Back" +msgstr "Retour" + +#: app/templates/pages/admin_document_detail.html:40 +msgid "Publish version" +msgstr "Publier la version" + +#: app/templates/pages/admin_document_detail.html:49 +msgid "Versions" +msgstr "Cohésion" + +#: app/templates/pages/admin_document_detail.html:56 +#: app/templates/pages/admin_documents.html:60 +#: app/templates/pages/my_documents.html:28 +msgid "Version" +msgstr "Cohésion" + +#: app/templates/pages/admin_document_detail.html:57 +msgid "File" +msgstr "Profil" + +#: app/templates/pages/admin_document_detail.html:58 +#: app/templates/pages/notes.html:2 app/templates/pages/notes.html:3 +#: app/templates/pages/teams.html:75 +msgid "Notes" +msgstr "Notes" + +#: app/templates/pages/admin_document_detail.html:59 +msgid "Published" +msgstr "Publié" + +#: app/templates/pages/admin_document_detail.html:60 +#: app/templates/pages/admin_documents.html:63 +#: app/templates/pages/contracts.html:30 app/templates/pages/dashboard.html:175 +#: app/templates/pages/my_documents.html:30 app/templates/pages/notes.html:127 +#: app/templates/pages/team_matches.html:34 app/templates/pages/teams.html:151 +#: app/templates/pages/users.html:27 app/templates/pages/view_tryout.html:160 +#: app/templates/pages/view_tryout.html:400 +msgid "Actions" +msgstr "Actions" + +#: app/templates/pages/admin_document_detail.html:67 +#: app/templates/pages/admin_documents.html:73 +#, python-format +msgid "v%(number)s" +msgstr "v%(number)s" + +#: app/templates/pages/admin_document_detail.html:69 +msgid "Current" +msgstr "Créer" + +#: app/templates/pages/admin_document_detail.html:75 +#: app/templates/pages/contracts.html:49 app/templates/pages/contracts.html:50 +#: app/templates/pages/my_documents.html:56 +#: app/templates/pages/my_documents.html:57 +msgid "Download" +msgstr "Télécharger" + +#: app/templates/pages/admin_document_detail.html:82 +msgid "No versions published yet." +msgstr "Aucun joueur inscrit pour l’instant." + +#: app/templates/pages/admin_document_detail.html:93 +msgid "Completion" +msgstr "Terminé" + +#: app/templates/pages/admin_document_detail.html:100 +#: app/templates/pages/my_documents.html:102 +msgid "Member" +msgstr "Membre" + +#: app/templates/pages/admin_document_detail.html:101 +#: app/templates/pages/create_user.html:31 +#: app/templates/pages/dashboard.html:74 app/templates/pages/edit_user.html:27 +#: app/templates/pages/my_documents.html:103 app/templates/pages/users.html:23 +msgid "Role" +msgstr "Rôle" + +#: app/templates/pages/admin_document_detail.html:102 +#: app/templates/pages/contracts.html:28 app/templates/pages/dashboard.html:95 +#: app/templates/pages/dashboard.html:118 +#: app/templates/pages/dashboard.html:175 +#: app/templates/pages/dashboard.html:202 +#: app/templates/pages/dashboard.html:321 +#: app/templates/pages/match_form.html:60 +#: app/templates/pages/my_documents.html:29 +#: app/templates/pages/my_teams.html:53 app/templates/pages/notes.html:126 +#: app/templates/pages/one_on_one.html:73 +#: app/templates/pages/team_match_form.html:61 +#: app/templates/pages/team_matches.html:33 app/templates/pages/teams.html:146 +#: app/templates/pages/users.html:25 app/templates/pages/view_tryout.html:155 +#: app/templates/pages/view_tryout.html:398 +msgid "Status" +msgstr "Statut" + +#: app/templates/pages/admin_document_detail.html:103 +msgid "Completed at" +msgstr "Terminé" + +#: app/templates/pages/admin_document_detail.html:113 +#: app/templates/pages/contracts.html:54 +#: app/templates/pages/my_documents.html:46 +#: app/templates/pages/my_documents.html:115 +msgid "Signed" +msgstr "Signé" + +#: app/templates/pages/admin_document_detail.html:115 +#: app/templates/pages/my_documents.html:48 +#: app/templates/pages/my_documents.html:116 +msgid "Acknowledged" +msgstr "Confirmé" + +#: app/templates/pages/admin_document_detail.html:117 +#: app/templates/pages/dashboard.html:238 +#: app/templates/pages/my_documents.html:50 +#: app/templates/pages/my_documents.html:117 +#: app/templates/pages/one_on_one.html:85 +msgid "Pending" +msgstr "En attente" + +#: app/templates/pages/admin_document_detail.html:125 +msgid "No one is assigned yet. Publish a version first." +msgstr "Personne n'est encore assigné. Publiez d'abord une version." + +#: app/templates/pages/admin_documents.html:3 +msgid "Document management" +msgstr "Gestion des documents" + +#: app/templates/pages/admin_documents.html:18 +msgid "Create a document" +msgstr "Créer le compte" + +#: app/templates/pages/admin_documents.html:24 +#: app/templates/pages/admin_documents.html:58 +#: app/templates/pages/dashboard.html:95 app/templates/pages/dashboard.html:175 +msgid "Title" +msgstr "Titre" + +#: app/templates/pages/admin_documents.html:26 +msgid "e.g. Player contract 2026-2027" +msgstr "ex. : Contrat joueur 2026-2027" + +#: app/templates/pages/admin_documents.html:31 +msgid "-- Select a type --" +msgstr "-- Choisir une équipe --" + +#: app/templates/pages/admin_documents.html:37 +msgid "The type decides who must complete the document and how." +msgstr "Le type détermine qui doit compléter le document et de quelle façon." + +#: app/templates/pages/admin_documents.html:42 +msgid "Create document" +msgstr "Créer le compte" + +#: app/templates/pages/admin_documents.html:51 +msgid "Existing documents" +msgstr "Documents existants" + +#: app/templates/pages/admin_documents.html:61 +#: app/templates/pages/view_user.html:87 +msgid "Availability" +msgstr "Disponibilités" + +#: app/templates/pages/admin_documents.html:62 +msgid "Progress" +msgstr "En cours" + +#: app/templates/pages/admin_documents.html:74 +msgid "None" +msgstr "Note" + +#: app/templates/pages/admin_documents.html:78 +msgid "Downloadable" +msgstr "Télécharger" + +#: app/templates/pages/admin_documents.html:80 +msgid "Hidden" +msgstr "Masqué" + +#: app/templates/pages/admin_documents.html:85 +#, python-format +msgid "%(completed)s done" +msgstr "Terminé" + +#: app/templates/pages/admin_documents.html:86 +#, python-format +msgid "%(pending)s pending" +msgstr "%(pending)s en attente" + +#: app/templates/pages/admin_documents.html:90 +#: app/templates/pages/admin_documents.html:91 +msgid "Manage" +msgstr "Gérants" + +#: app/templates/pages/admin_documents.html:96 +#: app/templates/pages/admin_documents.html:97 +msgid "Hide" +msgstr "Masquer" + +#: app/templates/pages/admin_documents.html:100 +msgid "Make downloadable" +msgstr "Télécharger" + +#: app/templates/pages/admin_documents.html:101 +msgid "Publish" +msgstr "Publier" + +#: app/templates/pages/admin_documents.html:110 +msgid "No documents yet. Create one above." +msgstr "Aucun document pour le moment. Créez-en un ci-dessus." + +#: app/templates/pages/calendar.html:9 app/templates/pages/view_tryout.html:373 msgid "Schedule" msgstr "Planifier" @@ -1283,6 +1686,7 @@ msgstr "Confirmer" #: app/templates/pages/calendar.html:102 #: app/templates/pages/team_matches.html:103 +#: app/templates/pages/view_tryout.html:534 msgid "Delete Match" msgstr "Supprimer le match" @@ -1295,35 +1699,6 @@ msgstr "Modifier le match" msgid "View Tryout" msgstr "Voir la sélection" -#: app/templates/pages/coach_availability.html:2 -#: app/templates/pages/coach_availability.html:3 -msgid "Manage Availability" -msgstr "Gérer mes disponibilités" - -#: app/templates/pages/coach_availability.html:9 -msgid "Set Your Weekly Availability" -msgstr "Définir vos disponibilités hebdomadaires" - -#: app/templates/pages/coach_availability.html:10 -msgid "Select time slots when you're available for One on One sessions" -msgstr "" -"Choisissez les plages où vous êtes disponible pour des rencontres " -"individuelles" - -#: app/templates/pages/coach_availability.html:14 -#: app/templates/pages/profile.html:256 -msgid "Loading availability grid..." -msgstr "Chargement de la grille de disponibilités..." - -#: app/templates/pages/coach_availability.html:19 -msgid "Save Availability" -msgstr "Enregistrer les disponibilités" - -#: app/templates/pages/coach_availability.html:22 -#: app/templates/pages/profile.html:240 app/templates/pages/profile.html:260 -msgid "Clear All" -msgstr "Tout effacer" - #: app/templates/pages/contracts.html:9 #: app/templates/pages/upload_contract.html:2 #: app/templates/pages/upload_contract.html:3 @@ -1344,44 +1719,14 @@ msgstr "Équipe" msgid "Contract" msgstr "Contrat" -#: app/templates/pages/contracts.html:28 app/templates/pages/dashboard.html:95 -#: app/templates/pages/dashboard.html:118 -#: app/templates/pages/dashboard.html:175 -#: app/templates/pages/dashboard.html:202 -#: app/templates/pages/dashboard.html:321 -#: app/templates/pages/match_form.html:60 app/templates/pages/my_teams.html:53 -#: app/templates/pages/notes.html:126 app/templates/pages/one_on_one.html:73 -#: app/templates/pages/team_match_form.html:61 -#: app/templates/pages/team_matches.html:33 app/templates/pages/teams.html:146 -#: app/templates/pages/users.html:25 app/templates/pages/view_tryout.html:155 -#: app/templates/pages/view_tryout.html:327 -msgid "Status" -msgstr "Statut" - #: app/templates/pages/contracts.html:29 msgid "Uploaded" msgstr "Téléversé le" -#: app/templates/pages/contracts.html:30 app/templates/pages/dashboard.html:175 -#: app/templates/pages/notes.html:127 app/templates/pages/team_matches.html:34 -#: app/templates/pages/teams.html:151 app/templates/pages/users.html:27 -#: app/templates/pages/view_tryout.html:160 -#: app/templates/pages/view_tryout.html:329 -msgid "Actions" -msgstr "Actions" - -#: app/templates/pages/contracts.html:49 app/templates/pages/contracts.html:50 -msgid "Download" -msgstr "Télécharger" - #: app/templates/pages/contracts.html:53 msgid "Download Signed" msgstr "Télécharger la version signée" -#: app/templates/pages/contracts.html:54 -msgid "Signed" -msgstr "Signé" - #: app/templates/pages/contracts.html:58 app/templates/pages/contracts.html:89 #: app/templates/pages/contracts.html:102 msgid "Upload Signed Contract" @@ -1413,13 +1758,9 @@ msgstr "Aucun contrat n’a encore été téléversé. Utilisez le bouton ci-des msgid "Select Signed Contract File" msgstr "Choisir le fichier du contrat signé" -#: app/templates/pages/contracts.html:98 -#: app/templates/pages/upload_contract.html:28 -msgid "Accepted format: PDF" -msgstr "Format accepté : PDF" - #: app/templates/pages/contracts.html:101 -#: app/templates/pages/match_form.html:265 app/templates/pages/notes.html:189 +#: app/templates/pages/match_form.html:265 +#: app/templates/pages/my_documents.html:148 app/templates/pages/notes.html:189 #: app/templates/pages/teams.html:48 app/templates/pages/teams.html:295 #: app/templates/pages/view_tryout.html:245 msgid "Cancel" @@ -1472,12 +1813,6 @@ msgstr "Téléphone" msgid "Phone number" msgstr "Numéro de téléphone" -#: app/templates/pages/create_user.html:31 -#: app/templates/pages/dashboard.html:74 app/templates/pages/edit_user.html:27 -#: app/templates/pages/users.html:23 -msgid "Role" -msgstr "Rôle" - #: app/templates/pages/create_user.html:41 app/templates/pages/login.html:11 #: app/templates/pages/register.html:137 msgid "Password" @@ -1524,18 +1859,16 @@ msgstr "Inscrit le" msgid "Recent Tryouts" msgstr "Sélections récentes" -#: app/templates/pages/dashboard.html:95 app/templates/pages/dashboard.html:175 -msgid "Title" -msgstr "Titre" - #: app/templates/pages/dashboard.html:95 app/templates/pages/dashboard.html:175 #: app/templates/pages/dashboard.html:249 #: app/templates/pages/dashboard.html:321 +#: app/templates/pages/evaluations.html:82 #: app/templates/pages/match_form.html:55 app/templates/pages/my_teams.html:92 #: app/templates/pages/notes.html:123 app/templates/pages/one_on_one.html:70 +#: app/templates/pages/player_evaluations.html:67 #: app/templates/pages/team_match_form.html:34 #: app/templates/pages/team_matches.html:29 -#: app/templates/pages/view_tryout.html:323 +#: app/templates/pages/view_tryout.html:394 msgid "Date" msgstr "Date" @@ -1548,7 +1881,7 @@ msgstr "Matchs à venir" #: app/templates/pages/dashboard.html:202 #: app/templates/pages/dashboard.html:285 app/templates/pages/my_teams.html:90 #: app/templates/pages/notes.html:69 app/templates/pages/team_matches.html:26 -#: app/templates/pages/teams.html:132 app/templates/pages/view_tryout.html:321 +#: app/templates/pages/teams.html:132 app/templates/pages/view_tryout.html:392 msgid "Match" msgstr "Match" @@ -1556,7 +1889,9 @@ msgstr "Match" #: app/templates/pages/dashboard.html:202 #: app/templates/pages/dashboard.html:249 #: app/templates/pages/dashboard.html:285 -#: app/templates/pages/dashboard.html:321 app/templates/pages/notes.html:78 +#: app/templates/pages/dashboard.html:321 +#: app/templates/pages/evaluations.html:76 app/templates/pages/notes.html:78 +#: app/templates/pages/player_evaluations.html:61 msgid "Tryout" msgstr "Sélection" @@ -1584,11 +1919,6 @@ msgstr "Mes évaluations" msgid "Evaluations Done" msgstr "Évaluations réalisées" -#: app/templates/pages/dashboard.html:238 -#: app/templates/pages/one_on_one.html:85 -msgid "Pending" -msgstr "En attente" - #: app/templates/pages/dashboard.html:244 msgid "Recent Evaluations" msgstr "Évaluations récentes" @@ -1631,7 +1961,7 @@ msgid "Avg Score" msgstr "Note moyenne" #: app/templates/pages/dashboard.html:373 -#: app/templates/pages/view_tryout.html:532 +#: app/templates/pages/view_tryout.html:609 msgid "No evaluations yet." msgstr "Aucune évaluation pour l’instant." @@ -1827,7 +2157,7 @@ msgid "Recommended Position" msgstr "Poste recommandé" #: app/templates/pages/evaluate_player.html:109 -#: app/templates/pages/view_tryout.html:280 +#: app/templates/pages/view_tryout.html:339 msgid "-- Select Position --" msgstr "-- Choisir un poste --" @@ -1836,16 +2166,11 @@ msgid "Enter position (optional)" msgstr "Saisir un poste (facultatif)" #: app/templates/pages/evaluate_player.html:121 -#: app/templates/pages/player_evaluations.html -#: app/templates/pages/evaluations.html +#: app/templates/pages/evaluations.html:108 +#: app/templates/pages/player_evaluations.html:100 msgid "Comments" msgstr "Commentaires" -#: app/templates/pages/player_evaluations.html -#: app/templates/pages/evaluations.html -msgid "No comments" -msgstr "Aucun commentaire" - #: app/templates/pages/evaluate_player.html:122 msgid "Enter your evaluation notes..." msgstr "Vos notes d’évaluation..." @@ -1855,67 +2180,120 @@ msgid "Add note for this player" msgstr "Ajouter une note pour ce joueur" #: app/templates/pages/evaluate_player.html:147 -#: app/templates/pages/view_tryout.html:499 +#: app/templates/pages/evaluations.html:75 +#: app/templates/pages/evaluations.html:114 +#: app/templates/pages/player_evaluations.html:60 +#: app/templates/pages/player_evaluations.html:109 +#: app/templates/pages/view_tryout.html:576 msgid "Evaluator" msgstr "Évaluateur" #: app/templates/pages/evaluate_player.html:148 -#: app/templates/pages/view_tryout.html:500 +#: app/templates/pages/view_tryout.html:577 msgid "Mecanics" msgstr "Mécaniques" #: app/templates/pages/evaluate_player.html:149 -#: app/templates/pages/view_tryout.html:501 +#: app/templates/pages/view_tryout.html:578 msgid "Cohesion" msgstr "Cohésion" #: app/templates/pages/evaluate_player.html:150 -#: app/templates/pages/view_tryout.html:502 +#: app/templates/pages/view_tryout.html:579 msgid "Communication" msgstr "Communication" #: app/templates/pages/evaluate_player.html:151 -#: app/templates/pages/view_tryout.html:503 +#: app/templates/pages/view_tryout.html:580 msgid "Gamesense" msgstr "Sens du jeu" #: app/templates/pages/evaluate_player.html:152 -#: app/templates/pages/view_tryout.html:504 +#: app/templates/pages/view_tryout.html:581 msgid "Versatility" msgstr "Polyvalence" #: app/templates/pages/evaluate_player.html:153 -#: app/templates/pages/view_tryout.html:505 +#: app/templates/pages/view_tryout.html:582 msgid "Discipline" msgstr "Discipline" #: app/templates/pages/evaluate_player.html:154 -#: app/templates/pages/view_tryout.html:506 +#: app/templates/pages/view_tryout.html:583 msgid "Analysis" msgstr "Analyse" #: app/templates/pages/evaluate_player.html:155 -#: app/templates/pages/view_tryout.html:507 +#: app/templates/pages/view_tryout.html:584 msgid "Sport Ethics" msgstr "Éthique sportive" #: app/templates/pages/evaluate_player.html:156 -#: app/templates/pages/view_tryout.html:508 +#: app/templates/pages/view_tryout.html:585 msgid "Mental" msgstr "Mental" #: app/templates/pages/evaluate_player.html:157 -#: app/templates/pages/view_tryout.html:509 +#: app/templates/pages/evaluations.html:80 +#: app/templates/pages/player_evaluations.html:65 +#: app/templates/pages/view_tryout.html:586 msgid "Overall" msgstr "Global" #: app/templates/pages/evaluate_player.html:158 -#: app/templates/pages/my_teams.html:54 -#: app/templates/pages/view_tryout.html:286 +#: app/templates/pages/evaluations.html:81 app/templates/pages/my_teams.html:54 +#: app/templates/pages/player_evaluations.html:66 +#: app/templates/pages/view_tryout.html:345 msgid "Position" msgstr "Poste" -#: app/templates/pages/evaluations.html:97 +#: app/templates/pages/evaluations.html:27 +#: app/templates/pages/player_evaluations.html:9 +msgid "Table" +msgstr "Titre" + +#: app/templates/pages/evaluations.html:31 +#: app/templates/pages/player_evaluations.html:12 +msgid "By player" +msgstr "Joueur" + +#: app/templates/pages/evaluations.html:38 +#: app/templates/pages/player_evaluations.html:3 +msgid "Player Evaluations" +msgstr "Évaluation du joueur" + +#: app/templates/pages/evaluations.html:49 +msgid "Open" +msgstr "Adversaire" + +#: app/templates/pages/evaluations.html:64 +msgid "Open player view" +msgstr "Aucun joueur disponible" + +#: app/templates/pages/evaluations.html:88 +#: app/templates/pages/evaluations.html:114 +#: app/templates/pages/player_evaluations.html:73 +#: app/templates/pages/player_evaluations.html:109 +msgid "Deleted evaluator" +msgstr "Évaluateur" + +#: app/templates/pages/evaluations.html:89 +#: app/templates/pages/evaluations.html:115 +#: app/templates/pages/player_evaluations.html:74 +#: app/templates/pages/player_evaluations.html:110 +msgid "Deleted tryout" +msgstr "Supprimer la sélection" + +#: app/templates/pages/evaluations.html:99 +msgid "No evaluations for this player." +msgstr "Aucune évaluation pour l’instant." + +#: app/templates/pages/evaluations.html:120 +#: app/templates/pages/player_evaluations.html:118 +msgid "No comments" +msgstr "Aucun commentaire" + +#: app/templates/pages/evaluations.html:132 msgid "No evaluations yet" msgstr "Aucune évaluation" @@ -2016,7 +2394,7 @@ msgstr "Réinitialiser la plage horaire" msgid "Reset Time" msgstr "Réinitialiser l’heure" -#: app/templates/pages/match_form.html:86 app/templates/pages/profile.html:236 +#: app/templates/pages/match_form.html:86 app/templates/pages/profile.html:193 msgid "Loading..." msgstr "Chargement..." @@ -2126,6 +2504,66 @@ msgstr "É2" msgid "No players available" msgstr "Aucun joueur disponible" +#: app/templates/pages/my_documents.html:2 +#: app/templates/pages/my_documents.html:3 +#: app/templates/pages/my_documents.html:4 +msgid "My Documents" +msgstr "Mes sélections" + +#: app/templates/pages/my_documents.html:18 +msgid "Documents to sign or acknowledge" +msgstr "Documents à signer ou à confirmer" + +#: app/templates/pages/my_documents.html:26 +msgid "Document" +msgstr "Aucun commentaire" + +#: app/templates/pages/my_documents.html:40 +#, python-format +msgid "Version %(number)s" +msgstr "Numéro de téléphone" + +#: app/templates/pages/my_documents.html:62 +msgid "Return signed" +msgstr "Retourner signé" + +#: app/templates/pages/my_documents.html:63 +msgid "Sign" +msgstr "Signé" + +#: app/templates/pages/my_documents.html:68 +msgid "Confirm that you have read and understood this document" +msgstr "Confirmez que vous avez lu et compris ce document" + +#: app/templates/pages/my_documents.html:69 +msgid "Acknowledge" +msgstr "Confirmer" + +#: app/templates/pages/my_documents.html:84 +msgid "No documents for now" +msgstr "Aucune sélection" + +#: app/templates/pages/my_documents.html:85 +msgid "Nothing has been published for you yet. Check back later." +msgstr "Aucun match planifié pour l’instant. Revenez plus tard." + +#: app/templates/pages/my_documents.html:95 +msgid "Team progress" +msgstr "En cours" + +#: app/templates/pages/my_documents.html:118 +msgid "Not required" +msgstr "Une date est requise." + +#: app/templates/pages/my_documents.html:136 +#: app/templates/pages/my_documents.html:149 +msgid "Upload Signed Document" +msgstr "Téléverser le contrat signé" + +#: app/templates/pages/my_documents.html:143 +msgid "Select Signed Document File" +msgstr "Choisir le fichier du contrat signé" + #: app/templates/pages/my_teams.html:18 app/templates/pages/teams.html:84 #: app/templates/pages/teams.html:273 msgid "Coaches" @@ -2147,14 +2585,14 @@ msgstr "Aucun joueur dans cette équipe." #: app/templates/pages/my_teams.html:93 app/templates/pages/notes.html:124 #: app/templates/pages/one_on_one.html:71 #: app/templates/pages/team_matches.html:30 -#: app/templates/pages/view_tryout.html:325 +#: app/templates/pages/view_tryout.html:396 msgid "Time" msgstr "Heure" #: app/templates/pages/my_teams.html:95 #: app/templates/pages/team_match_form.html:115 #: app/templates/pages/team_matches.html:32 -#: app/templates/pages/view_tryout.html:326 +#: app/templates/pages/view_tryout.html:397 msgid "Presence" msgstr "Présence" @@ -2174,11 +2612,6 @@ msgstr "Aucune équipe" msgid "You are not currently assigned to any team." msgstr "Vous n’êtes assigné à aucune équipe pour le moment." -#: app/templates/pages/notes.html:2 app/templates/pages/notes.html:3 -#: app/templates/pages/teams.html:75 -msgid "Notes" -msgstr "Notes" - #: app/templates/pages/notes.html:12 app/templates/pages/one_on_one.html:11 #: app/templates/pages/player_personal_notes.html:55 #: app/templates/pages/team_notes.html:2 app/templates/pages/team_notes.html:3 @@ -2400,6 +2833,18 @@ msgstr "-- Heure de fin --" msgid "Recent Notes" msgstr "Notes récentes" +#: app/templates/pages/player_evaluations.html:42 +msgid "Combined average" +msgstr "Moyenne combinée" + +#: app/templates/pages/player_evaluations.html:42 +msgid "evaluations" +msgstr "Évaluations" + +#: app/templates/pages/player_evaluations.html:87 +msgid "No evaluations for this player yet" +msgstr "Aucune évaluation" + #: app/templates/pages/players_to_evaluate.html:2 #: app/templates/pages/players_to_evaluate.html:3 msgid "Players to Evaluate" @@ -2441,35 +2886,39 @@ msgstr "Évaluations données" msgid "No statistics available for this role." msgstr "Aucune statistique pour ce rôle." -#: app/templates/pages/profile.html:195 +#: app/templates/pages/profile.html:152 msgid "My Contracts" msgstr "Mes contrats" -#: app/templates/pages/profile.html:217 +#: app/templates/pages/profile.html:174 msgid "View All Contracts" msgstr "Voir tous les contrats" -#: app/templates/pages/profile.html:221 +#: app/templates/pages/profile.html:178 msgid "No contracts have been uploaded for you yet." msgstr "Aucun contrat n’a encore été téléversé pour vous." -#: app/templates/pages/profile.html:231 +#: app/templates/pages/profile.html:188 msgid "My Disponibilities" msgstr "Mes disponibilités" -#: app/templates/pages/profile.html:234 +#: app/templates/pages/profile.html:191 msgid "" "Select your available time blocks for matches (5pm to 12am). Green = " -"available, Gray = unavailable" +"selected, Gray = available to select." msgstr "" "Choisissez vos plages disponibles pour les matchs (17 h à minuit). Vert =" " disponible, gris = non-disponible." -#: app/templates/pages/profile.html:251 +#: app/templates/pages/profile.html:197 app/templates/pages/profile.html:217 +msgid "Clear All" +msgstr "Tout effacer" + +#: app/templates/pages/profile.html:208 msgid "My Coaching Availability" msgstr "Mes disponibilités de coaching" -#: app/templates/pages/profile.html:252 +#: app/templates/pages/profile.html:209 msgid "" "Select time slots when you're available for One on One sessions (8am to " "10pm)." @@ -2477,7 +2926,11 @@ msgstr "" "Choisissez les plages où vous êtes disponible pour des rencontres " "individuelles (8 h à 22 h)." -#: app/templates/pages/profile.html:500 +#: app/templates/pages/profile.html:213 +msgid "Loading availability grid..." +msgstr "Chargement de la grille de disponibilités..." + +#: app/templates/pages/profile.html:464 msgid "Click or click-and-drag to select your available hours" msgstr "Cliquez ou faites glisser pour choisir vos heures de disponibilité" @@ -2616,7 +3069,7 @@ msgid "No players on this team. Add players in the Teams page first." msgstr "Aucun joueur dans cette équipe. Ajoutez-en d’abord depuis la page Équipes." #: app/templates/pages/team_match_form.html:107 -#: app/templates/pages/view_tryout.html:324 +#: app/templates/pages/view_tryout.html:395 msgid "Participants" msgstr "Participants" @@ -2634,6 +3087,7 @@ msgid "+ Schedule Match" msgstr "+ Planifier un match" #: app/templates/pages/team_matches.html:101 +#: app/templates/pages/view_tryout.html:532 msgid "Delete this match?" msgstr "Supprimer ce match ?" @@ -2704,7 +3158,8 @@ msgstr "Créer l’équipe" #: app/templates/pages/teams.html:64 app/templates/pages/users.html:59 #: app/templates/pages/view_tryout.html:29 -#: app/templates/pages/view_tryout.html:459 +#: app/templates/pages/view_tryout.html:256 +#: app/templates/pages/view_tryout.html:530 msgid "Edit" msgstr "Modifier" @@ -2715,7 +3170,7 @@ msgstr "" "Supprimer l’équipe %(name)s ? Elle sera détachée de toutes les sélections" " liées." -#: app/templates/pages/teams.html:69 +#: app/templates/pages/teams.html:69 app/templates/pages/view_tryout.html:535 msgid "Delete" msgstr "Supprimer" @@ -2937,7 +3392,7 @@ msgid "Tryout Details" msgstr "Détail de la sélection" #: app/templates/pages/view_tryout.html:14 -#: app/templates/pages/view_tryout.html:306 +#: app/templates/pages/view_tryout.html:377 msgid "Schedule Match" msgstr "Planifier un match" @@ -3007,6 +3462,7 @@ msgid "No players registered yet." msgstr "Aucun joueur inscrit pour l’instant." #: app/templates/pages/view_tryout.html:243 +#: app/templates/pages/view_tryout.html:289 msgid "Team name" msgstr "Nom de l’équipe" @@ -3014,47 +3470,86 @@ msgstr "Nom de l’équipe" msgid "Create" msgstr "Créer" -#: app/templates/pages/view_tryout.html:263 +#: app/templates/pages/view_tryout.html:270 +#: app/templates/pages/view_tryout.html:320 msgid "No players assigned yet." msgstr "Aucun joueur assigné pour l’instant." -#: app/templates/pages/view_tryout.html:271 +#: app/templates/pages/view_tryout.html:282 +#, python-format +msgid "Edit Team: %(name)s" +msgstr "Nom de l’équipe" + +#: app/templates/pages/view_tryout.html:291 +msgid "Rename" +msgstr "Nom" + +#: app/templates/pages/view_tryout.html:297 +msgid "Roster" +msgstr "S’inscrire" + +#: app/templates/pages/view_tryout.html:306 +msgid "No role" +msgstr "Rôle" + +#: app/templates/pages/view_tryout.html:312 +#, python-format +msgid "Remove %(player)s from this team?" +msgstr "Retirer %(player)s de %(team)s ?" + +#: app/templates/pages/view_tryout.html:314 +msgid "Remove from team" +msgstr "Depuis l’équipe" + +#: app/templates/pages/view_tryout.html:326 +msgid "Add Player" +msgstr "Nombre maximal de joueurs" + +#: app/templates/pages/view_tryout.html:330 msgid "Select player..." msgstr "Choisir un joueur..." -#: app/templates/pages/view_tryout.html:288 +#: app/templates/pages/view_tryout.html:347 msgid "Add" msgstr "Ajouter" -#: app/templates/pages/view_tryout.html:293 +#: app/templates/pages/view_tryout.html:353 +msgid "" +"Delete this team? Players already in the team will be removed and matches" +" referencing it will be unlinked." +msgstr "" +"Supprimer cette équipe ? Les joueurs déjà dans l'équipe seront retirés et" +" les matchs qui la référencent seront dissociés." + +#: app/templates/pages/view_tryout.html:355 +msgid "Delete Team" +msgstr "Choisir les équipes" + +#: app/templates/pages/view_tryout.html:364 msgid "No teams created yet." msgstr "Aucune équipe créée." -#: app/templates/pages/view_tryout.html:322 -msgid "Type" -msgstr "Type" - -#: app/templates/pages/view_tryout.html:387 +#: app/templates/pages/view_tryout.html:458 msgid "Toggle your attendance" msgstr "Basculer votre présence" -#: app/templates/pages/view_tryout.html:462 +#: app/templates/pages/view_tryout.html:539 msgid "Add Note for this Match" msgstr "Ajouter une note pour ce match" -#: app/templates/pages/view_tryout.html:463 +#: app/templates/pages/view_tryout.html:540 msgid "Note" msgstr "Note" -#: app/templates/pages/view_tryout.html:481 +#: app/templates/pages/view_tryout.html:558 msgid "No matches scheduled yet. Check back later!" msgstr "Aucun match planifié pour l’instant. Revenez plus tard." -#: app/templates/pages/view_tryout.html:491 +#: app/templates/pages/view_tryout.html:568 msgid "Evaluation Summary" msgstr "Synthèse de l’évaluation" -#: app/templates/pages/view_tryout.html:510 +#: app/templates/pages/view_tryout.html:587 msgid "Recommendation" msgstr "Recommandation" @@ -3066,10 +3561,6 @@ msgstr "Profil" msgid "View Profile" msgstr "Voir le profil" -#: app/templates/pages/view_user.html:87 -msgid "Availability" -msgstr "Disponibilités" - #~ msgid "×" #~ msgstr "×" @@ -3133,3 +3624,20 @@ msgstr "Disponibilités" #~ msgid "No players registered for this tryout." #~ msgstr "Aucun joueur inscrit à cette sélection." +#~ msgid "Only coaches can manage availability." +#~ msgstr "Seuls les coachs peuvent gérer leurs disponibilités." + +#~ msgid "Manage Availability" +#~ msgstr "Gérer mes disponibilités" + +#~ msgid "Set Your Weekly Availability" +#~ msgstr "Définir vos disponibilités hebdomadaires" + +#~ msgid "Select time slots when you're available for One on One sessions" +#~ msgstr "" +#~ "Choisissez les plages où vous êtes " +#~ "disponible pour des rencontres individuelles" + +#~ msgid "Save Availability" +#~ msgstr "Enregistrer les disponibilités" +