mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-07 15:18:20 -05:00
added space deletion feature
This commit is contained in:
@@ -15,7 +15,7 @@ from .models import (BookmarkletImport, Comment, CookLog, Food, FoodInheritField
|
|||||||
Recipe, RecipeBook, RecipeBookEntry, RecipeImport, SearchPreference, ShareLink,
|
Recipe, RecipeBook, RecipeBookEntry, RecipeImport, SearchPreference, ShareLink,
|
||||||
ShoppingList, ShoppingListEntry, ShoppingListRecipe, Space, Step, Storage,
|
ShoppingList, ShoppingListEntry, ShoppingListRecipe, Space, Step, Storage,
|
||||||
Supermarket, SupermarketCategory, SupermarketCategoryRelation, Sync, SyncLog,
|
Supermarket, SupermarketCategory, SupermarketCategoryRelation, Sync, SyncLog,
|
||||||
TelegramBot, Unit, UserFile, UserPreference, ViewLog)
|
TelegramBot, Unit, UserFile, UserPreference, ViewLog, Automation)
|
||||||
|
|
||||||
|
|
||||||
class CustomUserAdmin(UserAdmin):
|
class CustomUserAdmin(UserAdmin):
|
||||||
@@ -29,11 +29,52 @@ admin.site.register(User, CustomUserAdmin)
|
|||||||
admin.site.unregister(Group)
|
admin.site.unregister(Group)
|
||||||
|
|
||||||
|
|
||||||
|
@admin.action(description='Delete all data from a space')
|
||||||
|
def delete_space_action(modeladmin, request, queryset):
|
||||||
|
for space in queryset:
|
||||||
|
CookLog.objects.filter(space=space).delete()
|
||||||
|
ViewLog.objects.filter(space=space).delete()
|
||||||
|
ImportLog.objects.filter(space=space).delete()
|
||||||
|
BookmarkletImport.objects.filter(space=space).delete()
|
||||||
|
|
||||||
|
Comment.objects.filter(recipe__space=space).delete()
|
||||||
|
Keyword.objects.filter(space=space).delete()
|
||||||
|
Food.objects.filter(space=space).delete()
|
||||||
|
Unit.objects.filter(space=space).delete()
|
||||||
|
Ingredient.objects.filter(space=space).delete()
|
||||||
|
Step.objects.filter(space=space).delete()
|
||||||
|
NutritionInformation.objects.filter(space=space).delete()
|
||||||
|
RecipeBookEntry.objects.filter(book__space=space).delete()
|
||||||
|
RecipeBook.objects.filter(space=space).delete()
|
||||||
|
MealType.objects.filter(space=space).delete()
|
||||||
|
MealPlan.objects.filter(space=space).delete()
|
||||||
|
ShareLink.objects.filter(space=space).delete()
|
||||||
|
Recipe.objects.filter(space=space).delete()
|
||||||
|
|
||||||
|
RecipeImport.objects.filter(space=space).delete()
|
||||||
|
SyncLog.objects.filter(sync__space=space).delete()
|
||||||
|
Sync.objects.filter(space=space).delete()
|
||||||
|
Storage.objects.filter(space=space).delete()
|
||||||
|
|
||||||
|
ShoppingListEntry.objects.filter(shoppinglist__space=space).delete()
|
||||||
|
ShoppingListRecipe.objects.filter(shoppinglist__space=space).delete()
|
||||||
|
ShoppingList.objects.filter(space=space).delete()
|
||||||
|
|
||||||
|
SupermarketCategoryRelation.objects.filter(supermarket__space=space).delete()
|
||||||
|
SupermarketCategory.objects.filter(space=space).delete()
|
||||||
|
Supermarket.objects.filter(space=space).delete()
|
||||||
|
|
||||||
|
InviteLink.objects.filter(space=space).delete()
|
||||||
|
UserFile.objects.filter(space=space).delete()
|
||||||
|
Automation.objects.filter(space=space).delete()
|
||||||
|
|
||||||
|
|
||||||
class SpaceAdmin(admin.ModelAdmin):
|
class SpaceAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'created_by', 'max_recipes', 'max_users', 'max_file_storage_mb', 'allow_sharing')
|
list_display = ('name', 'created_by', 'max_recipes', 'max_users', 'max_file_storage_mb', 'allow_sharing')
|
||||||
search_fields = ('name', 'created_by__username')
|
search_fields = ('name', 'created_by__username')
|
||||||
list_filter = ('max_recipes', 'max_users', 'max_file_storage_mb', 'allow_sharing')
|
list_filter = ('max_recipes', 'max_users', 'max_file_storage_mb', 'allow_sharing')
|
||||||
date_hierarchy = 'created_at'
|
date_hierarchy = 'created_at'
|
||||||
|
actions = [delete_space_action]
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Space, SpaceAdmin)
|
admin.site.register(Space, SpaceAdmin)
|
||||||
@@ -128,7 +169,7 @@ def sort_tree(modeladmin, request, queryset):
|
|||||||
class KeywordAdmin(TreeAdmin):
|
class KeywordAdmin(TreeAdmin):
|
||||||
form = movenodeform_factory(Keyword)
|
form = movenodeform_factory(Keyword)
|
||||||
ordering = ('space', 'path',)
|
ordering = ('space', 'path',)
|
||||||
search_fields = ('name', )
|
search_fields = ('name',)
|
||||||
actions = [sort_tree, enable_tree_sorting, disable_tree_sorting]
|
actions = [sort_tree, enable_tree_sorting, disable_tree_sorting]
|
||||||
|
|
||||||
|
|
||||||
@@ -171,13 +212,15 @@ class RecipeAdmin(admin.ModelAdmin):
|
|||||||
admin.site.register(Recipe, RecipeAdmin)
|
admin.site.register(Recipe, RecipeAdmin)
|
||||||
|
|
||||||
admin.site.register(Unit)
|
admin.site.register(Unit)
|
||||||
|
|
||||||
|
|
||||||
# admin.site.register(FoodInheritField)
|
# admin.site.register(FoodInheritField)
|
||||||
|
|
||||||
|
|
||||||
class FoodAdmin(TreeAdmin):
|
class FoodAdmin(TreeAdmin):
|
||||||
form = movenodeform_factory(Keyword)
|
form = movenodeform_factory(Keyword)
|
||||||
ordering = ('space', 'path',)
|
ordering = ('space', 'path',)
|
||||||
search_fields = ('name', )
|
search_fields = ('name',)
|
||||||
actions = [sort_tree, enable_tree_sorting, disable_tree_sorting]
|
actions = [sort_tree, enable_tree_sorting, disable_tree_sorting]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user