diff --git a/backend/src/baserow/core/handler.py b/backend/src/baserow/core/handler.py index 1b666e5eb..e4aa92360 100644 --- a/backend/src/baserow/core/handler.py +++ b/backend/src/baserow/core/handler.py @@ -54,6 +54,7 @@ from .signals import ( application_updated, application_deleted, applications_reordered, + before_group_deleted, group_created, group_updated, group_deleted, @@ -274,6 +275,10 @@ class CoreHandler: group_id = group.id group_users = list(group.users.all()) + before_group_deleted.send( + self, group_id=group_id, group=group, group_users=group_users, user=user + ) + TrashHandler.trash(user, group, None, group) group_deleted.send( diff --git a/backend/src/baserow/core/signals.py b/backend/src/baserow/core/signals.py index 22dce1530..098bc477b 100644 --- a/backend/src/baserow/core/signals.py +++ b/backend/src/baserow/core/signals.py @@ -1,6 +1,8 @@ from django.dispatch import Signal +before_group_deleted = Signal() + group_created = Signal() group_updated = Signal() group_deleted = Signal() diff --git a/changelog.md b/changelog.md index 9f66e0a52..1c664e49c 100644 --- a/changelog.md +++ b/changelog.md @@ -16,6 +16,7 @@ For example: [#1023](https://gitlab.com/bramw/baserow/-/issues/1023) * Added possibility to delete own user account [#880](https://gitlab.com/bramw/baserow/-/issues/880) * Added new `group_user_added` signal that is called when an user accept an invitation to join a group. +* Added new `before_group_deleted` signal that is called just before a group would end up in the trash. ### Bug Fixes diff --git a/docs/apis/web-socket-api.md b/docs/apis/web-socket-api.md index 7adf24027..e1fcb38d5 100644 --- a/docs/apis/web-socket-api.md +++ b/docs/apis/web-socket-api.md @@ -122,6 +122,7 @@ are subscribed to the page. * `authentication` * `page_add` * `page_discard` +* `before_group_deleted` * `group_created` * `group_updated` * `group_deleted`