%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
from django.shortcuts import render, redirect from django.utils import timezone from django.core.exceptions import ObjectDoesNotExist from django.contrib import messages from .models import Lead from Camp.models import Camp from Employee.models import Employee from SiteLogo.models import SiteLogo from CampDocter.models import CampDoctor from ReferFor.models import ReferredCategory, ReferredSubCategory import logging logger = logging.getLogger(__name__) def get_active_logo(): """Helper function to get active site logo""" return SiteLogo.objects.filter(is_active=True).first() def lead_form_view(request): # Fetch data for form sub = ReferredSubCategory.objects.select_related('category').all() # Debug logs with safe access if sub.count() > 1: logger.info(f"Sample subcategory: {sub[1]}") logger.info(f"All subcategories: {sub}") logger.info(f"Subcategory's category name: {sub[1].category.name}") else: logger.info("Less than 2 subcategories found.") context = { 'site_logo': get_active_logo(), 'camps': Camp.objects.all(), 'employees': Employee.objects.all(), 'campdoctors': CampDoctor.objects.all(), 'referredcategories': ReferredCategory.objects.prefetch_related('subcategories').all(), 'referredsubcategories': sub, } if request.method == 'POST': try: # Basic form data form_data = { 'customer_name': request.POST.get('customer_name'), 'customer_phone': request.POST.get('customer_phone'), 'chronic_illness': request.POST.get('chronic_illness'), 'preferred_visit_time': request.POST.get('preferred_visit_time'), 'ayushman_status': request.POST.get('ayushman_status'), 'ayushman_number': request.POST.get('ayushman_number'), 'ageless70': request.POST.get('ageless70') == 'on', 'timestamp': timezone.now() } # Related model instances related_fields = { 'camp': Camp.objects.get(id=request.POST.get('camp_id')), 'employee': Employee.objects.get(id=request.POST.get('employee_id')) if request.POST.get('employee_id') else None, 'campdoctor': CampDoctor.objects.get(id=request.POST.get('campdoctor_id')) if request.POST.get('campdoctor_id') else None, 'referredcategory': ReferredCategory.objects.get(id=request.POST.get('referredcategory_id')) if request.POST.get('referredcategory_id') else None, 'referredsubcategory': ReferredSubCategory.objects.get( id=request.POST.get('referredsubcategory_id'), category_id=request.POST.get('referredcategory_id') ) if request.POST.get('referredsubcategory_id') else None } Lead.objects.create(**form_data, **related_fields) messages.success(request, 'Lead created successfully!') return redirect('lead_success') except ObjectDoesNotExist as e: messages.error(request, f'Invalid selection: {str(e)}') except Exception as e: messages.error(request, f'An error occurred: {str(e)}') return render(request, 'lead/lead_form.html', context) def lead_success(request): return render(request, 'lead/lead_success.html', { 'site_logo': get_active_logo() }) def logout_view(request): # Add actual logout logic if needed return redirect('lead_form')