{% extends "projects/project_edit_base.html" %} {% load i18n %} {% load crispy_forms_tags %} {% block title %}{{ project.name }} - {% trans "Maintainers" %}{% endblock %} {% block project_users_active %}active{% endblock %} {% block project_edit_content_header %}{% trans "Maintainers" %}{% endblock %} {% block project_edit_content %} {% include "projects/partials/edit/user_list.html" with objects=users %} {% comment %} TODO move maintainer invitations to a dedicated view. Do not reuse this pattern, it is a bad pattern. This is a bit of a hack to avoid manipulating the view to work with multiple querysets on two separate models. On the maintainer view, there will also be a listing of invitations (the `Invitation` model). But, the invitiation list will not respond to pagination without altering the view to support multi model pagination. This means that invitations could clog up the UI, as they won't be paginated, and the invitations will to stuffed below the view model listing, so will be harder to find. Ideally, these should either be separate views entirely, or both listing queries would be joined into a single queryset listing. {% endcomment %} {% block maintainer_invitations %} {% if invitations.exists %}

{% trans "Pending invitations" %} {{ invitations.count }}

{% include "invitations/partials/invitation_list.html" with objects=invitations skip_pagination=True %} {% endif %} {% endblock maintainer_invitations %} {% endblock %} {% block project_edit_sidebar_help_topics %} {% include "includes/elements/link.html" with url="https://docs.readthedocs.io/page/glossary.html#term-maintainer" text="What is a maintainer?" is_external=True class="item" %} {% endblock project_edit_sidebar_help_topics %}