#169 Team delete-restore

* adds restorable delete functionality to Team model
* refactors minor code model parts by introducing DeletableObjectMixin
* only non-deleted Teams can be chosen for sharing
* deleted Teams can be restored using the proper function on the backend admin
* deleted Teams do not provide
* adds migration
This commit is contained in:
2022-05-30 15:38:16 +02:00
parent 8aa3fbd97a
commit e7031d0bc2
13 changed files with 111 additions and 35 deletions

View File

@@ -98,6 +98,18 @@ class DeadlineAdmin(admin.ModelAdmin):
]
class DeletableObjectMixinAdmin(admin.ModelAdmin):
class Meta:
abstract = True
def restore_deleted_data(self, request, queryset):
queryset = queryset.filter(
deleted__isnull=False
)
for entry in queryset:
entry.deleted.delete()
class BaseResourceAdmin(admin.ModelAdmin):
fields = [
"created",
@@ -109,7 +121,7 @@ class BaseResourceAdmin(admin.ModelAdmin):
]
class BaseObjectAdmin(BaseResourceAdmin):
class BaseObjectAdmin(BaseResourceAdmin, DeletableObjectMixinAdmin):
search_fields = [
"identifier",
"title",
@@ -126,13 +138,6 @@ class BaseObjectAdmin(BaseResourceAdmin):
"deleted",
]
def restore_deleted_data(self, request, queryset):
queryset = queryset.filter(
deleted__isnull=False
)
for entry in queryset:
entry.deleted.delete()
# Outcommented for a cleaner admin backend on production