Refactor user ban action to streamline user deactivation and product deletion

This commit is contained in:
2026-05-06 10:25:13 +02:00
parent 132b1e1722
commit e7e7fd118d
+8 -17
View File
@@ -12,30 +12,21 @@ admin.site.register(VerificationCode)
@admin.register(User) @admin.register(User)
class UserAdmin(admin.ModelAdmin): class UserAdmin(admin.ModelAdmin):
search_fields = ('username',) search_fields = ('username',)
actions = ['banear_usuario_action']
def has_change_permission(self, request, obj = ...): def has_change_permission(self, request, obj = ...):
return super().has_change_permission(request, obj) return super().has_change_permission(request, obj)
def get_urls(self): def banear_usuario_action(self, request, queryset):
urls = super().get_urls() usuarios_baneados = 0
my_urls = [ for user in queryset:
path("<int:pk>/ban/", self.admin_site.admin_view(self.ban_view)), user.is_active = False
] user.save()
return my_urls + urls
def ban_view(self, request, pk): tasks.banear_usuario.delay(user.email)
user = User.objects.get(pk=pk)
user.is_active = False # Desactivar cuenta de usuario Product.objects.filter(user=user).delete()
user.save() # Guardar datos
tasks.banear_usuario.delay(user.email)
# Borrar productos
productos = Product.objects.filter(user=user).all()
for producto in productos:
producto.delete()
return redirect("admin")
@admin.register(Product) @admin.register(Product)