odoo lead creation

This commit is contained in:
Tobias Brunner 2025-01-27 16:51:23 +01:00
parent b98a507f65
commit 483f076d1a
No known key found for this signature in database
15 changed files with 404 additions and 27 deletions

View file

@ -1,7 +1,16 @@
from django.shortcuts import render, get_object_or_404
import logging
from django.conf import settings
from django.shortcuts import render, get_object_or_404, redirect
from django.contrib import messages
from django.db.models import Q
from .models import Service, CloudProvider, Country, ServiceLevel, Category
from .forms import LeadForm
from .odoo import OdooAPI
logger = logging.getLogger(__name__)
def service_list(request):
services = Service.objects.all()
@ -59,3 +68,43 @@ def provider_detail(request, slug):
"services": services,
}
return render(request, "services/provider_detail.html", context)
def thank_you(request, service_id):
service = get_object_or_404(Service, id=service_id)
return render(request, "services/thank_you.html", {"service": service})
def create_lead(request, service_id):
service = get_object_or_404(Service, id=service_id)
if request.method == "POST":
form = LeadForm(request.POST)
if form.is_valid():
lead = form.save(commit=False)
lead.service = service
try:
logger.info(f"Attempting to create lead for service: {service.name}")
odoo = OdooAPI()
odoo_lead_id = odoo.create_lead(lead)
lead.odoo_lead_id = odoo_lead_id
lead.save()
logger.info(f"Successfully created lead with Odoo ID: {odoo_lead_id}")
return redirect("services:thank_you", service_id=service.id)
except Exception as e:
logger.error(f"Failed to create lead: {str(e)}", exc_info=True)
error_message = "Sorry, there was an error processing your request. Please try again later."
if settings.DEBUG:
error_message += f" Error: {str(e)}"
messages.error(request, error_message)
else:
form = LeadForm()
return render(
request, "services/lead_form.html", {"form": form, "service": service}
)