Design for the `Calculate` tab of the OpenQuake platform
This blueprint defines the UI layout and functions and backend services required to implement a `Calculate` user interface in the OpenQuake Platform.
See whiteboard for general design outline.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- New
- Series goal:
- None
- Implementation:
-
Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
----------
UI
----------
Layout sketch: https:/
General:
- Add `Calculate` link and page
- Leaflet based map, with Context Ribbon (above) and Layer Tree (left)
- Ribbon contains `Browse Calculations...` and `New Calculation...` buttons
Browse Calculations:
- jQueryUI dialog
- Upon opening fetches a list of the available `artifact_group` records with `group_
- List has two columns: "name" and "status"
- Future optimization: paginate, don't loading everything at once
- select one, click View
- When View is clicked, close dialog and load calculation into Layer Tree
- Only one calculation can be viewed at a time
- For the first iteration, anyway
- In this future, we may want to show multiple calculations
New Calculation:
- jQueryUI dialog
- Get the "run calculation" form from oq-engine-server
- User uploads input models
- User runs calculation
- The base calculation artifact is immediately available in the Browse Calculations dialog
- Each calculation `artifact_group` contains _at least_ (at any given time, even while the calculation is in progress) 1 `artifact`: the calculation profile, as JSON (see https:/
- This artifact is renderable in the map (the calculation geometry, etc.)
- We could also have a button to open a dialog and view the calculation properties
----------
Backend
----------
Icebox:
- add `artifact_group` and `artifact_
- `artifact_group` fields:
- name
- group_type ("map", "calculation", etc.)
- user_id (FK to Django auth_user table)
- `artifact_
- artifact_group_id (FK)
- artifact_id (FK)
- GET /icebox/
- GET /icebox/
- Update `import` API method (https:/