mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-17 10:07:04 +02:00
Fixed logic for DomainInformationInline form
This commit is contained in:
parent
7a5de9c3dd
commit
343fe4e2db
1 changed files with 20 additions and 9 deletions
|
@ -1333,14 +1333,14 @@ class DomainInformationAdmin(ListHeaderAdmin, ImportExportModelAdmin):
|
||||||
# modify the fieldsets list so that it excludes any fields we want to remove
|
# modify the fieldsets list so that it excludes any fields we want to remove
|
||||||
# based on permissions (eg. superuser_only_fields) or other conditions.
|
# based on permissions (eg. superuser_only_fields) or other conditions.
|
||||||
def get_fieldsets(self, request, obj=None):
|
def get_fieldsets(self, request, obj=None):
|
||||||
fieldsets = super().get_fieldsets(request, obj)
|
fieldsets = self.fieldsets
|
||||||
|
|
||||||
# Create a modified version of fieldsets to exclude certain fields
|
# Create a modified version of fieldsets to exclude certain fields
|
||||||
if not request.user.has_perm("registrar.full_access_permission"):
|
if not request.user.has_perm("registrar.full_access_permission"):
|
||||||
modified_fieldsets = []
|
modified_fieldsets = []
|
||||||
for name, data in fieldsets:
|
for name, data in fieldsets:
|
||||||
fields = data.get("fields", [])
|
fields = data.get("fields", [])
|
||||||
fields = tuple(field for field in fields if field not in self.superuser_only_fields)
|
fields = tuple(field for field in fields if field not in DomainInformationAdmin.superuser_only_fields)
|
||||||
modified_fieldsets.append((name, {"fields": fields}))
|
modified_fieldsets.append((name, {"fields": fields}))
|
||||||
return modified_fieldsets
|
return modified_fieldsets
|
||||||
return fieldsets
|
return fieldsets
|
||||||
|
@ -1990,13 +1990,7 @@ class DomainInformationInline(admin.StackedInline):
|
||||||
template = "django/admin/includes/domain_info_inline_stacked.html"
|
template = "django/admin/includes/domain_info_inline_stacked.html"
|
||||||
model = models.DomainInformation
|
model = models.DomainInformation
|
||||||
|
|
||||||
fieldsets = copy.deepcopy(DomainInformationAdmin.fieldsets)
|
fieldsets = DomainInformationAdmin.fieldsets
|
||||||
# remove .gov domain from fieldset
|
|
||||||
for index, (title, f) in enumerate(fieldsets):
|
|
||||||
if title == ".gov domain":
|
|
||||||
del fieldsets[index]
|
|
||||||
break
|
|
||||||
|
|
||||||
readonly_fields = DomainInformationAdmin.readonly_fields
|
readonly_fields = DomainInformationAdmin.readonly_fields
|
||||||
analyst_readonly_fields = DomainInformationAdmin.analyst_readonly_fields
|
analyst_readonly_fields = DomainInformationAdmin.analyst_readonly_fields
|
||||||
|
|
||||||
|
@ -2042,6 +2036,23 @@ class DomainInformationInline(admin.StackedInline):
|
||||||
|
|
||||||
def get_readonly_fields(self, request, obj=None):
|
def get_readonly_fields(self, request, obj=None):
|
||||||
return DomainInformationAdmin.get_readonly_fields(self, request, obj=None)
|
return DomainInformationAdmin.get_readonly_fields(self, request, obj=None)
|
||||||
|
|
||||||
|
# Re-route the get_fieldsets method to utilize DomainInformationAdmin.get_fieldsets
|
||||||
|
# since that has all the logic for excluding certain fields according to user permissions.
|
||||||
|
# Then modify the remaining fields to further trim out any we don't want for this inline
|
||||||
|
# form
|
||||||
|
def get_fieldsets(self, request, obj=None):
|
||||||
|
# Grab fieldsets from DomainInformationAdmin so that it handles all logic
|
||||||
|
# for permission-based field visibility.
|
||||||
|
modified_fieldsets = DomainInformationAdmin.get_fieldsets(self, request, obj=None)
|
||||||
|
|
||||||
|
# remove .gov domain from fieldset
|
||||||
|
for index, (title, f) in enumerate(modified_fieldsets):
|
||||||
|
if title == ".gov domain":
|
||||||
|
del modified_fieldsets[index]
|
||||||
|
break
|
||||||
|
|
||||||
|
return modified_fieldsets
|
||||||
|
|
||||||
|
|
||||||
class DomainResource(FsmModelResource):
|
class DomainResource(FsmModelResource):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue