예제 #1
0
def search(request):
    q = ""
    per_page = 20
    page = 1
    page_results = None
    all_items_count = 0
    paginator = ""
    if "q" in request.GET:
        form = SearchForm(request.GET, request=request)
        if form.is_valid():
            if 'page' in request.GET:
                page = request.GET["page"]
            else:
                page = 1
            pages = paginate(page, per_page)
            q = form.cleaned_data["q"]
            results = SearchQuerySet().models(SellerItem).auto_query(q)
            page_results = results[pages["from"]: pages["to"]]
            url = "/search?q=" + q + "&page="
            all_items_count = len(results)
            paginator = pagination_string(all_items_count,
                                          int(page),
                                          per_page,
                                          url)

    return render_to_response(
        'search/search_home.html',
        context_instance=RequestContext(request,
                                        {"results": page_results,
                                         "q": q,
                                         "paginator": paginator,
                                         "total_results": all_items_count}))
예제 #2
0
    def post(self, request):

        form = SearchForm(request.POST)

        if form.is_valid() and request.user.is_authenticated:
            return redirect('search_results',
                            pk=form.cleaned_data['terms'].replace(' ', '+'))
예제 #3
0
파일: views.py 프로젝트: okzuo3/himawari
    def list(request):
        """Renders the member list page."""
        assert isinstance(request, HttpRequest)

        form = SearchForm(request.GET or None)
        if form.is_valid():
            search_name = form.data['search_name']
            member_list = Member.objects.filter( Q(name__icontains=search_name) | Q(full_name__icontains=search_name) ).order_by('number')
        else:
            member_list = Member.objects.filter( number__gte=1 ).order_by('number')

        page_no = request.GET.get('page')
        page = _get_page(member_list, page_no, MEMBER_LIST_PAGE_IN_COUNT )
        article_list = Article.objects.order_by('-released_at')[:5]
        auth_form = AuthenticationForm(None, request.POST or None)
        return render(
            request,
            'app/member_list.html',
            {
                'title':'会員名簿',
                'year':datetime.now().year,
                'articles':article_list,
                'blogs':EntryView.get_entry_list('-posted_at',-1, request.user.pk )[:5],
                'contents':range(1,6),
                'member_list':page.object_list,
                'form':form,
                'auth_form':auth_form,
                'current_user':request.user,
                'page' : page,
                'current_page':request.path  #'member_list'
            }
        )
예제 #4
0
 def test_city_search(self):
     data = {'city': 'Portland'}
     factory = RequestFactory()
     request = factory.post('/', data)
     form = SearchForm(request.POST)
     self.assertTrue(form.is_valid())
     self.assertEqual(form.cleaned_data['city'], data['city'])
예제 #5
0
 def post(self, request, pk):
     search_form = SearchForm(request.POST)
     if search_form.is_valid():
         search = search_form.save(commit=False)
         linkedin_user = LinkedInUser.objects.get(pk=pk)
         search.owner = linkedin_user
         search.save()
         BotTask(owner=linkedin_user, name=BotTaskType.SEARCH, task_type=BotTaskType.SEARCH,
                 extra_id=search.id).save()
     return HttpResponseRedirect(reverse('account-search', args=[pk]))
예제 #6
0
def searchresult(request):

    context = dict()
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            search_query = form.cleaned_data['search_query']
            context['products'] = Product.objects.filter(
                Q(brand__icontains=search_query)
                | Q(pname__icontains=search_query)).distinct()
            return render(request, 'search-result.html', context)
    return HttpResponseRedirect('/')
def post_search(request):
    if request.method == 'GET':
        form = SearchForm(request.GET)
        if form.is_valid():
            text = form.data['q']
            posts = Post.objects.order_by('-created_at').filter(Q(title__contains=text) | Q(content__contains=text) , Q(is_page=False))

            if posts:
                return render(request, 'search.html', {'posts': posts, 'text' :text })
            else:
                return render(request, 'search.html', {'error': 'Aranan kelime bulunamadı.', 'text':text})
        else:
            return render(request, 'search.html', {'error': 'Boş arama yaptın!.', 'text':'Hata'})
