{% extends "base_generic.html" %} {% load bleach_tags custom_tags extra_fields %} {% load i18n %} {% get_current_language as LANGUAGE_CODE %} {% block pagetitle %}{{ client.name }} Details{% endblock %} {% block content %}
{% if client.logo %} {% endif %}
Client

{{ client.name }}

{% if client.tags.names %}
{% for tag in client.tags.names %}{{ tag|bleach }}{% endfor %}
{% endif %}

{% comment %} Load tabs via AJAX so badges update with delete actions {% endcomment %}

Client Details

Short Name
{% if client.short_name %}{{ client.short_name }}{% else %}Not provided{% endif %}
Codename
{% if client.codename %}{{ client.codename }}{% else %}Not provided{% endif %}
Client's Current Time

Additional Information

{% if client.description %} {{ client.description|bleach }} {% else %}

No additional information provided for this client. Add information.

{% endif %}

Business Address

{% if client.address %} {{ client.address|bleach }} {% else %}

No address provided for this client.

{% endif %}
{% comment %} Invitations {% endcomment %} {% if request.user|is_privileged %}

Invitations

Invited users can view this client and all related projects and infrastructure.

Add & Edit Invitations
{% if client.clientinvite_set.all %}
{% for invite in client.clientinvite_set.all %} {% endfor %}
Name Comment Options
{% if invite.user.name %} {{ invite.user.name }} {% else %} Missing Full Name ({{ invite.user.username|capfirst }}) {% endif %} {% if invite.comment %}{{ invite.comment|bleach }}{% else %}No comment{% endif %}
{% else %}

No invitations yet

Invite users who need access to this client's complete project history.

{% endif %}
{% endif %}

Client Contacts

Add & Edit Contacts
{% if client.clientcontact_set.all %}
{% for poc in client.clientcontact_set.all %} {% endfor %}
Primary Name Title/Role Email Options
{% if poc.primary %}Yes{% else %}No{% endif %} {{ poc.name }} {% if poc.job_title %}{{ poc.job_title }}{% else %}Not provided{% endif %} {% if poc.email %}{{ poc.email }}{% else %}Not provided{% endif %}
{% else %}

No contacts yet

This client does not have any contact records.

{% endif %}

Client Projects

Add a Project
{% if not request.user|is_privileged %}
Some projects shown here may have incomplete information if you do not have access. You gain access to a project by being assigned to it or invited to have full access to the related client's history.
{% endif %} {% if projects %}
{% for project in projects %} {% with has_access=project.current_user_can_view %} {% if has_access %} {% else %} {% endif %} {% endwith %} {% endfor %}
Codename Project Type Execution Window Options
{{ project.codename }}REDACTED{{ project.project_type }} {{ project.start_date|date:"DATE_FORMAT" }} – {{ project.end_date|date:"DATE_FORMAT" }}
{% if has_access %} {% endif %}
{% else %}

No projects yet

Create a project to begin planning an engagement for this client.

{% endif %}
{% if domains or servers or vps %}

Domains Used with Client

{% if domains %} {% if not request.user|is_privileged %}
Some projects shown here will be hidden if you do not have access. You gain access to a project by being assigned to it or invited to have full access to the related client's history.
{% endif %}
{% for domain in domains %} {% if domain.current_user_can_view %} {% else %} {% endif %} {% endfor %}
Project Domain Activity Type End Date Checked Out By
{{ domain.project.codename }} REDACTED{{ domain.domain.name }} {{ domain.activity_type }} {{ domain.end_date|date:"DATE_FORMAT" }} {% if domain.operator %}{{ domain.operator }}{% else %}Not checked out{% endif %}
{% else %}

No domains used

Domain checkouts for this client's projects will appear here.

{% endif %}

Servers Used with {{ client.name }}

{% if servers or vps %} {% if not request.user|is_privileged %}
Some projects shown here will be hidden if you do not have access. You gain access to a project by being assigned to it or invited to have full access to the related client's history.
{% endif %}
{% for server in servers %} {% if server.current_user_can_view %} {% else %} {% endif %} {% endfor %} {% for server in vps %} {% if server.current_user_can_view %} {% else %} {% endif %} {% endfor %}
Project Server Activity Type End Date Checked Out By
{{ server.project.codename }} REDACTED{{ server.server.ip_address }} {{ server.activity_type }} {{ server.end_date|date:"DATE_FORMAT" }} {% if server.operator %}{{ server.operator }}{% else %}Not checked out{% endif %}
{{ server.project.codename }} REDACTED{{ server.ip_address }} {{ server.activity_type }} {{ server.project.end_date|date:"DATE_FORMAT" }} Not applicable
{% else %}

No servers used

Server checkouts for this client's projects will appear here.

{% endif %} {% else %}

Infrastructure History

No infrastructure used

Check out infrastructure to one of this client's projects to begin its usage history.

{% endif %}
{% comment %} Extra Fields Tab {% endcomment %} {% if client_extra_fields_spec %}

Extra Fields

Client-level values are available to templates using the reference shown on each card. Jinja2 expressions that need project or report context are rendered on those detail pages.

Edit Extra Fields
{% for field_spec in client_extra_fields_spec %}
{{ field_spec.display_name }}
{% if field_spec.type == "rich_text" %} Rich Text {% else %} {{ field_spec.get_type_display }} {% endif %}
Template reference client.extra_fields.{{ field_spec.internal_name }}
Current value
{% if field_spec.type == "rich_text" %} Formatted content is available in Preview. {% elif field_spec.type == "json" %} Structured content is available in View JSON. {% else %} {% include "user_extra_fields/field.html" with extra_fields=client.extra_fields field_spec=field_spec preview_report=False %} {% endif %}
{% if field_spec.type == "rich_text" or field_spec.type == "json" %}
{% if field_spec.type == "rich_text" %} {% else %} {% endif %}
{% endif %}
{% endfor %}
{% endif %}

Client Notes

Add a Note
{% if client.clientnote_set.all %}
{% for note in client.clientnote_set.all reversed %}
{{ note.note|bleach }}
{% if request.user == note.operator or request.user|is_privileged %} {% endif %}
{% if note.operator %} {{ note.operator.username }} {% else %} Deleted user {% endif %}
{% endfor %}
{% else %}

No notes yet

Add a note to preserve client context that does not belong to an individual project.

{% endif %}
{% endblock %} {% block tabs %} {{ block.super }} {% endblock %} {% block morescripts %} {% comment %} Include the reusable delete confirmation modal and related scripts {% endcomment %} {% include "confirm_delete_modal.html" %} {% comment %} Insert modals for RichText previews on extra fields {% endcomment %} {% if client_extra_fields_spec %} {% for field_spec in client_extra_fields_spec %} {% url 'rolodex:client_extra_field_json' client.id field_spec.internal_name as extra_field_json_url %} {% include "user_extra_fields/extra_field_modal.html" with extra_fields=client.extra_fields field_spec=field_spec lazy_json_url=extra_field_json_url preview_report=False %} {% endfor %} {% include "user_extra_fields/lazy_json_modal_script.html" %} {% endif %} {% comment %} Insert modals for additional domain details {% endcomment %} {% for project in projects %} {% if project.current_user_can_view %} {% include "snippets/project_history_detail_modal.html" %} {% endif %} {% endfor %} {% comment %} Insert modals for additional contact details {% endcomment %} {% for poc in client.clientcontact_set.all %} {% include "snippets/client_contact_detail_modal.html" with poc=poc %} {% endfor %} {% endblock %}