Exemplo n.º 1
0
Arquivo: views.py Projeto: cjs/bme
def profiles(request, template_name="profiles/profiles.html"):
    if request.method == 'POST':
        search_form = SearchForm(request.POST)
        if search_form.is_valid():
            terms = request.POST.get('terms', None)

            q = Q()

            for t in terms.split(" "):
                q =    q|Q(first_name__icontains = t)\
                        |Q(last_name__icontains = t)\
                        |Q(username__icontains = t)\
                        |Q(email__icontains = t)\
                        |Q(profile__name__icontains = t)\
                        |Q(profile__about__icontains = t)\
                        |Q(profile__location__icontains = t)\
                        |Q(profile__website__icontains = t)\

            users = User.objects.filter(q)

            return render_to_response(template_name, {
                "users": users.order_by("-date_joined"),
                "search_form": search_form,
            },
                                      context_instance=RequestContext(request))

    search_form = SearchForm()
    return render_to_response(
        template_name, {
            "users": User.objects.all().order_by("-date_joined"),
            "search_form": search_form,
        },
        context_instance=RequestContext(request))
Exemplo n.º 2
0
def rest_search(request):
    results = {'query': '', 'results': []}
    if request.method == 'GET': 
        form = SearchForm(request.GET)
        if form.is_valid(): 
            query = form.cleaned_data['query'].strip() + '*'
            hits = search.perform_search(query)

            results['query'] = form.cleaned_data['query']

            if hits:
                results['results'].extend(hits)

    return render_json(request, results['results'])
Exemplo n.º 3
0
def rest_explore(request):
    results = {
        'query': '', 
        'users': []
        
    }
    
    if request.method == 'GET': 
        form = SearchForm(request.GET)
        if form.is_valid(): 
            query = form.cleaned_data['query'].strip() + '*'
            hits = search.perform_search(query + ' type:profile', limit=100, include_surrogates=True)

            results['query'] = form.cleaned_data['query']

            if hits:
                results['users'].extend(hits)
                
        for user in results['users']:
            user['categories'] = [c.name for c in Category.objects.filter(person__pk=user['id'])]
            user['connections'] = Relation.objects.filter(Q(source=user['id'])|Q(target=user['id'])).count()

    return render_json(request, results)
Exemplo n.º 4
0
def search(request):
    if request.method == 'GET':
        form = SearchForm(request.GET)
        if form.is_valid():
            options = dict()
            options['src_country'] = form.clean_src_country()
            options['dest_country'] = form.clean_dest_country()
            departure_date = form.cleaned_data['departure_date']

            profile_list = Profile.objects.filter(
                range_start__lt=departure_date,
                range_end__gt=departure_date,
                **options)

            return render(request, 'profiles/search.html', {
                'profile_list': profile_list,
                'search_form': form
            })
        else:
            print(form.errors)
            return HttpResponseRedirect('/')
    else:
        return HttpResponseRedirect('/')
Exemplo n.º 5
0
def homepage(request):
    search_form = SearchForm()

    return render(request, 'homepage.html', {'search_form': search_form})