Open
Description
Background
Now that Procedural Scheduling has been released, we are working on implementing Procedural Constraints. The workflow for using them will be very similar to scheduling goals: write a constraint in Java, compile a JAR, upload it via the Aerie UI, and add it to a plan using the same list UI that is used for eDSL constraints. Whereas procedural scheduling goals create activities on an editable plan, procedural constraints will return violations, ie. windows of time when the constraint is violated, and will not be able to edit the plan directly.
The UI updates to support procedural goals were defined in #1436 and implemented in #1444
Requirements
On the Constraints page (mostly copied from #1436):
- Add an "Upload JAR" button to the (left side) form used for creating a new Scheduling Constraint, which allows the user to select a JAR file to upload. They should still be able to provide metadata such as name and description in the form before uploading.
- Add an "Upload JAR" button to the form used for editing an existing scheduling constraint. This should look & behave mostly the same way as the other button, but should instead upload a new version of the existing constraint when submitted.
- Add a toggle switch to the form, which makes it obvious whether the goal is an EDSL or Procedural JAR type constraint
On the constraints panel on a Plan:
- Update the UI to allow users to add procedural constraints to a plan
- Just like goals:
- Multiple invocations of the same constraint will be allowed on a plan
- Procedural constraints may have parameters/arguments - copy the parameters UI from goals
- User should be able to have a mix of eDSL constraints & procedural constraints on their plan spec
- Unlike goals, ordering of constraints on a plan spec doesn't matter
Related Issues
Metadata
Assignees
Type
Projects
Status
In Progress
Activity