{% extends "base.html" %} {% block content %}
{{ _('Project Dashboard & Analytics') }}
{{ _('Total Hours') }}
{{ "%.1f"|format(project.total_hours) }}
{% if budget_data.estimated_hours > 0 %}{{ _('of') }} {{ "%.0f"|format(budget_data.estimated_hours) }} {{ _('estimated') }}
{% endif %}{{ _('Budget Used') }}
{{ "%.0f"|format(budget_data.consumed_amount) }}
{% if budget_data.budget_amount > 0 %}{{ "%.1f"|format(budget_data.percentage) }}% {{ _('of budget') }}
{% endif %}{{ _('Tasks Complete') }}
{{ task_stats.completed }}/{{ task_stats.total }}
{{ "%.1f"|format(task_stats.completion_rate) }}% {{ _('completion') }}
{{ _('Team Members') }}
{{ team_contributions|length }}
{{ _('contributing') }}
{{ _('Budget') }}
{{ "%.2f"|format(budget_data.budget_amount) }}
{{ _('Remaining') }}
{{ "%.2f"|format(budget_data.remaining_amount) }}
{{ _('No budget set for this project') }}
{{ _('No tasks created yet') }}
{{ _('No time entries recorded yet') }}
{{ _('Select a time period to view timeline') }}
{{ activity.user.display_name if activity.user.full_name else activity.user.username }} {{ activity.description or (activity.action + ' ' + activity.entity_type) }}
{{ activity.created_at|user_datetime('%Y-%m-%d %H:%M') }}
{{ _('No recent activity') }}
{{ _('No team members have logged time yet') }}
{{ task_stats.overdue }} {{ _('task(s) are overdue') }}