New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add conflict rules for scheduling #214

Open
rixx opened this Issue Nov 3, 2017 · 0 comments

Comments

Projects
None yet
1 participant
@rixx
Member

rixx commented Nov 3, 2017

We need to check schedules for conflicts, and there are different kinds of conflicts that may have different impacts. Once the rule system exists, users may want to change the importance of conflict rules as fits their event.

Features

Impact levels

  • BLOCK SCHEDULING: check and forbid while scheduling. This should be very rarely used, as forbidding a scheduling move instead of just flagging it is jarring for the user.
  • BLOCK RELEASE: check whenever appropriate, but block a release.
  • WARN: check whenever appropriate, show warnings, but permit a release.
  • IGNORE: don't check at all.

Checking styles

All checks except for blocking checks should run asynchronously to avoid delaying scheduling moves.

Known conflict rules

  • A room may only have one talk at a time
  • A room must be available
  • All speakers must be available
  • All speakers may only have one talk at a time

Future conflict rules

We may want to include attendance requests, room size/interest rate, scheduled breaks, and maybe even user defined features in our conflict rule system, which is one of the reasons it needs to be generic.

Implementation

As long as we only talk about named rules we know about, we may store them by name. We could have a (later on configurable) conflict ruleset as a JSON field in our event's settings:

{
   rules: [
        room_conflict: {
            severity: block_release,
            check_async: true
        }
    ]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment