...
minimumGames
...
number
...
Minimum number of games required for this suspension
Optional when indefinite. Set by system.
...
requiredGames
...
number
...
Number of games required to complete the suspension.
Optional when Indefinite. Required to be >= minimumGames
...
expiry
...
date
...
Optional - Date when the suspension will expire if the games requirement isn’t met
...
status
...
enum
...
Pending, Appealed, Active, Completed, Cancelled, Expired
...
externalId
...
uuid
...
For syncing with Spordle ID
...
Legacy suspension options (deprecated)
...
code
...
enum
...
Deprecated, replaced by sanctionId
Implementation
Unhardcoding
Status | ||||
---|---|---|---|---|
|
Handle indefinite and expiry dates
...
Table of Contents |
---|
Requirements
All sports
Automatic suspensions are not appealable in any sport
If suspended, only eligible to “purge” for the same team, otherwise suspended and cannot purge or play on other teams
Suspensions follow into the following season and can by served by any team in the following season
Schedule office (e.g., league) is responsible for administering suspensions, not team
Suspensions prohibit officials from officiating games (exceptions may be granted by the assigner)
Notifications to be sent to the player, team staff, schedule and team offices
Baseball
Each branch (BQ) has it’s own rules
Suspensions do not apply across branches (BQ suspension does not apply in BA), but a Baseball Canada suspension (e.g., from nationals) can apply to all branches
Suspensions
All penalties (ejections) result in a 1 game suspension, then accumulate into 3 games, 5 games then indefinite
Suspensions accumulate by participant (any team, office within BQ)
No expiry time component or indefinite rules from game infractions
Soccer
Each branch (SQ) has it’s own rules
Suspensions do not apply across offices (suspension in office A allows play in office B)
Suspensions
Yellow card
3x accumulation results in a 1 game suspension
Resets after accumulation
Indirect red card
Results in a 1 game suspension
Affects accumulation of yellow cards
Direct red cards
Results in a 1 game suspension
No accumulation side effects
No expiry time component or indefinite rules from game infractions
Suspensions only accumulate with the same office and team
Hockey
Minimum guidelines
Federation (HC) sets minimum guidelines and each branch (BC) can extend severity
Suspensions apply across the entire federation/tenant
Suspension rules are based on the schedule office
If a BC team plays in an AB tournament, AB suspension guidelines will be used, unless the player fails to purge the suspension prior to returning to BC, then BC guidelines will take effect and could possibly extend the suspension
e.g., AB may impose a 1 game suspension while BC imposes 2 games, so a player would be required to serve 2 games upon returning to BC
Accumulation
Accumulation based on a set of infractions (accumulation groups)
e.g., 7.2(b) will result in a 1 game suspension, and 7.3(b) in a latter game will result in an accumulation sanction due to ‘any 2 majors’.
Multiple sanctions may be applied from a single game
e.g., in a fight, player may be assessed 7.10 Fighting Major + GM (1 game) + 7.11(a) Instigator (1 game)
e.g., 7.2(c) in game one results in 1 game suspension, then 7.8(c) in next game results in 3 games under 7.8(c) + 5 games under AS107 which is pending until after the 3 game has completed
Accumulation is per season
Head contact accumulation resets prior to minor championships
🚩 Waiting to confirm if we’re isolating the championship office or setting a reset date for this accumulation group
Penalty in the last 10 minutes or OT, or an injury, can affect suspension severity
These factors do not create multiple suspensions, just a single suspension
Some sanctions are based on if the penalty was incurred pre/post game, or if an injury was sustained
Injury attribute added to penalties; pre/post meta is out of scope initially
Team Officials
Team officials may be suspended based on penalty accumulation in the same game
e.g., An official who’s players accumulate 3 majors in a game will be assessed a 1 game suspension, then 3 games the second game that happens, and an indefinite suspension for the third game it happens
Head coach is suspended by default unless they’re not present, then it would be an assistant coach or manager unless the referee reports otherwise
🚩 Possibly implement this based on the signatory of the lineup?
Purging
Minor / Junior
Minor hockey suspensions don’t typically allow purging when transitioning to Junior, but there’s an exception to allow purging if they actually intend to play to help eligibility for next season. This will be handled manually by BC
Suspensions have a total required games and expiry date; will be considered completed when the first criteria is reached
Expiry has breaks (e.g., winter, summer)
Game/expiry ratio is not 1:1 (1/7/15/21/25/30/n*7) and varies by branch. Not defined by HC
Game infractions may result in indefinite suspensions with minimum number of game purges
Only games that were scheduled at the time of suspension may count towards to the serving of a suspension. Therefore, any game that is added to a team’s schedule after the date of a suspension, cannot be used to purge that suspension.
Rule added to avoid working around with an exhibition game mid-week. Did not commit to supporting this on day 1
Purging can only be done in the next scheduled game that was created prior to the suspension
Lineups of following games cannot be entered until the scheduled end time of the preceding game to prevent a potentially suspended member being added, or a suspended member being added with an excessive purge
View file | ||
---|---|---|
|
View file | ||
---|---|---|
|
Rule Models
Infractions are the rules, penalties are violations of infractions, sanctions define infraction accumulation and suspensions are the violation of sanctions.
Sanction
Suspensions are linked to a sanction to describe what the suspension is for
Accumulation properties specify when the Sanction
is applicable and behaviour properties specify what the resulting Suspension
will be defined as.
Yellow properties to be added with automation.
...
Property
...
Type
...
Description
...
id
...
uuid
...
seasonId
...
string
...
Season
...
name
...
string
...
With i18n
...
code
...
string
...
Usually the rule number or an accumulation code
...
officeId
...
id
...
parentId
...
id
...
Optional - To override parent sanctions
...
externalId
...
uuid
...
For syncing with Spordle ID
...
Behaviour
...
durationType
...
enum
...
Definite or Indefinite
...
totalGames
...
number
...
Optional - Total games required in all cases
...
endGames
...
number
...
Optional - Total games required when end of game or overtime (defined by office settings)
...
injuryGames
...
number
...
Optional - Total games required when penalty has an injury
...
Accumulation
...
positionGroups
...
enum[]
...
Optional - Applicable to players or coaches
...
priority
...
number
...
Priority precedence order for accumulations
...
exclusive
...
boolean
...
If an infraction matches this sanction it doesn’t count towards other sanctions
Not sure if this is necessary
...
minCount
...
number
...
Minimum number of infractions (>=)
...
maxCount
...
number
...
Maximum number of infractions (<=)
...
resetCount
...
boolean
...
Accumulation count resets to 0 after reaching last accumulation
SanctionMember
List of infractions that apply under a rule
...
Property
...
Type
...
Description
...
id
...
uuid
...
sanctionId
...
id
...
infractionId
...
id
Settings Models
SanctionBreak
Required to define breaks when calculating the suspension expiry date for the season
...
Property
...
Type
...
Description
...
id
...
uuid
...
startDate
...
date
...
endDate
...
date
...
officeId
...
id
SanctionRatio
BC Hockey defines a ratio generally, not per game, so it might be better to do the same. When games is undefined, it will serve as the default case and serve as a n:m ratio
...
Property
...
Type
...
Description
...
id
...
uuid
...
games
...
number
...
Optional - Number of games the accumulation requires
...
days
...
number
...
Number of days
...
officeId
...
id
OfficeSettings
Office settings that affect general suspension behaviour
...
Property
...
Type
...
Description
...
endGameSomething
...
number
...
Number of minutes before the end of the game when endGames
of a sanction kicks in.
Hockey Canada defines this as 10 minutes; QC defines this as 5 minutes
...
suspensionActivation
...
enum
Suspension Models
Suspension
...
Property
...
Type
...
Description
...
id
...
uuid
...
gameId
...
id
...
Game the suspension originated in
...
participantId
...
id
...
Participant that was suspended
...
teamId
...
id
...
Team that the participant is suspended in
...
sanctionId
...
id
...
Sanction that was determined by the rulebook sanction rules
...
penaltyId
...
id
...
Penalty that resulted in the suspension
...
positionGroup
...
enum
...
Position that this participant was suspended in. Player, Staff
...
durationType
...
enum
...
Definite or Indefinite. This is required to be the same as the sanction duration
...
Table of Contents |
---|
Requirements
All sports
Automatic suspensions are not appealable in any sport
If suspended, only eligible to “purge” for the same team, otherwise suspended and cannot purge or play on other teams
Suspensions follow into the following season and can by served by any team in the following season
Schedule office (e.g., league) is responsible for administering suspensions, not team
Suspensions prohibit officials from officiating games (exceptions may be granted by the assigner)
Notifications to be sent to the player, team staff, schedule and team offices
Baseball
Each branch (BQ) has it’s own rules
Suspensions do not apply across branches (BQ suspension does not apply in BA), but a Baseball Canada suspension (e.g., from nationals) can apply to all branches
Suspensions
All penalties (ejections) result in a 1 game suspension, then accumulate into 3 games, 5 games then indefinite
Suspensions accumulate by participant (any team, office within BQ)
No expiry time component or indefinite rules from game infractions
Soccer
Each branch (SQ) has it’s own rules
Suspensions do not apply across offices (suspension in office A allows play in office B)
Suspensions
Yellow card
3x accumulation results in a 1 game suspension
Resets after accumulation
Indirect red card
Results in a 1 game suspension
Affects accumulation of yellow cards
Direct red cards
Results in a 1 game suspension
No accumulation side effects
No expiry time component or indefinite rules from game infractions
Suspensions only accumulate with the same office and team
Hockey
Minimum guidelines
Federation (HC) sets minimum guidelines and each branch (BC) can extend severity
Suspensions apply across the entire federation/tenant
Suspension rules are based on the schedule office
If a BC team plays in an AB tournament, AB suspension guidelines will be used, unless the player fails to purge the suspension prior to returning to BC, then BC guidelines will take effect and could possibly extend the suspension
e.g., AB may impose a 1 game suspension while BC imposes 2 games, so a player would be required to serve 2 games upon returning to BC
Accumulation
Accumulation based on a set of infractions (accumulation groups)
e.g., 7.2(b) will result in a 1 game suspension, and 7.3(b) in a latter game will result in an accumulation sanction due to ‘any 2 majors’.
Multiple sanctions may be applied from a single game
e.g., in a fight, player may be assessed 7.10 Fighting Major + GM (1 game) + 7.11(a) Instigator (1 game)
e.g., 7.2(c) in game one results in 1 game suspension, then 7.8(c) in next game results in 3 games under 7.8(c) + 5 games under AS107 which is pending until after the 3 game has completed
Accumulation is per season
Head contact accumulation resets prior to minor championships
🚩 Waiting to confirm if we’re isolating the championship office or setting a reset date for this accumulation group
Penalty in the last 10 minutes or OT, or an injury, can affect suspension severity
These factors do not create multiple suspensions, just a single suspension
Team Officials
Team officials may be suspended based on penalty accumulation in the same game
e.g., A staff member who’s players accumulate 3 majors in a game will be assessed a 1 game suspension, then 3 games the second game that happens, and an indefinite suspension for the third game it happens
Head coach is suspended by default unless they’re not present, then it would be an assistant coach or manager unless the referee reports otherwise
🚩 Possibly implement this based on the signatory of the lineup?
Purging
Minor / Junior
Minor hockey suspensions don’t typically allow purging when transitioning to Junior, but there’s an exception to allow purging if they actually intend to play to help eligibility for next season. This will be handled manually by BC
Suspensions have a total required games and expiry date; will be considered completed when the first criteria is reached
Expiry has breaks (e.g., winter, summer)
Game/expiry ratio is not 1:1 (1/7/15/21/25/30/n*7) and varies by branch. Not defined by HC
Game infractions may result in indefinite suspensions with minimum number of game purges
Only games that were scheduled at the time of suspension may count towards to the serving of a suspension. Therefore, any game that is added to a team’s schedule after the date of a suspension, cannot be used to purge that suspension.
Rule added to avoid working around with an exhibition game mid-week. Did not commit to supporting this on day 1
Purging can only be done in the next scheduled game that was created prior to the suspension
Lineups of following games cannot be entered until the scheduled end time of the preceding game to prevent a potentially suspended member being added, or a suspended member being added with an excessive purge
View file | ||
---|---|---|
|
View file | ||
---|---|---|
|
...
Sanction Models
Infractions are the rules, penalties are violations of infractions, sanctions define infraction accumulation and suspensions are the violation of sanctions.
Sanction
Accumulation properties specify when the Sanction
is applicable and behaviour properties specify what the resulting Suspension
will be defined as.
Any sanctions that happen twice in a season will result in a second
Blue properties to be added with automation.
Property | Type | Description |
---|---|---|
id | uuid | |
seasonId | string | 2024-25 |
name | string | With i18n |
i18n | jsonb | |
code | string | Usually the rule number or an accumulation code |
officeId | id | |
parentId | id | Optional - To override parent sanctions |
sectionId | id | Physical Fouls |
externalId | uuid | For syncing with Spordle ID |
Accumulation | ||
positionGroups | enum[] | Optional - Applicable to players or bench staff |
accumulationCount | number | Default to 1 |
SanctionMember
These are the list of rule options that are part of the accumulation group. Order is not significant; any member infraction counts towards the accumulation group.
Property | Type | Description |
---|---|---|
id | uuid | |
sanctionId | id | |
optionId | id |
SanctionOffense
Number of match or days require to serve
Property | Type | Description | |
---|---|---|---|
id | uuid | ||
sanctionId | id | ||
offense | number | 1, 2, 3… | |
Behaviour | |||
durationType | enum | Definite or Indefinite | |
games | number | Total games required to serve | |
lastMinutesGames | number | Optional - Total games required to serve when end of game or overtime (will hardcode to last 10 minutes for now) (undefined → fall back to totalGames) | |
injuryGames | number | Optional - Total games required to serve when penalty has an injury (undefined → fall back to totalGames) | |
days | number | Optional - Number of days to calculate the expiry date | |
lastMinutesDays | number | Optional - Number of days to calculate the expiry date in the last 10 minutes | |
injuryDays | number | Optional - Number of days to calculate the expiry date when penalty has an injury | |
Accumulation | |||
| enum[] | Optional - Applicable to players or bench staff | |
| Default to 1 | ||
|
|
| |
|
|
| |
|
|
|
Settings Models
OfficeBreak (V2)
Required to define breaks when calculating the suspension expiry date for the season. Could also be used for the scheduler.
Property | Type | Description |
---|---|---|
id | uuid | |
seasonId | enum | |
type | enum | Sanctions, Scheduling |
startDate | date | |
endDate | date | |
officeId | id | |
categoryIds | id[] | Optionally specify which categories it applies to |
SanctionRatio
BC Hockey defines a ratio generally, not per game, so it might be better to do the same. When games is undefined, it will serve as the default case and serve as a n:m ratio
Property | Type | Description |
---|---|---|
id | uuid | |
seasonId | enum | |
games | number | Optional - Number of games the accumulation requires |
days | number | Number of days |
officeId | id |
OfficeSettings
Office settings that affect general suspension behaviour
Property | Type | Description |
---|---|---|
lastMinutesDuration (V2) | number | Number of minutes before the end of the game when Hockey Canada defines this as 10 minutes; QC defines this as 5 minutes |
suspensionActivation | enum |
Suspension Models
Suspension
Property | Type | Description |
---|---|---|
id | uuid | |
gameId | id | Game the suspension originated in |
participantId | id | Participant that was suspended |
teamId | id | Team that the participant is suspended in |
penaltyId | id | Penalty that resulted in the suspension |
positionGroup | enum | Position that this participant was suspended in. Player, Staff |
sanctionId | id | Sanction that was determined by the rulebook sanction rules |
|
|
|
durationType | enum | Definite or Indefinite. This is required to be the same as the sanction duration |
requiredGames | number | Number of games required to complete the suspension. Optional when Indefinite duration type, but may be set with it |
expiry | date | Optional - Date when the suspension will expire if the games requirement isn’t met |
status | enum | Pending, Appealed, Active, Completed, Cancelled, Expired |
externalId | uuid | For syncing with Spordle ID |
Legacy suspension options (deprecated) | ||
| enum | Deprecated, replaced by sanctionId |
Suspension Discipline
Property | Type | Description |
---|---|---|
id | uuid | |
suspensionId | id | Suspension |
additionalGames | number | Number of additional games to the suspension |
durationType | enum | Definite or Indefinite. To allow infinite duration |
status | enum | Pending | Active | Inactive |
comments | string | Comment section to allow the discipline committee to note changes |
reviewedBy | string array | Array of members that reviewed the suspension |
reviewedAt | timestamp | The date / time when goes from Pending to Active or Inactive |
EffectiveSuspension (View)
Exact same properties as the Suspension + the ones bellow. When fetching suspensions (GET /suspensions) it will return the effective suspensions. On save (POST / PATCH /suspensions), it persists to the Suspension table.
Property | Type | Description |
---|---|---|
effectiveRequiredGames | number | requiredGames (Suspension) + additionalGames (SuspensionDiscipline) = effectiveRequiredGames
|
effectiveDurationType | enum | durationType (SuspensionDiscipline), if none → durationType (Suspension) |
disciplineAdditionalGames | additionalGames (SuspensionDiscipline) | |
disciplineDurationType | enum | durationType (SuspensionDiscipline) Definite or Indefinite. To allow infinite duration |
disciplineStatus | enum | status (SuspensionDiscipline) |
...
Implementation
New Scopes
Scope | Access | Implementation |
---|---|---|
| Can access the suspension show page or lists | Suspension model: allow Any role that currently contains |
| Can edit suspensions | Suspension model: allow Any role that currently contains |
| Can see the suspension discipline card on a suspension | Suspension: allow SuspensionDiscipline: |
| Can edit the suspension discipline on a suspension | Suspension: allow SuspensionDiscipline: |
| Has access to create a SuspensionDiscipline on a Suspension in pending status (custom endpoint) | Custom endpoint on SuspensionDiscipline model: |
Unhardcoding
Status | ||||
---|---|---|---|---|
|
Handle indefinite and expiry dates
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-646
Replace code with sanctions
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-985
Accumulation
Status | ||||
---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
When the game is completed (or certified, depending on settings), get all sanctions for the schedule office
Find matching sanctions based on the sanction members that match the penalties
Find all past penalties and suspensions of all suspend-able players in the same season
In soccer, limit both to same office
Determine the sanction(s) based on the accumulation rules
Sanctions with higher priority cancel out lower priority sanctions
All sanctions are added unless there is an exclusive sanction
Suspension length will be defined as games or lastMinutesGames with injuryGames has additional games.
endGames is only applicable when the penalty is in the last 10 minutes (per office settings)
injuryGames is only applicable when the penalty is marked as injured
When creating the suspension, send a notification to the player, team officials and office admins (except player, will be based on notification setting)
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1285 Add ability to deactivate suspensions
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1336
Discipline Committee
Status | ||||
---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
As a league administrator, I want to be able to go into a suspension and increase the required number of games. I also want to see a list of all the suspensions that required discipline committee actions.
...
SuspensionDiscipline Model
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1279 Migration to add table
Add new model to API (one-to-one relation with Suspension)
Add scopes:
suspensions:view
,suspensions:manage
,discipline:view
,discipline:manage
,discipline:trigger
All roles that have
scoresheets:view
should now also havesuspensions:view
All roles that have
scoresheets:manage
should now also havesuspensions:manage
Change the current suspension model to have
suspensions:view
/suspensions:manage
instead ofscoresheets:view
/scoresheets:manage
New
SuspensionDiscipline
table should havediscipline:view
,discipline:manage
anddiscipline:trigger
scopes.
EffectiveSuspension (View)
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1348 EffectiveSuspension to get suspension total games to purge
https://spordle.atlassian.net/wiki/spaces/SPR/pages/edit-v2/2952200206#EffectiveSuspension-(View)
Adjust purging logic to account for SuspensionDiscipline
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1345 Where ever we show the total number of games in the UI (ex. when purging, use effectiveRequiredGames and effectiveDurationType)
In backend, use effectiveRequiredGames and effectiveDurationType for purging logic
Metabase reports → use EffectiveSuspension → effectiveRequiredGames
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1349 Card to display and edit discipline committee information
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-646 Replace code with sanctions
SPR-1346 Add new card for Discipline Suspension (should only be viewable by
suspensions:discipline
scope rolesAdd the following fields on the suspension grid:
Original required games (can be indefinite)
Discipline additional games (can be indefinite)
Effective required games (can be indefinite)
Required Discipline Committee option on Sanction Offense
JIRAJira Legacy server System
665Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-
Accumulation
Status | ||||
---|---|---|---|---|
|
When the game is completed (or certified, depending on settings), get all sanctions for the schedule office
Find matching sanctions based on the sanction members that match the penalties
Find all past penalties and suspensions of all suspend-able players in the same season
In soccer, limit both to same office
Determine the sanction(s) based on the accumulation rules
Sanctions with higher priority cancel out lower priority sanctions
All sanctions are added unless there is an exclusive sanction
If there are multiple suspensions, suspensions will stack and be pending until the prior suspension has completed
Suspension length will be defined as a sum of totalGames, endGames and injuryGames
endGames is only applicable when the penalty is in the last 10 minutes (per office settings)
injuryGames is only applicable when the penalty is marked as injured
If there is an expiry ratio defined, calculate the expiry based on the number of days
If the expiry falls within a break, extend it by the number of days within that break
When creating the suspension, send a notification to the player, team officials and office admins (except player, will be based on notification setting)
1344 Add requireDisciplineCommittee on sanction offense
On create of a suspension off a sanction, if requireDisciplineCommittee is true, create a suspension discipline record with a pending status.
Notifications for requireDisciplineCommittee suspensions
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1350 Will be part of the suspension email we currently send
View for
suspensions:{}
scope roles to see list of Pending SuspensionDiscipline records. Potentially a Suspension Tab / List.Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-1351 Have ability to filter on
Pending
suspension discipline forsuspensions:discipline
scope
If suspension discipline goes from
Pending
toActive
and Suspension isCompleted
. Move suspension fromCompleted
back toActive
. (to revise, edge case)
Lineup Status
Status | ||||
---|---|---|---|---|
|
Get all Active suspensions for each player
Status colour Green title COMPLETE League administrators may add additional suspensions to increase the required number of games and expiry date. This does not affect the automatic game suspension.
If a suspension has the Appealed status, it is not effective. The automatic game suspension is not affected.
- The suspension should follow the expiry ratio logic and breaks defined in the rulebook
In soccer, exclude suspensions for other offices
Status colour Green title COMPLETE
If the suspension is for another team, it cannot be purged
Status colour Green title COMPLETE
Assigning
Status | |
---|---|
|
...
|
...
|
If an official has any active suspension, they should be flagged as Suspended
Status colour Green title
...
Get all Active suspensions for each player
COMPLETE Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-655
Completion
Status | ||||
---|---|---|---|---|
|
- In soccer, exclude suspensions for other offices
If the suspension type is Indefinite, the suspension can never automatically be completed
If the suspension is for another team, it cannot be purgedStatus colour Green title COMPLETE Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-646
If there is an expiry date, the suspension is considered Expired once that date passes if it is not yet completed based on the required games
Status colour Green title COMPLETE
Assigning
Status | ||||
---|---|---|---|---|
|
- If an official has any active suspension, they should be flagged as Suspended If the suspension type is Indefinite, the suspension can never automatically be completed
This will require a task to run at midnight daily (based on the timezone of the office)
Status colour Green title COMPLETE Jira Legacy server System JIRAJira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-655 This will be limited to Play suspensions as querying ID will absolutely kill performance
Completion
Status | ||||
---|---|---|---|---|
|
646
A suspension completes once the suspension has the required amount of purges that are completed games
jiraStatus colour Green title COMPLETE
Syncing
...
Status |
---|
...
|
...
If there is an expiry date, the suspension is considered Expired once that date passes if it is not yet completed based on the required games
Status | ||||
---|---|---|---|---|
|
This will require a task to run at midnight daily (based on the timezone of the office)
Status colour Blue title TODO Jira Legacy server System JIRA serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-646
...
A suspension completes once the suspension has the required amount of purges that are completed games
Status | ||||
---|---|---|---|---|
|
...
If there is a pending suspension dependent on a completed suspension, start the dependent suspension
Status | ||||
---|---|---|---|---|
|
Syncing
Status | ||||
---|---|---|---|---|
|
...
Will need a two-way sync with ID
Jira Legacy server System JIRA serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-664
...
|
Will need a two-way sync with ID
Jira Legacy server System Jira serverId 03e16d48-9e59-3010-89f5-a1a3500d66b7 key SPR-664
This will remove the need to query suspensions in member validation
Additional notes JP
Once the new module will be completed, this will replace the Game Incident Report and the suspension module inside HCR,. We need to plan a sync process from Play to ID before we go live with that module.
The notification process to fill out the form is important. The people that are part of the discipline committee need a notification to let them know they have to fill or review a form. This will replace the actual distribution list in HCR. In an office in ID multiple person can be attached to the discipline committee notification and it’s hierarchical, so we need to build the same concept in Spordle Play
Multiple incident in the same game needs to be added to the same report.
Extra incident can be added manually ( not linked to a on ice infraction)
The pdf report is not mandatory to be sent by email , but needs to be available inside play. Notification can be enough