def search(request):
if request.method == 'GET':
form = SearchForm(request.GET)
if form.is_valid():
last_name = form.cleaned_data['last_name']
first_name = form.cleaned_data['first_name']
lawyers = Lawyer.objects.all()
if last_name and not first_name:
lawyers = lawyers.filter(last__iexact=last_name)
if len(lawyers)==0:
form = SearchForm()
return render_to_response('last_only_no_match.html', {'last': last_name, 'form': form})
if len(lawyers)==1:
form = SearchForm()
q_first_name = lawyers.values_list('first', flat=True)
q_school = lawyers.values_list('school', flat=True)
q_firm_url = lawyers.values_list('firm_url', flat=True)
q_firm_name = lawyers.values_list('firm_name', flat=True)
q_year_graduated = lawyers.values_list('year_graduated', flat=True)
lawyers1 = Lawyer.objects.filter(school__icontains=q_school[0]).filter(year_graduated__icontains=q_year_graduated[0]).exclude(last__icontains=last_name)
return render_to_response('last_only_1_match.html', {'lawyers': lawyers, 'lawyers1': lawyers1, 'last': last_name, 'first': q_first_name[0], 'school': q_school[0], 'firm': q_firm_name[0], 'firm_url': q_firm_url[0], 'class_of': q_year_graduated[0], 'form': form})
if len(lawyers)>1:
form = SearchForm(initial={'last_name': last_name})
return render_to_response('last_only_1_plus_match.html', {'lawyers': lawyers, 'last': last_name, 'form': form})
if last_name and first_name:
lawyers = lawyers.filter(last__iexact=last_name).filter(first__icontains=first_name)
if len(lawyers)==0:
form = SearchForm()
return render_to_response('first_and_last_no_match.html', {'first': first_name, 'last': last_name, 'form': form})
if len(lawyers)==1:
form = SearchForm()
q_first_name = lawyers.values_list('first', flat=True)
q_school = lawyers.values_list('school', flat=True)
q_firm_url = lawyers.values_list('firm_url', flat=True)
q_firm_name = lawyers.values_list('firm_name', flat=True)
q_year_graduated = lawyers.values_list('year_graduated', flat=True)
lawyers1 = Lawyer.objects.filter(school__icontains=q_school[0]).filter(year_graduated__icontains=q_year_graduated[0]).exclude(last__icontains=last_name)
return render_to_response('first_and_last_1_match.html', {'lawyers': lawyers, 'lawyers1': lawyers1, 'last': last_name, 'first': q_first_name[0], 'school': q_school[0], 'firm': q_firm_name[0], 'firm_url': q_firm_url[0], 'class_of': q_year_graduated[0], 'form': form})
if len(lawyers)>1:
form = SearchForm(initial={'last_name': last_name})
return render_to_response('first_and_last_1_plus_match.html', {'lawyers': lawyers, 'first': first_name, 'last': last_name, 'form': form})
if first_name and not last_name:
lawyers = lawyers.filter(first__iexact=first_name)
if len(lawyers)==0:
form = SearchForm()
return render_to_response('first_only_no_match.html', {'first': first_name, 'last': last_name, 'form': form})
if len(lawyers)==1:
form = SearchForm()
q_first_name = lawyers.values_list('first', flat=True)
q_school = lawyers.values_list('school', flat=True)
q_firm_url = lawyers.values_list('firm_url', flat=True)
q_firm_name = lawyers.values_list('firm_name', flat=True)
q_year_graduated = lawyers.values_list('year_graduated', flat=True)
lawyers1 = Lawyer.objects.filter(school__icontains=q_school[0]).filter(year_graduated__icontains=q_year_graduated[0]).exclude(last__icontains=last_name)
return render_to_response('first_only_1_match.html', {'lawyers': lawyers, 'lawyers1': lawyers1, 'last': last_name, 'first': q_first_name[0], 'school': q_school[0], 'firm': q_firm_name[0], 'firm_url': q_firm_url[0], 'class_of': q_year_graduated[0], 'form': form})
if len(lawyers)>1:
form = SearchForm(initial={'first_name': first_name})
return render_to_response('first_only_1_plus_match.html', {'lawyers': lawyers, 'first': first_name, 'last': last_name, 'form': form})
form = SearchForm()
return render_to_response('search.html', {'form': form})
# else:
# form = SearchForm()
# return render_to_response('search.html', {'form': form})