Implement user unban functionality and enhance ban action with product deletion

This commit is contained in:
2026-05-06 11:37:26 +02:00
parent 9751d19401
commit d6c9aa3db3
+30
View File
@@ -20,17 +20,47 @@ class UserAdmin(admin.ModelAdmin):
def banear_usuario_action(self, request, queryset): def banear_usuario_action(self, request, queryset):
usuarios_baneados = 0 usuarios_baneados = 0
for user in queryset: for user in queryset:
user: User = user
# Desactiva usuario
if user.registration_status == User.RegisterStatus.BANNED:
continue
user.is_active = False user.is_active = False
user.registration_status = User.RegisterStatus.BANNED
user.save() user.save()
# Enviar task a Worker
tasks.banear_usuario.delay(user.email) tasks.banear_usuario.delay(user.email)
# Borrar productos
Product.objects.filter(creator=user).delete() Product.objects.filter(creator=user).delete()
usuarios_baneados+=1
self.message_user( self.message_user(
request, request,
f"Se ha(n) baneado {usuarios_baneados} usuario(s) correctamente.", f"Se ha(n) baneado {usuarios_baneados} usuario(s) correctamente.",
level=messages.SUCCESS level=messages.SUCCESS
) )
def desbanear_usuario_action(self, request, queryset):
user_desbaneados = 0
for user in queryset:
user: User = user
if user.registration_status != User.RegisterStatus.BANNED:
continue
user.is_active = True
user.registration_status = User.RegisterStatus.ACTIVE
user.save()
tasks.desbanear_usuario.delay(user.email)
user_desbaneados -= 1
self.message_user(
request,
f"Se ha(n) desbaneado {user_desbaneados} usuario(s)",
level=messages.SUCCESS
)
banear_usuario_action.short_description = "Banear usuarios seleccionados" banear_usuario_action.short_description = "Banear usuarios seleccionados"