Skip to content

UI updates for Procedural Constraints #1478

Open
@dandelany

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

NASA-AMMOS/aerie#1571, NASA-AMMOS/aerie#1572

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

constraintsAnything related to the constraints domainfeatureNew feature or request

Type

No type

Projects

  • Status

    In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions