Phases


Introduction

The Phase Feature in Milexco provides a comprehensive system for planning, tracking, and managing exercise phases. Phases represent distinct periods within an exercise or track, each with specific objectives, timelines, and dependencies. This feature enables exercise coordinators to effectively organize the execution of exercises, monitor progress, and ensure all dependencies are properly managed.

Key Features

  1. Phase Management:

    • Create, view, update, and track phases for both exercises and tracks
    • Monitor phase status through a visual dashboard
    • Track phase progress and completion rates
  2. Status Workflow:

    • Manage phase lifecycle through predefined statuses (Scheduled, Ongoing, Paused, Completed, etc.)
    • Automated validation of status transitions with interactive warnings
    • Date validation for phase start and end times
  3. Dependency Management:

    • Define dependencies between phases
    • Prevent starting phases with incomplete dependencies
    • Visualize dependency relationships
  4. Dashboard and Reporting:

    • View phase statistics through interactive widgets
    • Filter phases by exercise or track context
    • Monitor overall exercise progress
  5. Flexible Phase Lifecycle:

    • Start, pause, end, and restart phases as needed
    • Comprehensive validation to ensure data integrity
    • Clear warnings and confirmations for status changes
  6. Robust Date Handling:

    • Intelligent validation of date relationships
    • Prevention of null date errors through proper checks
    • Date constraints based on hierarchical relationships

Phase Management

Viewing Phases

  1. Accessing the Phase List:

    • Navigate to the Phases tab in the Exercise Control panel
    • The phase list displays phases with their status, timeline, and other key information
    • Toggle between Exercise and Track phases using the tab selector
  2. Using Filters and Search:

    • Use the search bar to find phases by name or identifier
    • Apply filters to narrow down phases by status, priority, or other attributes
    • Sort phases by sequence, start date, or status
  3. Phase Details View:

    • Click on a phase in the list to view its complete details
    • The details page shows objectives, dependencies, timeline, and status information in a compact layout
    • Access phase actions such as Start, End, Restart, or Edit from this view

Phase Dashboard

  1. Accessing the Dashboard:

    • Navigate to the Dashboard tab in the Exercise Control panel
    • The dashboard provides an overview of all phases and their statuses
  2. Dashboard Widgets:

    • Phase Overview: Shows key metrics including total phases, completion rate, active phases, and average duration
    • Phase Status Chart: Displays a visual breakdown of phases by status
    • Toggle between Exercise and Track context using the tab selector
  3. Using the Dashboard:

    • Monitor overall exercise progress at a glance
    • Identify bottlenecks or delays in phase execution
    • Track completion rates and active phases

Adding a Phase

  1. Click the New Phase button on the Phase List page

  2. Complete the required fields:

    • Phase Identifier: Select an existing identifier or create a new one
    • Level: Choose between Exercise or Track
    • Status: Initial status (typically Scheduled)
    • Priority: Set the importance level
    • Sequence: Determine the order within the exercise or track
    • Timeline: Set planned start and end dates
    • Objectives: Define the goals for this phase
    • Description: Provide detailed information about the phase
  3. Dependencies (Optional):

    • Add dependencies from other phases if applicable
    • Only phases from the same level (Exercise or Track) can be selected as dependencies
  4. Click Save to create the phase

{info} New phases are typically created with a status of "Scheduled" and can be started once all dependencies are completed.

{note} When setting dates for phases, the system intelligently validates date relationships. For instance, a phase's end date must occur after its start date, and the system will prevent you from entering invalid date combinations.

Editing a Phase

  1. From the Phase Details view, click the Edit button in the header actions

  2. Update the necessary information:

    • Modify objectives, description, or timeline
    • Adjust priority or sequence
    • Add or remove dependencies
  3. Status Changes:

    • When changing a phase's status, you'll receive a warning notification explaining the implications
    • The notification provides options to continue with the change or revert to the previous status
    • All status changes are validated to ensure they follow the proper workflow
  4. Click Save to apply changes

{warning} Changing dependencies for phases that are already in progress may affect the workflow of the exercise.

{info} The system employs robust date validation to prevent errors caused by null or invalid dates. For example, if a dependent date field relies on another date that isn't set, the system will handle this gracefully rather than producing an error.

Managing Phase Status

Phases follow a defined lifecycle through various statuses:

  • Scheduled: Initial status for planned phases
  • Ongoing: Active phases currently in execution
  • Paused: Temporarily halted phases
  • Completed: Successfully finished phases
  • Cancelled: Terminated phases that will not be completed

Starting a Phase

  1. From the Phase Details view, click the Start Phase action

  2. Set the actual start date (defaults to current date/time)

  3. Confirm to change the status to "Ongoing"

