Add inline

This commit is contained in:
zandercymatics 2024-04-10 13:05:17 -06:00
parent 990a6f51e8
commit 1bcc57e51e
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
6 changed files with 20 additions and 15 deletions

View file

@ -1,7 +1,7 @@
from datetime import date from datetime import date
import logging import logging
import copy import copy
from django.forms.models import BaseInlineFormSet
from django import forms from django import forms
from django.db.models import Value, CharField, Q from django.db.models import Value, CharField, Q
from django.db.models.functions import Concat, Coalesce from django.db.models.functions import Concat, Coalesce
@ -69,7 +69,6 @@ class DomainInformationInlineForm(forms.ModelForm):
widgets = { widgets = {
"other_contacts": NoAutocompleteFilteredSelectMultiple("other_contacts", False), "other_contacts": NoAutocompleteFilteredSelectMultiple("other_contacts", False),
} }
template = "django/admin/domain_information_change_form.html"
class DomainRequestAdminForm(forms.ModelForm): class DomainRequestAdminForm(forms.ModelForm):
@ -1442,7 +1441,6 @@ class DomainInformationInline(admin.StackedInline):
form = DomainInformationInlineForm form = DomainInformationInlineForm
model = models.DomainInformation model = models.DomainInformation
template = "django/admin/domain_information_inline_change_form.html"
fieldsets = copy.deepcopy(DomainInformationAdmin.fieldsets) fieldsets = copy.deepcopy(DomainInformationAdmin.fieldsets)
# remove .gov domain from fieldset # remove .gov domain from fieldset
@ -1450,7 +1448,8 @@ class DomainInformationInline(admin.StackedInline):
if title == ".gov domain": if title == ".gov domain":
del fieldsets[index] del fieldsets[index]
break break
readonly_fields = DomainInformationAdmin.readonly_fields
analyst_readonly_fields = DomainInformationAdmin.analyst_readonly_fields analyst_readonly_fields = DomainInformationAdmin.analyst_readonly_fields
# For each filter_horizontal, init in admin js extendFilterHorizontalWidgets # For each filter_horizontal, init in admin js extendFilterHorizontalWidgets
# to activate the edit/delete/view buttons # to activate the edit/delete/view buttons
@ -1616,7 +1615,7 @@ class DomainAdmin(ListHeaderAdmin):
"""Custom changeform implementation to pass in context information""" """Custom changeform implementation to pass in context information"""
if extra_context is None: if extra_context is None:
extra_context = {} extra_context = {}
extra_context["original_object"] = self.model.objects.get(pk=object_id)
# Pass in what the an extended expiration date would be for the expiration date modal # Pass in what the an extended expiration date would be for the expiration date modal
if object_id is not None: if object_id is not None:
domain = Domain.objects.get(pk=object_id) domain = Domain.objects.get(pk=object_id)

View file

@ -36,6 +36,12 @@
{{ block.super }} {{ block.super }}
{% endblock %} {% endblock %}
{% block inline_field_sets %}
{% for inline_admin_formset in inline_admin_formsets %}
{% include "django/admin/includes/domain_information_inline_change_form.html" with original_object=original.domain_info%}
{% endfor %}
{% endblock %}
{% block submit_buttons_bottom %} {% block submit_buttons_bottom %}
{% comment %} {% comment %}
Modals behave very weirdly in django admin. Modals behave very weirdly in django admin.

View file

@ -10,6 +10,6 @@
Use detail_table_fieldset as an example, or just extend it. Use detail_table_fieldset as an example, or just extend it.
{% endcomment %} {% endcomment %}
{% include "django/admin/includes/detail_table_fieldset.html" %} {% include "django/admin/includes/detail_table_fieldset.html" with original_object=original %}
{% endfor %} {% endfor %}
{% endblock %} {% endblock %}

View file

@ -14,7 +14,7 @@
Use detail_table_fieldset as an example, or just extend it. Use detail_table_fieldset as an example, or just extend it.
{% endcomment %} {% endcomment %}
{% include "django/admin/includes/detail_table_fieldset.html" %} {% include "django/admin/includes/detail_table_fieldset.html" with original_object=original %}
{% endfor %} {% endfor %}
{% endblock %} {% endblock %}

