odoo lead creation
This commit is contained in:
parent
b98a507f65
commit
483f076d1a
15 changed files with 404 additions and 27 deletions
|
@ -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}
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue