admin.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from django.contrib import admin
  2. from django.core.mail import send_mail
  3. from django.contrib import messages
  4. from django.contrib.auth.admin import UserAdmin
  5. # Register your models here.
  6. from reymotausers.models import ReyMotaUser
  7. from reymotausers.forms import ReyMotaUserCreationForm, ReyMotaUserChangeForm
  8. def enviar_email_prueba(modeladmin, request, queryset):
  9. for user in queryset:
  10. if user.email:
  11. send_mail(
  12. 'Correo de Prueba',
  13. 'Este es un correo de prueba desde el panel de administración.',
  14. 'jugaralpadelentreamigos@gmail.com', # Remitente
  15. [user.email], # Destinatario
  16. fail_silently=False,
  17. )
  18. messages.success(request, f'Se ha enviado un correo de prueba a {user.email}')
  19. else:
  20. messages.warning(request, f'El usuario {user.username} no tiene un correo registrado.')
  21. enviar_email_prueba.short_description = 'Enviar correo de prueba a usuario(s) seleccionado(s)'
  22. class ReyMotaUserAdmin(UserAdmin):
  23. add_form = ReyMotaUserCreationForm
  24. form = ReyMotaUserChangeForm
  25. model = ReyMotaUser
  26. list_display = ("email", "nombre", "is_staff", "is_active", "foto")
  27. list_filter = ("email", "nombre", "is_staff", "is_active",)
  28. fieldsets = (
  29. (None, {"fields": ("email", "password")}),
  30. ("Personal", {"fields": ("nombre",)}),
  31. ("Permissions", {"fields": ("is_staff", "is_active", "groups",
  32. "user_permissions")}),
  33. ("Varios", {"fields": ("foto",)}),
  34. )
  35. add_fieldsets = (
  36. (
  37. None,
  38. {
  39. "classes": ("wide",),
  40. "fields": (
  41. "email", "password1", "password2", "is_staff",
  42. "is_active", "groups", "user_permissions"
  43. )
  44. }
  45. ),
  46. ("Personal", {"fields": ("nombre",)}),
  47. ("Varios", {"fields": ("foto",)}),
  48. )
  49. search_fields = ("email", "nombre",)
  50. ordering = ("email",)
  51. actions = [enviar_email_prueba] # Añadir la acción a la lista de acciones
  52. admin.site.register(ReyMotaUser, ReyMotaUserAdmin)