示例#1
0
    def get_queryset(self):
        params = {}
        #import pdb;pdb.set_trace()
        form = SearchForm(self.request.user.rep, self.request.GET)
        if form.is_valid():
            start = form.cleaned_data['start']
            end = form.cleaned_data['end']
            rep = form.cleaned_data['rep']

            date_fld = self.order_by
            if date_fld[0] == '-':
                date_fld = date_fld[1:]

            #params.update({'{}__range'.format(date_fld): (start, end)})
            if start:
                params.update({'{}__gte'.format(date_fld): start})
            if end:
                params.update({'{}__lte'.format(date_fld): end})
            if rep:
                params.update({'rep': rep})
        else:
            #subordinates = [r for r in Rep.objects.filter(supervisor=rep)]
            #all_reps = [rep] + subordinates
            #params.update({'rep__in': all_reps})
            params.update({'rep': self.request.user.rep})
        ordering = [self.order_by]
        if self.order_by_extra:
            ordering.append(self.order_by_extra)
        return self.model.objects.filter(**params).order_by(*ordering)
示例#2
0
def search_question(request):
    """ For searching question via regex and tags """

    if request.method == "GET":

        form = SearchForm()
        questions = Question.objects.all()
        context = {
            'form': form,
            'questions': questions,
        }

        return render(request, 'core/search_question.html', context=context)

    if request.method == "POST":

        form = SearchForm(request.POST or None)
        context = {}

        if form.is_valid():

            title = form.cleaned_data['title']
            tags = form.cleaned_data['tags']

            if not tags:
                qu = Question.objects.filter(title__icontains=title)
            else:
                qu = Question.objects.filter(title__icontains=title).filter(
                    tags__name__in=tags).distinct()

            context['questions'] = qu

        context['form'] = form
        return render(request, 'core/search_question.html', context=context)
示例#3
0
def search(request):
    if request.method == 'GET':
        return render(request, 'search.html')
    else:
        form = SearchForm(request.POST)
        if form.is_valid():
            query = form.cleaned_data['query']
            parameter = form.cleaned_data['parameter']
            if parameter == 'Tümü' and query is not None:
                results = ItbookApi(query).get_result()
                return render(request, 'result.html', {
                    'query': query,
                    'results': results
                })
            elif parameter == 'İsim' and query is not None:
                results = search_by_name(query)
                return render(request, 'result.html', {
                    'query': query,
                    'results': results
                })
            else:
                messages.error(request, 'Invalid search entry.')
                return HttpResponseRedirect('/')
        else:
            messages.error(request, 'Invalid search entry.')
            return HttpResponseRedirect('/')
示例#4
0
def list_companies(req, startchar=''):
    if req.method == 'POST':
        form = SearchForm(req.POST)
        if form.is_valid():
            s = form.cleaned_data['search']
            companies = Company.objects.select_related().filter(
                Q(name__icontains=s) | Q(short_name__icontains=s))
        else:
            companies = Company.objects.none()
            messages.error(req, u'Ungültige Suche.')
    else:
        form = SearchForm()
        if not startchar:
            companies = Company.objects.select_related().all()
            for c in string.ascii_uppercase:
                companies = companies.exclude(name__istartswith=c)
        else:
            companies = Company.objects.select_related().filter(
                name__istartswith=startchar)
    companies = companies.exclude(**settings.EXCLUDE_FROM_COMPANY_LIST)
    ptitle = u'Firmen: {0} ({1})'.format(
        startchar or '-', companies.count()
    )
    ctx = dict(
        page_title=ptitle, companies=companies, menus=menus,
        chars=string.ascii_uppercase, form=form, single_view=False
    )
    return render(req, 'companies/list.html', ctx)
示例#5
0
文件: views.py 项目: elyezer/pylyglot
def index(request):

    translations = []
    short_name = 1
    query = ''
    results = []

    if "query" in request.GET:
        form = SearchForm(request.GET)
        is_searching = True
        if form.is_valid():
            query = form.cleaned_data['query']
            short_name = form.cleaned_data['languages']

            translations = Translation.objects.filter(
                sentence__msgid__icontains=query,
                language__short_name=short_name,
                obsolete=False,
            ).values(
                'sentence__msgid',
                'msgstr',
                'sentence__length',
                'package__name',
            ).order_by('sentence__length', 'sentence__msgid',
                       'msgstr').distinct()

            for trans in translations:
                """
                # I don't like this but for now it's ok
                packages = Translation.objects.filter(
                        language__short_name=short_name,
                        sentence__msgid=trans['sentence__msgid']
                        ).order_by(
                                'package__name'
                                )
                """
                results.append({
                    'msgid': trans['sentence__msgid'],
                    'msgstr': trans['msgstr'],
                    'packages': [
                        trans['package__name'],
                    ]
                })

    else:
        form = SearchForm()
        is_searching = False

    variables = RequestContext(
        request, {
            'object_list': results,
            'query': query,
            'short_name': short_name,
            'form': form,
            'is_searching': is_searching,
        })

    return render_to_response('translations/translation_list.html', variables)
