Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions iommi/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -481,8 +481,10 @@ def on_save(request, form, instance, **_):
)
messages.add_message(request, messages.INFO, message, fail_silently=True)

def on_delete(request, form, instance, **_):
message = f'{form.model._meta.verbose_name.capitalize()} {instance} was deleted'
def delete(request, form, instance, **_):
str_instance = str(instance)
instance.delete()
message = f'{form.model._meta.verbose_name.capitalize()} {str_instance} was deleted'
messages.add_message(request, messages.INFO, message, fail_silently=True)

form = setdefaults_path(
Expand All @@ -491,7 +493,7 @@ def on_delete(request, form, instance, **_):
call_target__cls=cls.get_meta().form_class,
call_target__attribute=operation,
extra__on_save=on_save,
extra__on_delete=on_delete,
extra__delete=delete,
actions__submit__include=lambda request, form, **_: cls.has_permission(
request, instance=None, model=form.model, operation=operation
),
Expand Down
8 changes: 6 additions & 2 deletions iommi/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -1551,10 +1551,10 @@ def create_or_edit_object_redirect(is_create, redirect_to, redirect, form):

def delete_object__post_handler(form, **_):
instance = form.instance
form.invoke_callback(form.extra.on_delete)
form.invoke_callback(form.extra.pre_delete)
if instance.pk is not None: # Check if already deleted by the callback
try:
instance.delete()
form.invoke_callback(form.extra.delete, model_object=instance)
except IntegrityError as e:
objects = getattr(e, 'restricted_objects', None)
if objects is None:
Expand Down Expand Up @@ -1596,6 +1596,8 @@ def delete_object__post_handler(form, **_):
)
return None

form.invoke_callback(form.extra.on_delete)

return create_or_edit_object_redirect(
is_create=False,
redirect_to=form.extra.redirect_to,
Expand Down Expand Up @@ -2147,6 +2149,8 @@ def get_errors(self):
extra__on_save_all_but_related_fields=lambda **kwargs: None, # pragma: no mutate
extra__pre_save=lambda **kwargs: None, # pragma: no mutate
extra__on_save=lambda **kwargs: None, # pragma: no mutate
extra__pre_delete=lambda **kwargs: None, # pragma: no mutate
extra__delete=lambda model_object, **_: model_object.delete(),
extra__on_delete=lambda **kwargs: None, # pragma: no mutate
extra__redirect=lambda redirect_to, **_: HttpResponseRedirect(redirect_to),
extra__redirect_to=None,
Expand Down