49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from django.shortcuts import render, redirect, get_object_or_404
|
|
from django.db.models import Q
|
|
from .models import Lead
|
|
from .forms import LeadForm
|
|
|
|
def lead_list(request):
|
|
query = request.GET.get('q')
|
|
if query:
|
|
leads = Lead.objects.filter(
|
|
Q(name__icontains=query) |
|
|
Q(email__icontains=query) |
|
|
Q(company__icontains=query)
|
|
).order_by('-score')
|
|
else:
|
|
leads = Lead.objects.all().order_by('-score')
|
|
return render(request, 'leads/lead_list.html', {'leads': leads})
|
|
|
|
def lead_detail(request, pk):
|
|
lead = get_object_or_404(Lead, pk=pk)
|
|
return render(request, 'leads/lead_detail.html', {'lead': lead})
|
|
|
|
def lead_create(request):
|
|
if request.method == 'POST':
|
|
form = LeadForm(request.POST)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lead_list')
|
|
else:
|
|
form = LeadForm()
|
|
return render(request, 'leads/lead_form.html', {'form': form})
|
|
|
|
def lead_update(request, pk):
|
|
lead = get_object_or_404(Lead, pk=pk)
|
|
if request.method == 'POST':
|
|
form = LeadForm(request.POST, instance=lead)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lead_list')
|
|
else:
|
|
form = LeadForm(instance=lead)
|
|
return render(request, 'leads/lead_form.html', {'form': form})
|
|
|
|
def lead_delete(request, pk):
|
|
lead = get_object_or_404(Lead, pk=pk)
|
|
if request.method == 'POST':
|
|
lead.delete()
|
|
return redirect('lead_list')
|
|
return render(request, 'leads/lead_confirm_delete.html', {'lead': lead})
|