{% extends "ui/templates/base/layout.html" %} {% block content %} {% include "modules/managers/templates/managers/_manager_tabs.html" %}

Engagement Progress

Client-wise and engagement-wise progress based on existing service task instances.

Clients
{{ progress_payload.summary.clients }}
Engagements
{{ progress_payload.summary.engagements }}
Tasks
{{ progress_payload.summary.tasks }}
Avg Progress
{{ progress_payload.summary.average_progress }}%
Open
{{ progress_payload.summary.open }}
Overdue
{{ progress_payload.summary.overdue }}
Due Today
{{ progress_payload.summary.due_today }}
Completed
{{ progress_payload.summary.completed }}
{% for client_group in progress_payload.clients %}
{{ client_group.client_name }}
{{ client_group.client_code or 'No client code' }} · {{ client_group.engagements|length }} engagement{{ '' if client_group.engagements|length == 1 else 's' }} · {{ client_group.task_count }} task{{ '' if client_group.task_count == 1 else 's' }}
Client progress{{ client_group.progress_percent }}%
Open {{ client_group.open_count }} · Completed {{ client_group.completed_count }} · Overdue {{ client_group.overdue_count }}
{% for engagement_group in client_group.engagements %}
0 or loop.first %}open{% endif %}>
{{ engagement_group.label }}
Status: {{ engagement_group.status.replace('_',' ').title() }} · Due: {{ engagement_group.due_date or '-' }}
{{ engagement_group.progress_status.replace('_',' ').title() }}{{ engagement_group.progress_percent }}%
Open {{ engagement_group.open_count }} · Completed {{ engagement_group.completed_count }} · Unassigned {{ engagement_group.unassigned_count }}
{% for task in engagement_group.tasks %} {% endfor %}
TaskAssigneeStatusPriorityTarget
{{ task.task_name }}
{% if task.description %}
{{ task.description }}
{% endif %}
{{ task.assigned_to.full_name if task.assigned_to else 'Unassigned' }} {{ task.status_label }} {{ task.priority_label }} {{ task.internal_target_date or '-' }}
{{ task.date_bucket }}
{% endfor %}
{% else %}

No progress data found

No engagement task matches the selected filter.

{% endfor %}
{% endblock %}