예제 #8
0
파일: devhub.py 프로젝트: revadox/InfoGami
def search_devhub_question(request):
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            search_str = form.cleaned_data['search_str']
            list_by_title = DevhubQuestionModel.objects.filter(question_heading__contains = search_str).order_by('-created')
            list_by_tags = DevhubQuestionModel.objects.filter(question_tags__name__in = [search_str]).order_by('-created')
            result = list(chain(list_by_title,list_by_tags))
            result = Set(result)
            return render(request,'devhub/question/search_question.html',{'form':form,'results':result})
    else:
        form = SearchForm()
    return render(request,'devhub/question/search_question.html',{'form':form})
예제 #9
0
파일: devhub.py 프로젝트: revadox/InfoGami
def search_devhub_topic(request):
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            search_str = form.cleaned_data['search_str']
            list_by_heading = DevhubTopicModel.objects.filter(topic_heading__contains = search_str).order_by('-created')
            list_by_tags = DevhubTopicModel.objects.filter(tags__name__in = [search_str]).order_by('-created').distinct()
            results = list(chain(list_by_heading,list_by_tags))
            results = Set(results)
            return render(request,'devhub/topic/search_topic.html',{'form':form,'results':results,'search_str':search_str})
    else:
        form = SearchForm()
    return render(request,'devhub/topic/search_topic.html',{'form':form})
예제 #10
0
def search(request):
    dept = ""
    c_num = ""
    c_code = ""

    if request.method == "POST":
        # Get the posted search form
        sf = SearchForm(request.POST)
        if sf.is_valid():
            dept = sf.cleaned_data["dept"]
            c_num = sf.cleaned_data["c_num"]
            c_code = sf.cleaned_data["c_code"]
    else:
        sf = SearchForm()

    return render(request, "selected.html", {'courses':update_selected(dept, c_num, c_code)})
예제 #11
0
파일: views.py 프로젝트: simonv3/ideas
def search(request, query=""):
    searchForm = SearchForm(request.GET or None)
    if request.method == "GET":
        if searchForm.is_valid():
            cd = searchForm.cleaned_data
            #redirect to this function, but send the search into the query. 
            #print "redirecting"
            return HttpResponseRedirect("/search/"+cd['query']+"/")
    idea_results = []
    if query != "":
        ideas_with_tags = Tag.objects.filter(tag__contains=query)
        all_ideas = Idea.objects.filter(idea__contains=query)
        for idea in ideas_with_tags:
            idea_results.append(idea.idea)
        for idea in all_ideas:
            if idea not in idea_results:
                idea_results.append(idea)
    return render_to_response("main/idea_list.html", locals(),
            context_instance=RequestContext(request))
예제 #12
0
def search(request):
    if request.method == "POST":
        # Get the posted form

        search_form = SearchForm(request.POST)
        if search_form.is_valid():

            evnt_name = search_form.cleaned_data['evnt_name']
            evnt = models.GetEventByName(evnt_name)

            return render(
                request,
                'app/index.html',
                {
                    'title': 'Сторынка пошуку',
                    'year': datetime.now().year,
                    'all_event': evnt
                }
            )
예제 #13
0
def search_general_question(request):
    form = SearchForm()
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            search_str = form.cleaned_data['search_str']
            text_search_result = GeneralQuestionModel.objects.filter(
                ques_text__contains=search_str).order_by('-created')
            tag_search_result = GeneralQuestionModel.objects.filter(
                ques_tags__name__in=search_str).order_by('-created')
            results = list(chain(text_search_result, tag_search_result))
            results = Set(results)
            return render(request, 'general_question/search_question.html', {
                'form': form,
                'results': results,
                'search_str': search_str
            })
    return render(request, 'general_question/search_question.html',
                  {'form': form})
예제 #14
0
def index(request):
    form = SearchForm()
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            query = form.cleaned_data['query']
            try:
                result, suggest = go_search(query)
                return render(request, 'app/result.html', {
                    'form': form,
                    'result': result,
                    'suggest': suggest
                })

            except ValueError, error:
                messages.error(request, error.message)
                return HttpResponseRedirect('')
        else:
            print "Invalid"
            messages.error(request, form.errors)
