8000 feat(scheduler): add init scheduler documentation by alexyvanot · Pull Request #998 · UserOfficeProject/user-office-core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

feat(scheduler): add init scheduler documentation #998

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

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
115 changes: 115 additions & 0 deletions documentation/docs/user-guide/scheduler.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Scheduler :material-calendar-month:

_________________________________________________________________________________________________________

## What is the Scheduler?

The Scheduler section of the User Office Application allows instrument scientists to plan and manage time slots for the use of equipment and instruments. This feature is accessible via the calendar interface, where users can view, organize, and modify beam time slots. The module also allows filtering of time slots based on various criteria for efficient scheduling.

_________________________________________________________________________________________________________

## Accessing the Scheduler Interface

The scheduling module is not accessible by default within the core part of the User Office Application. Instead, scheduling is managed through a separate interface. Since it is a dedicated Application, the User Office Scheduler comes with its own URL, which is usually different from that of User Office Core. However, It depends on how the Infrastructure is built.

_________________________________________________________________________________________________________

## Prerequisites

### System Requirements
- A supported web browser (Chrome, Firefox, Safari, etc.).

### Essential Configuration
- The scheduling module must be deployed and activated to allow access.
- Users must have appropriate permissions as Instrument Scientists or administrators (User Officer) to access and modify scheduling data.

### Linking Proposals
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we mention explicitly that this should be done in the User Office Core application by the Admin(User Officer).

- This part should be done by the User Officer in the User Office Core application.
- Scheduling is tied to Calls for each Proposal which must be correctly associated with planned time slots.
- Proposals in **SCHEDULING** status will appear in the calendar, and administrators can assign time slots accordingly. Note there are 2 ways to set a proposal to **SCHEDULING** status:
1. **Through Workflow**: Configure the workflow to automatically transition proposals to **SCHEDULING** status based on predefined criteria. For more details on configuring the **SCHEDULING** status, refer to the [Creating Workflow guide](../user-guide/user-officer/creating_workflow.md).
2. **Manual Status Change**: The User Officer can manually change the status of a proposal to **SCHEDULING** within the User Office Core application.
- Proposals need to be **Accepted** by the User Officer in order to be scheduled.
- It is necessary to check the **RabbitMQ** box in the **SCHEDULING** status of the Call Workflow to allow the proposal to be processed in the scheduler. To enable this:
1. Click on the **SCHEDULING** status in your workflow tree.

![scheduler_wf](../assets/images/scheduler_wf.png)

2. Click on **Status Actions**.

![scheduler_wf_status](../assets/images/scheduler_wf_status.png)

3. Check the **RabbitMQ** box.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is a good idea to mention that

RabbitMQ should be running and both User Office application and Scheduler application should be able to seamlessly communicate with it. I know that this falls on the Technical guide, but would still be a good idea to have it on User side as this operation includes some tech understanding.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that the checkbox is visible within the application and is required to enable communication between the Scheduler and the core application, I thought it would be valuable to inform users about this aspect when creating their workflows.
This would ensures that the necessary configurations are set up for seamless communication between the two systems.


![scheduler_wf_rabbit](../assets/images/scheduler_wf_rabbit.png)

You can now put your proposal in **SCHEDULING** status and allocate time slots, so it will appear in the scheduler.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is also important to mention that the Proposal should be accepted as well as the status should be SCHEDULING.

Since the User office is based on configurations, if workflows are not configured properly, it is possible for a Proposal to be Accepted but the status does not go to SCHEDULING and hence does n't show up in the Scheduler app.


![scheduler_pre_status](../assets/images/scheduler_pre_status.png)

![scheduler_pre_allocate](../assets/images/scheduler_pre_allocate.png)



_________________________________________________________________________________________________________

## Interface

### Left Panel
The left panel displays the different menus available in the User Office Application. The default page is **Calendar**, where all planned time slots are visualized. Additional menus, such as **Equipment List** and **Equipment Request**, will be added to manage equipment and related requests.

![scheduler_menu](../assets/images/scheduler_menu.png)

### Calendar Page
The calendar interface is dedicated to **Instrument Scientists** and allows them to view planned time slots on a calendar.
**NOTE:** Instrument Scientist will be able to do the Scheduling operation only for the Instruments they are assigned to.

![scheduler_calendar](../assets/images/scheduler_calendar.png)

#### Calendar Features:
- **Default Display**: The calendar is displayed by default in **Calendar mode**, providing a classic view of the schedule over a given period.

#### Available Filters:
- **By instrument**: Filters time slots by specific instruments, such as beamlines like **ROCK**.
- **By equipment**: Filters by the equipment being used (details available in the Equipment List menu).
- **By local contact**: Displays time slots by associated Instrument Scientists.

![scheduler_filters](../assets/images/scheduler_filters.png)

#### Display Types:
The right panel allows changing the calendar display type with three options:
1. **Calendar**: Classic view (default).

![scheduler_view_calendar](../assets/images/scheduler_view_calendar.png)

2. **Table**: Structured tabular view of time slots.

![scheduler_view_table](../assets/images/scheduler_view_table.png)

3. **Timeline**: Chronological view similar to Outlook, providing a linear and intuitive representation of time slots.

![scheduler_view_timeline](../assets/images/scheduler_view_timeline.png)

_________________________________________________________________________________________________________

## Event Management

A **NEW EVENT** button is available to create new events, such as:
- **Maintenance**: Scheduling a time period for instrument or equipment maintenance.
- **Shutdown**: Scheduling machine downtime.

![scheduler_new_event](../assets/images/scheduler_new_event.png)

![scheduler_plan_down](../assets/images/scheduler_plan_down.png)

### Time Slots to Plan
Time slots are associated with proposals. For example, a proposal in **SCHEDULING** status may appear in the calendar, as shown with proposal **2025000**. This proposal is currently being scheduled for a duration of **2 days and 17 hours**. This process is essential for managing periods of instrument and equipment usage.

![scheduler_plan_drag](../assets/images/scheduler_plan_drag.png)

![scheduler_plan](../assets/images/scheduler_plan.png)

![scheduler_planned](../assets/images/scheduler_planned.png)

_________________________________________________________________________________________________________

1 change: 1 addition & 0 deletions documentation/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ nav:
- Settings:
- Proposal workflows: user-guide/user-officer/settings/proposal_workflow.md
- Features: user-guide/user-officer/settings/features.md
- Scheduler: user-guide/scheduler.md
- Developer Guide:
- Contributing: developer-guide/CONTRIBUTING.md
- Architecture: developer-guide/architecture.md
Expand Down
0