From a5033e3bdd05e48bc00f8eafe18dd560666a30f9 Mon Sep 17 00:00:00 2001 From: LynnMHouston Date: Wed, 27 Aug 2025 13:54:23 -0400 Subject: [PATCH 1/2] Add files via upload --- backend/audit/admin.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/backend/audit/admin.py b/backend/audit/admin.py index 94f43dc92c..85670ef18f 100644 --- a/backend/audit/admin.py +++ b/backend/audit/admin.py @@ -49,6 +49,10 @@ remove_workbook_artifacts, ) +from django import forms +from django.core.exceptions import PermissionDenied + + logger = logging.getLogger(__name__) # As per ADR #0041, the retention period for flagged reports is 6 months. That is 180 days. @@ -435,12 +439,43 @@ def event_display(self, obj): event_display.admin_order_field = "event" # type: ignore event_display.short_description = _("Event") # type: ignore +class UEIOverrideForm(forms.ModelForm): + auditee_uei = forms.CharField(label="New UEI", required=True) + auditee_ein = forms.CharField(label="New EIN", required=False) + + class Meta: + model = SingleAuditChecklist + fields = [] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + if self.instance and self.instance.general_information: + self.fields['auditee_uei'].initial = self.instance.general_information.get("auditee_uei", "") + self.fields['auditee_ein'].initial = self.instance.general_information.get("auditee_ein", "") + + def save(self, commit=True): + instance = super().save(commit=False) + gi = instance.general_information or {} + gi["auditee_uei"] = self.cleaned_data["auditee_uei"] + if self.cleaned_data.get("auditee_ein"): + gi["auditee_ein"] = self.cleaned_data["auditee_ein"] + instance.general_information = gi + return instance class SACAdmin(admin.ModelAdmin): + form = UEIOverrideForm """ Support for read-only staff access, and control of what fields are present and filterable/searchable. """ + def save_model(self, request, obj, form, change): + obj.save( + administrative_override=True, + event_user=request.user, + event_type="admin-override", + ) + super().save_model(request, obj, form, change) + def has_module_permission(self, request, obj=None): return request.user.is_staff From 9577c56d3a215585b419c0de358f653b55652206 Mon Sep 17 00:00:00 2001 From: LynnMHouston Date: Wed, 27 Aug 2025 14:16:06 -0400 Subject: [PATCH 2/2] Update admin.py --- backend/audit/admin.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/audit/admin.py b/backend/audit/admin.py index 85670ef18f..fd547bf421 100644 --- a/backend/audit/admin.py +++ b/backend/audit/admin.py @@ -50,8 +50,6 @@ ) from django import forms -from django.core.exceptions import PermissionDenied - logger = logging.getLogger(__name__) @@ -439,6 +437,7 @@ def event_display(self, obj): event_display.admin_order_field = "event" # type: ignore event_display.short_description = _("Event") # type: ignore + class UEIOverrideForm(forms.ModelForm): auditee_uei = forms.CharField(label="New UEI", required=True) auditee_ein = forms.CharField(label="New EIN", required=False) @@ -462,6 +461,7 @@ def save(self, commit=True): instance.general_information = gi return instance + class SACAdmin(admin.ModelAdmin): form = UEIOverrideForm """ @@ -476,7 +476,6 @@ def save_model(self, request, obj, form, change): ) super().save_model(request, obj, form, change) - def has_module_permission(self, request, obj=None): return request.user.is_staff