예제 #15
0
def search_hosted_project(request):
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            search_str = form.cleaned_data['search_str']
            list_by_name = HostProjectModel.objects.filter(
                project_status='active', project_name__contains=search_str)
            list_by_tags = HostProjectModel.objects.filter(
                project_status='active', skills__name__in=[search_str])
            result = list(chain(list_by_name, list_by_tags))
            result = Set(result)
            return render(request, 'host_project/search_hosted_project.html', {
                'results': result,
                'form': form,
                'search_str': search_str
            })
    else:
        form = SearchForm()
    return render(request, 'host_project/search_hosted_project.html',
                  {'form': form})
def post_search(request):
    if request.method == 'GET':
        form = SearchForm(request.GET)
        if form.is_valid():
            text = form.data['q']
            posts = Post.objects.order_by('-created_at').filter(
                Q(title__contains=text) | Q(content__contains=text),
                Q(is_page=False))

            if posts:
                return render(request, 'search.html', {
                    'posts': posts,
                    'text': text
                })
            else:
                return render(request, 'search.html', {
                    'error': 'Aranan kelime bulunamadı.',
                    'text': text
                })
        else:
            return render(request, 'search.html', {
                'error': 'Boş arama yaptın!.',
                'text': 'Hata'
            })
예제 #17
0
파일: views.py 프로젝트: sp35/MatriNome
def home(request):
    partner_objects = Partner.objects.filter(current_user=request.user)
    partners = []
    for partner_object in partner_objects:
        partners.append(partner_object.its_partner)

    excluded_user_list = [request.user] + partners
    profiles = Profile.objects.exclude(user__in=excluded_user_list)

    # showing profiles of opposite gender
    if request.user.profile.gender is 'M':
        profiles = profiles.filter(gender='F')
    else:
        profiles = profiles.filter(gender='M')

    if request.method == 'POST':
        if 'btnformfilter' in request.POST:
            form = FilterForm(request.POST)
            s_form = SearchForm()
            if form.is_valid():
                age_pref = form.cleaned_data['age']
                if not age_pref is None:
                    profiles = profiles.filter(
                        dob__lte=date.today() - timedelta(days=365 * age_pref),
                        dob__gte=date.today() -
                        timedelta(days=(365 * (age_pref + 1) + 1)))
                state_pref = form.cleaned_data['state']
                if not state_pref is "":
                    profiles = profiles.filter(state=state_pref)
                interests_pref_list = [
                    interest for interest in form.cleaned_data['interests']
                ]
                if len(interests_pref_list):  #checking for empty list
                    interest_query = InterestChoice.objects.filter(
                        interest__in=interests_pref_list)
                    profiles = profiles.filter(interests__in=interest_query)

        elif 'btnformsearch' in request.POST:
            form = FilterForm()
            s_form = SearchForm(request.POST)
            if s_form.is_valid():
                query = s_form.cleaned_data['query']
                profiles = profiles.filter(name__icontains=query)

    else:
        form = FilterForm()
        s_form = SearchForm()

    user_interests = request.user.profile.interests.all()
    context = {}
    req_received = {}
    for profile in profiles:
        matched_interests = []
        count = 0
        for interest in profile.interests.all():
            if interest in user_interests.all():
                count += 1
                matched_interests.append(interest)
        context[profile] = matched_interests
        req_received[profile.user] = RelationshipRequest.objects.filter(
            from_user=profile.user, to_user=request.user).exists()

    # setting context to none in case none of the profiles matched
    if all(len(value) == 0 for value in context.values()):
        context = None
    # sorting context by matched_interests
    else:
        sorted_context = {}
        for k in sorted(context, key=lambda k: len(context[k]), reverse=True):
            sorted_context[k] = context[k]
        context = sorted_context

    return render(
        request, 'home.html', {
            'context': context,
            'partners': partners,
            'req_received': req_received,
            'form': form,
            's_form': s_form
        })