示例#6
0
def pools(request):
    context = RequestContext(request)

    resultados = []

    usuario = request.user

    analytics.identify(user_id=usuario.pk,
                       traits={
                           'email': usuario.email,
                           'firstName': usuario.first_name,
                           'lastName': usuario.last_name,
                           'createdAt': usuario.date_joined.isoformat()
                       })

    if request.method == 'POST':

        search_form = SearchForm(request.POST)

        if search_form.is_valid():

            try:
                resultados = Pool.objects.filter(
                    origen=search_form.cleaned_data['origen'],
                    destino=search_form.cleaned_data['destino'])

                analytics.track(
                    usuario.pk, 'Busca ruta', {
                        'origen': search_form.cleaned_data['origen'],
                        'destino': search_form.cleaned_data['destino']
                    })

            except Exception as e:
                print type(e)
                print e.args
                print e

        else:

            print search_form.errors

    colonias = Colonia.objects.all()

    return render_to_response(
        'pools.html', {
            'resultados': resultados,
            'colonias': colonias,
            'pageType': 'Listado Pools'
        }, context)
示例#7
0
def player_search(request):
    if not request.method == 'POST':
        return render(request, 'core/index.html')
    form = SearchForm(request.POST)
    if form.is_valid():
        username = form.cleaned_data['username']
        platform = form.cleaned_data['platforms']
        communication = get_profile_data(username, platform)
        if communication.error:
            messages.add_message(
                request, messages.ERROR,
                f'Usuário <strong>{username}</strong> não encontrado. '
                'Confira os dados ou selecione outra plataforma.')
            return redirect(request.META.get('HTTP_REFERER'))
        return redirect('core:player-detail',
                        username=communication.player_stats.player.username)
示例#8
0
def search_docs(request):
    upload_docs()
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            ser_num = form.cleaned_data["ser_num"]
            if len(ser_num) == 9:
                ser_num.strip()
            ser = ser_num[:2]
            num = ser_num[2:]
            docs = LostDocuments.objects.filter(series=ser, doc_num=num)
            return render(request, "core/results.html", {"docs": docs})
    else:
        form = SearchForm()

    return render(request, 'core/index.html', {'form': form})
def new_search(request):
    if request.method == 'POST':
        forms = SearchForm(request.POST)
        if forms.is_valid():
            stuff_to_frontend = searching(forms.cleaned_data['search'])
            forms.save()
        return render(request,
                      'core/search.html',
                      context={
                          'forms': forms,
                          'content_data': stuff_to_frontend
                      })
    else:
        forms = SearchForm()
        # BUG: Debug forms widgets need to change
        # import pdb; import pdb; pdb.set_trace()
        return render(request, 'core/search.html', context={'forms': forms})
示例#10
0
def search(request):
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            search_string = form.cleaned_data['search_string']
            s = SphinxClient()
            s.SetServer('192.168.102.2', 9312)
            s.SetLimits(0, 100)
            if s.Status():
                res = s.Query(search_string)
                return render(request, 'search.html', {
                    'items': res,
                    'form': form
                })

    form = SearchForm()
    return render(request, 'search.html', {'form': form})
示例#11
0
def search_class(request):
    if request.method == 'POST':
        form = SearchForm(request.POST)
        if form.is_valid():
            # post = form.save(commit=False)
            depname = form.cleaned_data.get('department')
            data = Subject.objects.filter(department=depname)
            # return HttpResponse(depname)
            return render(request, 'search.html', {
                'form': form,
                'depname': depname,
                'data': data
            })
        else:
            return HttpResponse("Error in form")
    else:
        form = SearchForm()
        return render(request, 'search.html', {'form': form})
示例#12
0
def search_it(request, template_name='core/home.html'):
    search = '' #add in the slug maker
    form = SearchForm(request.POST) # A form bound to the POST data
    if form.is_valid(): # All validation rules pass
        form.process()
        search = form.cleaned_data['title']
        slug = slugify(search)
        try:
            e = Den.objects.get(slug=slug)
        except ObjectDoesNotExist:
            den = form.save(commit=False)
            den.save()

            #Spider Tasks
            t = TaskUtils()
            t.run_spiders(NewsWebsite, 'scraper', 'scraper_runtime', 'article_spider', search)

        return redirect('den/' + slug)
    return render(request, template_name, {'form': form,})
