website/hub/services/views/subscriptions.py

37 lines
1 KiB
Python
Raw Normal View History

import logging
from django.conf import settings
from django.shortcuts import render
from django.views.decorators.http import require_POST
from hub.services.odoo import OdooAPI
logger = logging.getLogger(__name__)
@require_POST
def subscribe(request):
"""Handle mailing list subscription requests"""
email = request.POST.get("email", "")
if not email:
return render(request, "subscriptions/error.html")
try:
# Get mailing list ID from settings
mailing_list_id = settings.ODOO_CONFIG.get("mailing_list_id", 46)
# Connect to Odoo
odoo = OdooAPI()
# Add subscriber to mailing list
result = odoo.add_to_mailing_list(email, mailing_list_id)
if result:
return render(request, "subscriptions/success.html")
else:
return render(request, "subscriptions/error.html")
except Exception as e:
logger.error(
f"Failed to add subscriber to mailing list: {str(e)}", exc_info=True
)
return render(request, "subscriptions/error.html")