Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Teams can propose new dates/times/surfaces for any of their games

    • If allowed, leagues could disable this

  • Depending on configuration, the required parties (other team, league, association) will be notified and required to accept the change

    • This is configured on a per-office basis

  • Once all required parties have accepted the proposed change, the game is automatically rescheduled and everyone is notified (as normal)

Out of scope

  • Change fees

    • OMAHA won’t use this because they require games to fill out a form and pay a fee, so we’ll need transactions to convince them to use this (or a report?)

UX

  • Add a Reschedule Propose Change button on the game page, if the game is allowed to be rescheduled.

    • This will pop up a modal to select the new time and surface. This can be toggled between a form or calendar

    • A comment may be provided. This would be included on the DraftGameApproval

  • If the game has any DraftGames, an alert card is shown on the game page to show a game change is changes are proposed

    • This The draft game row can be expanded to show the status of each required party (DraftGameApproval)

    • Clicking on Accept/Decline will open a modal to confirm and attach an optional note

      • This replaces the current Publish button when approvals are present

    • If the user is both a league admin and team official they would see multiple approval requests and would have to accept both individually

...

To configure who is required to approve game changes. Property names TBD.

Property

Type

Description

requests enabled

boolean

Determine if the feature is enabled

team required

boolean

league required

boolean

associations required

booleanrequiredRescheduleApprovals

enum[]

List of approvals required for approval a draft game

  • Team Staff

  • Team Office

  • Schedule Office

If this list is empty, no approvals are required

DraftGameApproval

To track required approvals

Property

Type

Description

draftIddraftGameId

uuid

Link to the DraftGame

targetType

string

Office/Team

targetId

id

status

string

Pending | Accepted | Declined

comment

string

Optional notes to append with the response

...

  • Settings control which required parties require approval. Typical office defaults to schedule settings

  • Requesting a change produces a DraftGame and automatically produces DraftGameApprovals based on the office settingsWhen a DraftGameApproval is changed to Accepted, check if all others are accepted. If so, update the game. Technically this is based on if updatedGameId is present

  • The DraftGame modal mentioned in UX would also apply to games produced by leagues through the draft flow. This modal should only be visible for : required parties

    to be approvedusers with access to draft games (leagues, associations)

    for approval with permission

  • A new permission scope (scheduling:approve) to be added, which allows responding to a DraftGameApproval

    • For the migration, grant it to any role that has scheduling:manage, scheduling:games or teams:roster

  • A notification task that runs every 5 minutes should check for newly created DraftGameApprovals and send a notification

    • A new notification type for Draft Game Approvals to be created. By default (in the view) anyone with a scheduling:approvals role has it enabled

    • DraftGame Target → Permission Target to determine who receives the notification

  • When a DraftGameApproval is changed to Accepted, check if all others are accepted. If so, publish the draft game to update the game

    • The standard game rescheduled notification covers this case already

  • If an approval is declined, the league is responsible for deleting the draft game

  • Scheduling changes to the draft game must reset any approvals