示例#13
0
def pools(request):
    context = RequestContext(request)

    resultados = []

    usuario = request.user

    analytics.identify(user_id=usuario.pk,
                       traits={
                           'email': usuario.email,
                           'firstName': usuario.first_name,
                           'lastName': usuario.last_name,
                           'createdAt': usuario.date_joined.isoformat()
                       })

    if request.method == 'POST':

        search_form = SearchForm(request.POST)

        if search_form.is_valid():

            try:
                resultados = Pool.objects.filter(origen=search_form.cleaned_data['origen'],
                                                 destino=search_form.cleaned_data['destino'])

                analytics.track(usuario.pk, 'Busca ruta', {
                    'origen': search_form.cleaned_data['origen'],
                    'destino': search_form.cleaned_data['destino']
                })

            except Exception as e:
                print type(e)
                print e.args
                print e

        else:

            print search_form.errors

    colonias = Colonia.objects.all()

    return render_to_response('pools.html',
                              {'resultados': resultados, 'colonias': colonias, 'pageType': 'Listado Pools'}, context)
def index(request):
    if request.method == "POST":
        form = SearchForm(request.POST)
        if form.is_valid():
            files_from_content = []
            files_saved = File.objects.filter(
                name__icontains=form.cleaned_data["file_name"]).values_list(
                    "id", flat=True)
            files_from_content.extend(files_saved)
            results = es.search(
                index="",
                body={
                    "query": {
                        "query_string": {
                            "query": form.cleaned_data["file_name"]
                        }
                    }
                },
            )
            if results["hits"]["total"]["value"] > 0:
                for result in results["hits"]["hits"]:
                    files_from_content.append(result["_source"]["file_id"])

            files = list(
                File.objects.filter(id__in=list(set(files_from_content))))

            return render(
                request,
                "index.html",
                {
                    "show_files": True,
                    "files_saved": files
                },
            )
    files_saved = list(File.objects.all())
    return render(request, "index.html", {
        "show_files": True,
        "files_saved": files_saved
    })
示例#15
0
def browse(request, id=-1):

    if id is not -1:  # Browse book interface.
        try:
            sale = Sale.objects.get(id=id, status=Sale.PENDING)
        except:
            return error_page(request, "A sale with the id %d could not be " "found." % int(id))
        viewer = "guest"
        if request.user == sale.merchant:
            viewer = "merchant"
        elif request.user.is_authenticated():
            if len(Offer.objects.filter(sale=sale, status=Sale.PENDING, buyer=request.user)) > 0:
                viewer = "made_offer"
            else:
                viewer = "no_offer"
        offers = Offer.objects.filter(sale=sale, status=Offer.PENDING).order_by("-price", "buyer__first_name")
        return load_page(request, "sale_details.html", {"viewer": viewer, "sale": sale, "offers": offers})
    else:
        if request.user.is_authenticated():
            sales = Sale.objects.exclude(merchant=request.user).filter(status=Sale.PENDING)
        else:
            sales = Sale.objects.filter(status=Sale.PENDING)

        sales = sales.order_by("price", "title", "merchant__last_name")

        error = ""

        title = ""
        isbn = ""
        course = ""

        form = SearchForm(request.GET)
        if form.is_valid():
            title = form.cleaned_data["title"] or ""
            isbn = form.cleaned_data["isbn"] or ""
            course = form.cleaned_data["course"] or ""

            if title != "":
                sales = sales.filter(title__icontains=title)
            if isbn != "":
                sales = sales.filter(isbn__exact=isbn)
            if course != "":
                sales = sales.filter(course__exact=course)

        my_sales = []
        for sale in sales:
            offers = Offer.objects.filter(sale=sale)
            this_sale = {
                "id": sale.id,
                "image": sale.image,
                "title": sale.title,
                "course": sale.course,
                "price": sale.price,
                "merchant": sale.merchant,
                "offers": len(offers.filter(status=Offer.PENDING)),
                "expires": sale.expires,
                "expires_soon": (sale.expires - date.today()) <= timedelta(1),
            }
            my_sales.append(this_sale)
        sales = my_sales

        per_page = 5
        pages = int(ceil(len(sales) / float(per_page)))

        page = int(request.GET.get("page", 1))

        if pages <= 0:
            pages = 1
        if page <= 0:
            page = 1
        if page > pages:
            page = pages

        prev = "?title=%s&isbn=%s&course%s=&page=%s" % (title or "", isbn or "", course or "", (page - 1))
        next = "?title=%s&isbn=%s&course=%s&page=%s" % (title or "", isbn or "", course or "", (page + 1))

        # Calculate the page number. Don't forget any leftovers on the last page.
        # page_number = min(page, ceil(len(sales) / float(per_page)))

        # Calculate the display indices from the page number.
        first = int((page - 1) * per_page)
        last = int(page * per_page)
        sales = sales[first:last]

        return load_page(
            request,
            "browse.html",
            {"sales": sales, "form": form, "error": error, "prev": prev, "next": next, "page": page, "pages": pages},
        )
示例#16
0
文件: views.py 项目: julyzergcn/yuce
def search_form(request):
    form = SearchForm(request)
    if form.is_valid():
        form.search()
    return form
示例#17
0
 def test_search_form_validation(self):
     """test_search_form_validation() checks form with is_valid() method."""
     form_data = {'query': 'something'}
     form = SearchForm(data=form_data)
     self.assertTrue(form.is_valid())