def merge_stops(self, request, queryset):
     base_stop = BaseStop(common_name=queryset[0].common_name, common_city=queryset[1].common_name)
     base_stop.save()
     for obj in queryset:
         obj.parent = base_stop
         obj.save()
     self.message_user(request, "%s added as logical parent stop" % base_stop)
def search(request, term=None):
    form = search_term = result_list = results = None
    if request.POST:
        form = SearchForm(request.POST)
        if form.is_valid():
            search_term = form.cleaned_data['terms']
    if term is not None:
        # Note, we might need to do some cleanup here
        search_term = term
    if search_term is not None:
        # Get results
        result_list = BaseStop.search(search_term)

        paginator = Paginator(result_list, 25)
        page = request.GET.get('page', 1)
        try:
            results = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            results = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            results = paginator.page(paginator.num_pages)
    if form is None:
        form = SearchForm()

    return render(request, 'stops/results.html', {
        'results': results,
        'term': search_term,
        'form': form
    })