diff --git a/src/registrar/admin.py b/src/registrar/admin.py
index d097c900e..4b05bbb6d 100644
--- a/src/registrar/admin.py
+++ b/src/registrar/admin.py
@@ -2289,11 +2289,12 @@ class DomainRequestAdmin(ListHeaderAdmin, ImportExportModelAdmin):
@admin.display(description=_("Requested Domain"))
def custom_requested_domain(self, obj):
# Example: Show different icons based on `status`
- url = reverse("admin:registrar_domainrequest_changelist") + f"{obj.id}"
text = obj.requested_domain
if obj.portfolio:
- return format_html(' styling in django admin
@@ -984,3 +992,7 @@ ul.add-list-reset {
}
}
+
+#result_list > tbody tr > th > a {
+ text-decoration: underline;
+}
diff --git a/src/registrar/templates/admin/change_form_object_tools.html b/src/registrar/templates/admin/change_form_object_tools.html
index 2f3d282ea..d2ec555e2 100644
--- a/src/registrar/templates/admin/change_form_object_tools.html
+++ b/src/registrar/templates/admin/change_form_object_tools.html
@@ -7,10 +7,10 @@
{% if has_absolute_url %}
{% url cl.opts|admin_urlname:'add' as add_url %}
-
+
+
{}', url, text)
- return format_html('{}', url, text)
+ return format_html(
+ f' {escape(text)}'
+ )
+ return text
custom_requested_domain.admin_order_field = "requested_domain__name" # type: ignore
diff --git a/src/registrar/assets/src/js/getgov-admin/button-utils.js b/src/registrar/assets/src/js/getgov-admin/button-utils.js
new file mode 100644
index 000000000..e3746d289
--- /dev/null
+++ b/src/registrar/assets/src/js/getgov-admin/button-utils.js
@@ -0,0 +1,15 @@
+/**
+ * Initializes buttons to behave like links by navigating to their data-url attribute
+ * Example usage:
+ */
+export function initButtonLinks() {
+ document.querySelectorAll('button.use-button-as-link').forEach(button => {
+ button.addEventListener('click', function() {
+ // Equivalent to button.getAttribute("data-href")
+ const href = this.dataset.href;
+ if (href) {
+ window.location.href = href;
+ }
+ });
+ });
+}
diff --git a/src/registrar/assets/src/js/getgov-admin/main.js b/src/registrar/assets/src/js/getgov-admin/main.js
index 5c6de20ab..7eb1fc8cd 100644
--- a/src/registrar/assets/src/js/getgov-admin/main.js
+++ b/src/registrar/assets/src/js/getgov-admin/main.js
@@ -16,6 +16,7 @@ import { initDynamicPortfolioFields } from './portfolio-form.js';
import { initDynamicDomainInformationFields } from './domain-information-form.js';
import { initDynamicDomainFields } from './domain-form.js';
import { initAnalyticsDashboard } from './analytics.js';
+import { initButtonLinks } from './button-utils.js';
// General
initModals();
@@ -23,6 +24,7 @@ initCopyToClipboard();
initFilterHorizontalWidget();
initDescriptions();
initSubmitBar();
+initButtonLinks();
// Domain request
initIneligibleModal();
diff --git a/src/registrar/assets/src/sass/_theme/_admin.scss b/src/registrar/assets/src/sass/_theme/_admin.scss
index 9a00cf022..bd55bbfcb 100644
--- a/src/registrar/assets/src/sass/_theme/_admin.scss
+++ b/src/registrar/assets/src/sass/_theme/_admin.scss
@@ -498,7 +498,7 @@ input[type=submit].button--dja-toolbar:focus, input[type=submit].button--dja-too
font-size: 13px;
}
-.object-tools li button {
+.object-tools li button, button.addlink {
font-family: Source Sans Pro Web, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
text-transform: none !important;
font-size: 14px !important;
@@ -520,6 +520,14 @@ input[type=submit].button--dja-toolbar:focus, input[type=submit].button--dja-too
}
}
+// Mimic the style for
+.object-tools > p > button.addlink {
+ background-image: url(../admin/img/tooltag-add.svg) !important;
+ background-repeat: no-repeat !important;
+ background-position: right 7px center !important;
+ padding-right: 25px;
+}
+
.usa-modal--django-admin .usa-prose ul > li {
list-style-type: inherit;
// Styling based off of the