in src/olympia/blocklist/admin.py [0:0]
def get_fieldsets(self, request, obj):
is_new = obj is None
show_canned = self.has_change_permission(request, obj, strict=True)
is_delete_submission = (
int(self.get_value('action', request, obj=obj, default=0))
== BlocklistSubmission.ACTIONS.DELETE
)
input_guids_section = (
'Input Guids',
{
'fields': (
'action',
'input_guids',
),
'classes': ('collapse',),
},
)
block_history_section = not is_new and (
'Block History',
{'fields': ('block_history',)},
)
changed_version_ids_field = (
'changed_version_ids'
if self.has_change_permission(request, obj)
else 'ro_changed_version_ids'
)
add_change_section = (
'Add or Change Blocks',
{
'fields': (
changed_version_ids_field,
'block_type',
'disable_addon',
'update_url_value',
'url',
'update_reason_value',
*(('canned_reasons',) if show_canned else ()),
'reason',
'updated_by',
'signoff_by',
'submission_logs',
),
},
)
delete_section = (
'Delete Blocks',
{
'fields': (
changed_version_ids_field,
'updated_by',
'signoff_by',
'submission_logs',
),
},
)
delay_section = not is_delete_submission and (
'Delay',
{
'fields': (*(('delay_days',) if is_new else ()), 'delayed_until'),
},
)
sections = (
input_guids_section,
block_history_section,
(add_change_section if not is_delete_submission else delete_section),
delay_section,
)
return tuple(section for section in sections if section)