updated tests.py again

This commit is contained in:
Raymond Jessop 2025-04-18 20:34:58 -05:00
parent 42fd9353f5
commit efd169b200
2 changed files with 21 additions and 26 deletions

View File

@ -1,27 +1,21 @@
{% extends 'django_aws_ses/base.html' %}
{% load static %}
{% block extrahead %}
<link rel="stylesheet" href="{% static 'django_aws_ses/css/unsubscribe.css' %}">
{% endblock %}
{% block title1 %}Email Subscription{% endblock title1 %}
{% extends base_template_name %}
{% block content %}
<div class="unsubscribe-container">
{% if user_email %}
<h3>{{ unsubscribe_message|escape }}</h3>
<p>{{ user_email|escape }} has been {% if request.GET.resubscribe %}re-subscribed{% else %}unsubscribed{% endif %} from our email list.</p>
<p>Return to <a href="{{ home_url|default:'/' }}">home</a>.</p>
{% if action == 'unsubscribe' %}
<h3>{{ unsubscribe_message }}</h3>
<p>{{ user_email }} has been unsubscribed from our email list.</p>
<p>Return to <a href="/">home</a>.</p>
{% elif action == 'resubscribe' %}
<h3>{{ resubscribe_message }}</h3>
<p>{{ user_email }} has been re-subscribed to our email list.</p>
<p>Return to <a href="/">home</a>.</p>
{% else %}
<h3>{{ confirmation_message|escape }}</h3>
<p>Please confirm your subscription preference for your email.</p>
<h3>{{ confirmation_message }}</h3>
<p>Manage subscription for {{ user_email }}</p>
<form method="post" action="">
{% csrf_token %}
<button type="submit" name="action" value="unsubscribe">Unsubscribe</button>
<button type="submit" name="action" value="resubscribe">Re-subscribe</button>
</form>
<p>Return to <a href="{{ home_url|default:'/' }}">home</a>.</p>
{% endif %}
</div>
{% endblock content %}
{% endblock %}

View File

@ -301,8 +301,10 @@ class HandleUnsubscribe(TemplateView):
context = super().get_context_data(**kwargs)
context['base_template_name'] = self.base_template_name
context['confirmation_message'] = self.confirmation_message
context['unsubscribe_message'] = self.resubscribe_message if self.request.GET.get('resubscribe') else self.unsubscribe_message
context['unsubscribe_message'] = self.unsubscribe_message
context['resubscribe_message'] = self.resubscribe_message
context['user_email'] = getattr(self, 'user_email', '')
context['action'] = getattr(self, 'action', '')
return context
def get(self, request, *args, **kwargs):
@ -327,6 +329,7 @@ class HandleUnsubscribe(TemplateView):
return redirect(settings.HOME_URL)
self.user_email = user.email
self.action = '' # Ensure GET renders confirmation page
return super().get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
@ -351,21 +354,19 @@ class HandleUnsubscribe(TemplateView):
logger.warning(f"Invalid token for user: {user.email}")
return redirect(settings.HOME_URL)
self.user_email = user.email
if action == 'unsubscribe':
ses.unsubscribe = True
ses.save()
logger.info(f"Unsubscribed user: {user.email}")
self.user_email = user.email
self.template_name = settings.UNSUBSCRIBE_TEMPLATE
return self.get(request, *args, **kwargs)
self.action = 'unsubscribe'
return render(request, self.template_name, self.get_context_data())
elif action == 'resubscribe':
ses.unsubscribe = False
ses.save()
logger.info(f"Re-subscribed user: {user.email}")
self.user_email = user.email
self.request.GET = request.GET.copy()
self.request.GET['resubscribe'] = '1'
return self.get(request, *args, **kwargs)
self.action = 'resubscribe'
return render(request, self.template_name, self.get_context_data())
logger.warning(f"Invalid action for user: {user.email}")
return redirect(settings.HOME_URL)