{% extends "indy_hub/base.html" %} {% load i18n %} {% load static %} {% blocktrans asvar adminUsersNoGlobalPageDetailText %}No page usage has been recorded yet.{% endblocktrans %} {% blocktrans asvar adminUsersGlobalUsageErrorText %}Unable to load usage analytics right now.{% endblocktrans %} {% blocktrans asvar adminUsersNoPageDetailText %}No page usage has been recorded yet.{% endblocktrans %} {% blocktrans asvar adminUsersUserUsageErrorText %}Unable to load user analytics right now.{% endblocktrans %} {% blocktrans asvar adminUsersUsageTimeoutText %}The analytics request timed out.{% endblocktrans %} {% blocktrans asvar adminUsersRetryText %}Retry{% endblocktrans %} {% blocktrans asvar adminUsersLoadingGlobalText %}Loading usage overview…{% endblocktrans %} {% blocktrans asvar adminUsersLoadingUserText %}Loading user usage…{% endblocktrans %} {% blocktrans asvar adminUsersUsageDetailText %}Usage detail{% endblocktrans %} {% block page_title %}{% trans "User administration" %}{% endblock page_title %} {% block extra_css %} {% endblock extra_css %} {% block content %}
{% url 'indy_hub:settings_hub' as settings_hub_url %}

{% trans "User administration" %}

{% trans "Review account setup and recent Indy Hub use." %}

{% trans "Back to Settings" %}
{% if has_active_filters %} {% trans "Reset" %} {% endif %}

{% trans "Usage overview" %}

{% trans "Current search and filters · last 30 days" %}

{% trans "Users" %}

{% blocktrans count counter=all_rows_count with start=result_start end=result_end %}{{ counter }} result · showing {{ start }}–{{ end }}{% plural %}{{ counter }} results · showing {{ start }}–{{ end }}{% endblocktrans %}
{% trans "Scope coverage uses locally recorded scopes; token validity is managed from ESI." %}
{% for row in rows %} {% empty %} {% endfor %}
{% trans "User" %}{% if filters.sort_key == 'username' %}{% if filters.sort_direction == 'asc' %}↑{% else %}↓{% endif %}{% endif %} {% trans "Corporation" %}{% if filters.sort_key == 'corporation' %}{% endif %} {% trans "Health" %}{% if filters.sort_key == 'health' %}{% endif %} {% trans "Scopes" %}{% if filters.sort_key == 'scopes' %}{% endif %} {% trans "Usage" %}{% if filters.sort_key == 'usage' %}{% endif %} {% trans "Actions" %}
{{ row.user.username }}
{% if row.main_character_name %}{{ row.main_character_name }}{% else %}{% trans "No main character" %}{% endif %}
{% if row.status_is_pending %} {% trans "Account data is being prepared" %} {% else %} {% if row.health.level == 'good' %}{% trans "Good" %}{% elif row.health.level == 'medium' %}{% trans "Needs attention" %}{% else %}{% trans "Critical" %}{% endif %} · {% if row.scope_is_complete %}{% trans "Scopes complete" %}{% else %}{% trans "Scopes incomplete" %}{% endif %} {% endif %}
{% if row.corporations %} {% for corp in row.corporations %}{{ corp.corporation_name }}{% endfor %} {% else %} {% trans "No main corporation" %} {% endif %} {% if row.status_is_pending %}
{% trans "Preparing" %}
{% trans "Not scored yet" %}
{% else %}
{% if row.health.level == 'good' %}{% trans "Good" %}{% elif row.health.level == 'medium' %}{% trans "Needs attention" %}{% else %}{% trans "Critical" %}{% endif %} {{ row.health.score }}/100
{% if row.problem_counts.total %}
{% if row.problem_counts.blocking %}{% blocktrans count counter=row.problem_counts.blocking %}{{ counter }} blocking issue{% plural %}{{ counter }} blocking issues{% endblocktrans %}{% endif %} {% if row.problem_counts.blocking and row.problem_counts.advisory %} · {% endif %} {% if row.problem_counts.advisory %}{% blocktrans count counter=row.problem_counts.advisory %}{{ counter }} advisory{% plural %}{{ counter }} advisories{% endblocktrans %}{% endif %}
{% endif %} {% endif %}
{% if row.status_is_pending %}
{% trans "Preparing" %}
{% elif row.scope_is_complete %}
{% trans "Complete" %}
{% else %}
{% trans "Incomplete" %}
{% trans "Missing" %}: {{ row.missing_scopes|join:", " }}
{% endif %}
{% if row.status_is_pending %}
{% trans "Being prepared" %}
{% elif row.activity_30d_count %}
{% blocktrans count counter=row.activity_30d_count %}{{ counter }} visit / 30d{% plural %}{{ counter }} visits / 30d{% endblocktrans %}
{% if row.last_used_at %}
{% trans "Last" %}: {{ row.last_used_at|date:"Y-m-d" }}
{% endif %} {% else %}
{% trans "No visits / 30d" %}
{% if row.last_used_at %}{% trans "Last" %}: {{ row.last_used_at|date:"Y-m-d" }}{% else %}{% trans "Never recorded" %}{% endif %}
{% endif %}
{% trans "No users match the current filters." %}
{% if is_paginated %} {% endif %}
{% endblock content %} {% block extra_javascript %} {{ block.super }} {% endblock extra_javascript %}