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 }}
-
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