View file

@ -5,7 +5,7 @@
This is using a custom implementation fieldset.html (see admin/fieldset.html) This is using a custom implementation fieldset.html (see admin/fieldset.html)
{% endcomment %} {% endcomment %}
{% block field_readonly %} {% block field_readonly %}
{% with all_contacts=original.other_contacts.all %} {% with all_contacts=original_object.other_contacts.all %}
{% if field.field.name == "other_contacts" %} {% if field.field.name == "other_contacts" %}
{% if all_contacts.count > 2 %} {% if all_contacts.count > 2 %}
<div class="readonly"> <div class="readonly">
@ -49,7 +49,7 @@ This is using a custom implementation fieldset.html (see admin/fieldset.html)
</div> </div>
{% elif field.field.name == "alternative_domains" %} {% elif field.field.name == "alternative_domains" %}
<div class="readonly"> <div class="readonly">
{% for alt_domain in original.alternative_domains.all %} {% for alt_domain in original_object.alternative_domains.all %}
<a href="{% url 'admin:registrar_website_change' alt_domain.id %}">{{ alt_domain }}</a>{% if not forloop.last %}, {% endif %} <a href="{% url 'admin:registrar_website_change' alt_domain.id %}">{{ alt_domain }}</a>{% if not forloop.last %}, {% endif %}
{% endfor %} {% endfor %}
</div> </div>
@ -63,20 +63,20 @@ This is using a custom implementation fieldset.html (see admin/fieldset.html)
{% if field.field.name == "creator" %} {% if field.field.name == "creator" %}
<div class="flex-container"> <div class="flex-container">
<label aria-label="Creator contact details"></label> <label aria-label="Creator contact details"></label>
{% include "django/admin/includes/contact_detail_list.html" with user=original.creator no_title_top_padding=field.is_readonly %} {% include "django/admin/includes/contact_detail_list.html" with user=original_object.creator no_title_top_padding=field.is_readonly %}
</div> </div>
{% elif field.field.name == "submitter" %} {% elif field.field.name == "submitter" %}
<div class="flex-container"> <div class="flex-container">
<label aria-label="Submitter contact details"></label> <label aria-label="Submitter contact details"></label>
{% include "django/admin/includes/contact_detail_list.html" with user=original.submitter no_title_top_padding=field.is_readonly %} {% include "django/admin/includes/contact_detail_list.html" with user=original_object.submitter no_title_top_padding=field.is_readonly %}
</div> </div>
{% elif field.field.name == "authorizing_official" %} {% elif field.field.name == "authorizing_official" %}
<div class="flex-container"> <div class="flex-container">
<label aria-label="Authorizing official contact details"></label> <label aria-label="Authorizing official contact details"></label>
{% include "django/admin/includes/contact_detail_list.html" with user=original.authorizing_official no_title_top_padding=field.is_readonly %} {% include "django/admin/includes/contact_detail_list.html" with user=original_object.authorizing_official no_title_top_padding=field.is_readonly %}
</div> </div>
{% elif field.field.name == "other_contacts" and original.other_contacts.all %} {% elif field.field.name == "other_contacts" and original_object.other_contacts.all %}
{% with all_contacts=original.other_contacts.all %} {% with all_contacts=original_object.other_contacts.all %}
{% if all_contacts.count > 2 %} {% if all_contacts.count > 2 %}
<details class="margin-top-1 dja-detail-table" aria-role="button" open> <details class="margin-top-1 dja-detail-table" aria-role="button" open>
<summary class="padding-1 padding-left-0 dja-details-summary">Details</summary> <summary class="padding-1 padding-left-0 dja-details-summary">Details</summary>

View file

@ -2,5 +2,5 @@
{% load i18n static %} {% load i18n static %}
{% block fieldset %} {% block fieldset %}
{% include "django/admin/includes/detail_table_fieldset.html" %} {% include "django/admin/includes/detail_table_fieldset.html" with original_object=original_object %}
{% endblock %} {% endblock %}