Add user ban functionality with email notification
This commit is contained in:
+26
-1
@@ -1,12 +1,37 @@
|
||||
from django.contrib import admin
|
||||
from .models import Category, Image, Product, Cart, CartItem, Order, OrderItem, OrderMessage, StockReservation, StockReservationItem, User, VerificationCode, SavedPaymentMethod
|
||||
# Register your models here.
|
||||
from django.shortcuts import redirect
|
||||
from django.urls import path
|
||||
from . import tasks
|
||||
|
||||
admin.site.register(Category)
|
||||
admin.site.register(Image)
|
||||
admin.site.register(User)
|
||||
admin.site.register(VerificationCode)
|
||||
|
||||
@admin.register(User)
|
||||
class UserAdmin(admin.ModelAdmin):
|
||||
search_fields = ('username',)
|
||||
|
||||
def has_change_permission(self, request, obj = ...):
|
||||
return super().has_change_permission(request, obj)
|
||||
|
||||
def get_urls(self):
|
||||
urls = super().get_urls()
|
||||
my_urls = [
|
||||
path("<int:pk>/ban/", self.admin_site.admin_view(self.ban_view)),
|
||||
]
|
||||
return my_urls + urls
|
||||
|
||||
def ban_view(self, request, pk):
|
||||
user = User.objects.get(pk=pk)
|
||||
|
||||
user.is_active = False # Desactivar cuenta de usuario
|
||||
user.save() # Guardar datos
|
||||
|
||||
tasks.banear_usuario.delay(user.email)
|
||||
return redirect("admin")
|
||||
|
||||
|
||||
@admin.register(Product)
|
||||
class ProductAdmin(admin.ModelAdmin):
|
||||
|
||||
@@ -20,6 +20,16 @@ def enviar_correo_bienvenida(email_usuario: str, nombre_usuario: str):
|
||||
send_hemail(email_usuario, "Inicio de Sesión correcto", html_content, "Has iniciado sesión...")
|
||||
|
||||
@shared_task
|
||||
def banear_usuario(email_usuario: str):
|
||||
html_content = render_to_string(
|
||||
'emails/ban.html',
|
||||
{
|
||||
},
|
||||
using='jinja2'
|
||||
)
|
||||
|
||||
send_hemail(email_usuario, "Cuenta Bloqueada", html_content, "Tu cuenta ha sido bloqueada...")
|
||||
@shared_task
|
||||
def enviar_correo_confirmacion(id: int):
|
||||
usuario = User.objects.get(id=id)
|
||||
code = VerificationCode.objects.create(
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
{% extends "admin/submit_line.html" %}
|
||||
{% load i18n admin_urls %}
|
||||
{% block submit-row %}
|
||||
<a href="../ban/" class="closelink" style="background:red;">BAN USER</a>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user