{% extends "base.html" %} {% load i18n %} {% load humanize %} {% load icons %} {% load urlformat %} {% load metrics %} {% load permissions %} {% load authnames %} {% load translations %} {% load crispy_forms_tags %} {% block breadcrumbs %}
  • {% trans "Users" %}
  • {{ page_profile.get_user_name }}
  • {% endblock %} {% block content %} {% with billings=page_user.billing_set.prefetch %} {% perm 'user.edit' as can_edit_user %}
    {% trans

    {{ page_user }}

    @{{ page_user.username }} {% blocktrans with date=page_user.date_joined|date:"DATE_FORMAT" %}Joined on {{ date }}{% endblocktrans %} {% if can_edit_user or page_user == user %} {% if page_user.last_login %} {% blocktrans with date=page_user.last_login|date:"DATE_FORMAT" %}Last sign-in on {{ date }}{% endblocktrans %} {% else %} {% trans "Never signed-in" %} {% endif %} {% endif %} {% if page_profile.company %} {% icon "domain.svg" %} {{ page_profile.company }} {% endif %} {% if page_profile.location %} {% icon "map-marker.svg" %} {{ page_profile.location }} {% endif %}

    {% if page_profile.translated or page_profile.suggested or page_profile.uploaded %}

    {% if page_profile.translated %} {% blocktrans count cnt=page_profile.translated with count=page_profile.translated|intcomma %}{{ count }} translation{% plural %}{{ count }} translations{% endblocktrans %} {% endif %} {% if page_profile.suggested %} {% blocktrans count cnt=page_profile.suggested with count=page_profile.suggested|intcomma %}{{ count }} suggestion{% plural %}{{ count }} suggestions{% endblocktrans %} {% endif %} {% with pending_suggestions=page_user.suggestion_set.count %} {% if pending_suggestions %} {% blocktrans count cnt=pending_suggestions with count=pending_suggestions|intcomma %}{{ count }} pending suggestion{% plural %}{{ count }} pending suggestions{% endblocktrans %} {% endif %} {% endwith %} {% if page_profile.uploaded %} {% blocktrans count cnt=page_profile.uploaded with count=page_profile.uploaded|intcomma %}{{ count }} screenshot{% plural %}{{ count }} screenshots{% endblocktrans %} {% endif %} {% if page_profile.commented %} {% blocktrans count cnt=page_profile.commented with count=page_profile.commented|intcomma %}{{ count }} comment{% plural %}{{ count }} comments{% endblocktrans %} {% endif %}

    {% endif %} {% if can_edit_user or page_profile.website or page_profile.public_email or page_profile.github or page_profile.twitter or page_profile.linkedin or page_profile.liberapay or page_profile.fediverse or page_profile.codesite %}

    {% if page_profile.website %} {% icon "link.svg" %} {{ page_profile.website | urlformat }} {% endif %} {% if page_profile.public_email %} {% icon "email.svg" %} {{ page_profile.public_email }} {% endif %} {% if can_edit_user and page_user.email != page_profile.public_email %} {% icon "email.svg" %} {{ page_user.email }} {% endif %} {% if page_profile.liberapay %} {% icon "liberapay.svg" %} {{ page_profile.liberapay }} {% endif %} {% if page_profile.fediverse %} {% icon "fediverse.svg" %} {{ page_profile.fediverse | urlformat }} {% endif %} {% if page_profile.github %} {% icon "github.svg" %} {{ page_profile.github }} {% endif %} {% if page_profile.codesite %} {% icon "source.svg" %} {{ page_profile.codesite | urlformat }} {% endif %} {% if page_profile.twitter %} {% icon "twitter.svg" %} {{ page_profile.twitter }} {% endif %} {% if page_profile.linkedin %} {% icon "linkedin.svg" %} {{ page_profile.linkedin }} {% endif %}

    {% endif %} {% if user_languages %}

    {% for language in user_languages %} {{ language }} {% endfor %}

    {% endif %}
    {% include "snippets/list-objects.html" with objects=page_user_translations label=_("Translation") show_admin_badge=True name_source="translation" empty_message=_("No recent contributions found.") %} {% trans "Browse all translations with contribution" %}
    {% include "list-projects.html" with projects=page_owned_projects %} {% if page_owned_projects_more %} {% trans "Browse all managed projects" %} {% endif %}
    {% include "list-projects.html" with projects=page_watched_projects %} {% if page_watched_projects_more %} {% trans "Browse all watched projects" %} {% endif %}
    {% include "snippets/activity.html" with metrics=page_user|metrics %}
    {% include "last-changes-content.html" %} {% trans "Browse all changes made by this user" %}
    {% if can_edit_user %}
    {% for social in page_user.social_auth.all %} {% endfor %}
    {% trans "Identity" %} {% trans "User ID" %} {% trans "E-mail" %}
    {% auth_name social.provider ' ' %} {{ social.uid }} {% for verified in social.verifiedemail_set.all %} {{ verified.email }} {% if not loop.last %},{% endif %} {% endfor %}
    {% for subscription in page_user.subscription_set.prefetch.order %} {% endfor %}
    {% trans "Notification" %} {% trans "Scope" %} {% trans "Frequency" %} {% trans "Project" %} {% trans "Component" %} {% trans "One-time" %}
    {{ subscription.notification }} {{ subscription.get_scope_display }} {{ subscription.get_frequency_display }} {{ subscription.project }} {{ subscription.component }} {{ subscription.onetime }}
    {% if billings %}
    {% include "billing/list.html" with objects=billings show_expiry=1 show_removal=1 %}
    {% endif %}
    {% for log in page_user.auditlog_set.order %} {% endfor %}
    {% trans "When" %} {% trans "Account activity" %} {% trans "IP address" %} {% trans "User agent" %}
    {{ log.timestamp|date:"DATETIME_FORMAT" }} {{ log.get_message }} {{ log.address }} {{ log.user_agent }}
    {% for group in page_user_groups %} {% if group.defining_project %} {% else %} {% endif %} {% endfor %} {% for userblock in page_user.userblock_set.all %} {% endfor %}
    {% trans "Project" %} {% trans "Team" %} {% trans "Members" %}
    {{ group.defining_project }} {% trans "Site-wide team" %} {{ group }} {{ group.user__count }} {% icon 'delete.svg' %}
    {{ userblock.project.name }} {% if userblock.expiry %} {% blocktrans with expiry=userblock.expiry|date:"DATE_FORMAT" %}Blocked until {{ expiry }}{% endblocktrans %} {% else %} {% trans "Blocked permanently" %} {% endif %} {% icon 'close.svg' %}
    {% crispy group_form %}
    {% csrf_token %}

    {% trans "Edit user" %}

    {{ form|crispy }}

    {% documentation_icon 'admin/auth' '2fa' right=True %} {% trans "Two-factor authentication" %}

    {% if page_user.profile.has_2fa %} {% trans "The user has two-factor authentication." %} {% else %} {% trans "The user doesn't have two-factor authentication." %} {% endif %}
    {% if page_user.profile.has_2fa %} {% endif %}

    {% trans "Removal" %}

    {% trans "Account removal deletes all user private data." %}
    {% endif %}
    {% endwith %} {% endblock %}