diff --git a/django_aws_ses/templates/django_aws_ses/unsubscribe.html b/django_aws_ses/templates/django_aws_ses/unsubscribe.html index 1c0648b..1e98f19 100644 --- a/django_aws_ses/templates/django_aws_ses/unsubscribe.html +++ b/django_aws_ses/templates/django_aws_ses/unsubscribe.html @@ -1,27 +1,21 @@ -{% extends 'django_aws_ses/base.html' %} -{% load static %} - -{% block extrahead %} - -{% endblock %} - -{% block title1 %}Email Subscription{% endblock title1 %} - +{% extends base_template_name %} {% block content %}
- {% if user_email %} -

{{ unsubscribe_message|escape }}

-

{{ user_email|escape }} has been {% if request.GET.resubscribe %}re-subscribed{% else %}unsubscribed{% endif %} from our email list.

-

Return to home.

+ {% if action == 'unsubscribe' %} +

{{ unsubscribe_message }}

+

{{ user_email }} has been unsubscribed from our email list.

+

Return to home.

+ {% elif action == 'resubscribe' %} +

{{ resubscribe_message }}

+

{{ user_email }} has been re-subscribed to our email list.

+

Return to home.

{% else %} -

{{ confirmation_message|escape }}

-

Please confirm your subscription preference for your email.

+

{{ confirmation_message }}

+

Manage subscription for {{ user_email }}

- {% csrf_token %}
-

Return to home.

{% endif %}
-{% endblock content %} \ No newline at end of file +{% endblock %} \ No newline at end of file diff --git a/django_aws_ses/views.py b/django_aws_ses/views.py index 94c226a..b25a0a9 100644 --- a/django_aws_ses/views.py +++ b/django_aws_ses/views.py @@ -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) \ No newline at end of file