{info} A phase can only be started if all its dependencies are completed and it is currently in "Scheduled" status.

Ending a Phase

  1. From the Phase Details view, click the End Phase action

  2. Set the actual end date (defaults to current date/time)

  3. Select the final status (Completed or Cancelled)

  4. Confirm to finalize the phase

{info} The end date must be after the start date, and the phase must be in "Ongoing" or "Paused" status to be ended.

Pausing a Phase

  1. From the Phase Details view, click the Pause Phase action (if available)

  2. Confirm to change the status to "Paused"

  3. The phase can later be resumed by using the Resume Phase action

Restarting a Phase

  1. From the Phase Details view, click the Restart Phase action

  2. This action is only available for phases with a status of Completed

  3. You'll need to set a new planned end date:

    • The original planned start date will be preserved
    • The actual end date will be cleared
  4. Confirm to restart the phase

  5. The phase will be updated with:

    • Status changed to Ongoing
    • New planned end date applied
    • Actual end date cleared
    • All dependencies checked again to ensure they are completed

{info} Restarting a phase allows you to revisit and continue work on a previously completed phase without having to create a new one. This is useful when additional work is needed after a phase was marked as completed.

Replanning a Phase

  1. From the Phase Details view, click the Replan Phase action

  2. This action is only available for phases with a status of Cancelled

  3. You'll need to set new planned start and end dates:

    • The planned start date will default to the original planned start date
    • The planned end date will default to the original planned end date
    • Both dates can be adjusted as needed
  4. If you set any of the planned dates in the past, additional fields will appear automatically:

    • Actual Start Date: Set this if the phase has already started
    • Actual End Date: Set this if the phase has already ended
    • These fields help ensure accurate tracking of when activities actually occurred
  5. The phase's status will be automatically determined based on the dates you provide:

    • Scheduled: If both planned dates are in the future
    • Ongoing: If the planned start date is in the past but the end date is in the future
    • Completed: If both planned dates are in the past
  6. Confirm to replan the phase

  7. The phase will be updated with:

    • New planned start and end dates
    • Appropriate actual dates based on your input
    • Status determined by the date relationships
    • All dependencies checked again to ensure they are completed

{info} Replanning a phase allows you to restart a previously cancelled phase with new dates. The dynamic form adapts to your inputs, showing only relevant fields based on the dates you select. The system intelligently determines the appropriate status based on the dates you provide, making it easy to reintegrate the phase into your exercise timeline.

{note} All date fields in the phase management interfaces include intelligent null-checking to prevent errors. The system will gracefully handle cases where a date is not set, ensuring that dependent calculations can still proceed without errors.

Phase Dependencies

  1. Adding Dependencies:

    • Edit a phase and navigate to the Dependencies section
    • Select phases that must be completed before this phase can start
    • Only phases from the same level (Exercise or Track) can be selected
  2. Dependency Validation:

    • The system prevents circular dependencies
    • Dependencies must be from the same level and exercise/track
    • A phase cannot depend on itself
  3. Dependency Impact:

    • Phases with incomplete dependencies cannot be started
    • The system validates dependencies before allowing status changes
    • Dependencies are displayed on the Phase Details view

Phase Identifiers

Phase Identifiers provide a standardized naming convention for phases across exercises and tracks.

Managing Phase Identifiers

  1. Creating Phase Identifiers:

    • Navigate to the Phase Identifiers section
    • Click New Phase Identifier
    • Provide a name and short name (code)
    • Add a description if needed
    • Save the identifier
  2. Using Phase Identifiers:

    • Select an existing identifier when creating a new phase
    • Reuse identifiers across different exercises for consistent naming
    • Search and filter phases by identifier

Troubleshooting

  1. Cannot Start a Phase:

    • Verify all dependencies are completed
    • Check that the phase is in "Scheduled" status
    • Ensure the planned start date is not in the future
  2. Date Validation Errors:

    • Ensure the start date is before the end date
    • Verify that dates are within reasonable ranges (not too far in the past or future)
    • For completed phases, both start and end dates must be provided
  3. Dependency Issues:

    • Check for circular dependencies
    • Verify that dependencies are from the same level and exercise/track
    • Ensure dependent phases exist and are not deleted
  4. Status Change Warnings:

    • If you receive a warning when changing a phase's status, read the message carefully
    • Consider the implications before proceeding
    • Use the "Revert" option if you changed the status unintentionally
  5. Date Function Errors:

    • If you encounter "Call to a member function on null" errors, check for empty date fields
    • Ensure required dates are filled in before performing date-dependent operations
    • Use the date pickers rather than manual entry to avoid format issues
    • Verify that start dates are set before attempting to set end dates that depend on them