示例#1
0
def search(search_text, spectacles):
    search_text = unquote_plus(search_text)
    list_region = Region.objects.filter(name__icontains=search_text)
    list_region_child = RegionChild.objects.filter(
        Q(name__icontains=search_text)
        | Q(region__in=list_region.values_list('id'))
    )
    list_region_child2 = RegionChild2.objects.filter(
        Q(name__icontains=search_text)
        | Q(region_child__in=list_region_child.values_list('id'))
    )
    list_lieux = Lieu.objects.filter(
        Q(name__icontains=search_text)
        | Q(adress__icontains=search_text)
        | Q(city__icontains=search_text)
        | Q(region__in=list_region_child2.values_list('id'))
    )
    list_rep = Representation.objects.filter(lieu_id__in=list_lieux.values_list('id'))

    list_associations = Association.objects.filter(name__icontains=search_text)

    list_spectacles = spectacles.filter(
        Q(name__icontains=search_text)
        | Q(presentation_cahier__icontains=search_text)
        | Q(presentation__icontains=search_text)
        | Q(id__in=list_rep.values_list('spectacle'))
        | Q(associations__in=list_associations.values_list('id'))
    )
    return list_spectacles
示例#2
0
def search(search_text, spectacles):
    search_text = unquote_plus(search_text)
    list_region = Region.objects.filter(name__icontains=search_text)
    list_region_child = RegionChild.objects.filter(
        Q(name__icontains=search_text)
        | Q(region__in=list_region.values_list('id')))
    list_region_child2 = RegionChild2.objects.filter(
        Q(name__icontains=search_text)
        | Q(region_child__in=list_region_child.values_list('id')))
    list_lieux = Lieu.objects.filter(
        Q(name__icontains=search_text)
        | Q(adress__icontains=search_text)
        | Q(city__icontains=search_text)
        | Q(region__in=list_region_child2.values_list('id')))
    list_rep = Representation.objects.filter(
        lieu_id__in=list_lieux.values_list('id'))

    list_associations = Association.objects.filter(name__icontains=search_text)

    list_spectacles = spectacles.filter(
        Q(name__icontains=search_text)
        | Q(presentation_cahier__icontains=search_text)
        | Q(presentation__icontains=search_text)
        | Q(id__in=list_rep.values_list('spectacle'))
        | Q(associations__in=list_associations.values_list('id')))
    return list_spectacles
示例#3
0
def spectacles(request, page=None, categorie=None, search_term=None):
    if request.method == 'POST':
        if request.POST.get('search_term'):
            search_term = urlquote_plus(request.POST.get('search_term'))
            if categorie:
                return redirect(spectacles_redir, page=1, categorie=categorie, search_term=search_term)
            else:
                return redirect(spectacles_redir, page=1, search_term=search_term)
        else:
            if categorie:
                return redirect(spectacles_redir, page=1, categorie=categorie)
            else:
                return redirect(spectacles_redir, page=1)
    categories_list = CategorieSpectacle.objects.all()
    spectacles_list = Spectacle.objects.all()
    if categorie:
        categorie = get_object_or_404(CategorieSpectacle, slug=categorie)
        spectacles_list = spectacles_list.filter(categorie__in=get_children(categorie))
    if search_term:
        spectacles_list = search(search_term, spectacles_list)
        unquoted_url = unquote_plus(search_term)
    paginator = Paginator(spectacles_list, 10)
    if page:
        page = int(page)
    else:
        page = 1
    try:
        spectacles = paginator.page(page)
    except EmptyPage:
        spectacles = paginator.page(paginator.num_pages)
    return render(request, 'list_spectacles.html', locals())
示例#4
0
    def get_context_data(self, **kwargs):
        context = super(SuccessView, self).get_context_data(**kwargs)
        success_name = self.kwargs.get("next", "")

        try:
            next_url = reverse(success_name)
        except:
            next_url = unquote_plus(success_name)
        context['next_url'] = next_url
        return context
示例#5
0
 def get_context_data(self, **kwargs):
     context = super(ErrorView, self).get_context_data(**kwargs)
     error_name = self.kwargs.get("next", "")
     errmsg = self.kwargs.get('msg', "")
     try:
         next_url = reverse(error_name)
     except:
         next_url = unquote_plus(error_name)
     context['next_url'] = next_url
     context['errmsg'] = errmsg
     return context
示例#6
0
 def get_queryset(self):
     search = self.request.GET.get('search','')
     user_courses = self.request.GET.get('user_courses','')
     if search:
         search = unquote_plus(search)
         search = smart_str(search)
         query_set = Course.objects.filter(name__icontains=search)
     elif user_courses:
         query_set = self.request.user.course_set.all()
     else:
         query_set = Course.objects.all()
     return query_set
示例#7
0
    def get_context_data(self, **kwargs):
        '''这是内置的函数功能: 就是往模版里面传变量.'''
        context = super(SuccessTemView, self).get_context_data(**kwargs)
        # print(self.kwargs)  # {'next': 'user_list'}
        # print(reverse(self.kwargs.get('next')))  # /accounts/user/list/

        success_url = self.kwargs.get('next', '')  # 成功页面之后要跳转的页面
        # next_url = '/'  # 180908 注释
        try:
            next_url = reverse(success_url)
        except:
            next_url = unquote_plus(success_url)

        context['next_url'] = next_url
        return context
示例#8
0
    def get_context_data(self, **kwargs):
        context = super(ErrorTemView, self).get_context_data(**kwargs)

        print(self.kwargs)

        error_url = self.kwargs.get('next', '')  # 成功页面之后要跳转的页面
        errormsg = self.kwargs.get('msg', '')  # 报错的内容
        # next_url = '/'
        try:
            next_url = reverse(error_url)
        except:
            next_url = unquote_plus(error_url)

        context['next_url'] = next_url
        context['errmsg'] = errormsg
        return context
示例#9
0
def dashboard(request):
    user = request.user
    products = Product.objects.all().order_by('-id')[:5]
    created = request.GET.get('created')
    deleted = request.GET.get('deleted')
    if created == 'False':
        from django.utils.http import unquote_plus
        reason = unquote_plus(request.GET.get('reason'))
    else:
        reason = ""
    cd = {
        'user': user,
        'products': products,
        'created': created,
        'reason': reason,
        'deleted': deleted,
    }
    return render(request, 'dashboard.html', cd)
示例#10
0
def spectacles(request, page=None, categorie=None, search_term=None):
    if request.method == 'POST':
        if request.POST.get('search_term'):
            search_term = urlquote_plus(request.POST.get('search_term'))
            if categorie:
                return redirect(spectacles_redir,
                                page=1,
                                categorie=categorie,
                                search_term=search_term)
            else:
                return redirect(spectacles_redir,
                                page=1,
                                search_term=search_term)
        else:
            if categorie:
                return redirect(spectacles_redir, page=1, categorie=categorie)
            else:
                return redirect(spectacles_redir, page=1)
    categories_list = CategorieSpectacle.objects.all()
    spectacles_list = Spectacle.objects.all()
    if categorie:
        categorie = get_object_or_404(CategorieSpectacle, slug=categorie)
        spectacles_list = spectacles_list.filter(
            categorie__in=get_children(categorie))
    if search_term:
        spectacles_list = search(search_term, spectacles_list)
        unquoted_url = unquote_plus(search_term)
    paginator = Paginator(spectacles_list, 10)
    if page:
        page = int(page)
    else:
        page = 1
    try:
        spectacles = paginator.page(page)
    except EmptyPage:
        spectacles = paginator.page(paginator.num_pages)
    return render(request, 'list_spectacles.html', locals())
示例#11
0
def _list_products_from_request(products, request, **kwargs):

    attributes = {
        attribute.key: attribute
        for attribute in Attribute.objects.filter(
            indexed=True
        ) if products.can_use_field('attr_%s' % attribute.key)
    }

    products = products.with_facets(*['attr_%s' % key for key in attributes])

    for param in six.iterkeys(request.GET):

        values = request.GET.getlist(param)

        if param.startswith('attr_'):
            # Remove attr_ prefix
            param = param[len('attr_'):]

        if param not in attributes:
            continue

        attribute = attributes[param]
        field_name = 'attr_%s' % param

        sq = SQ()
        for value in values:
            try:
                value = attribute.get_type().parse(unquote_plus(value))
            except ValueError:
                continue

            sq |= SQ(**{field_name: value})

        products = products.filter(sq.facetted_exclude(field_name))

    yield products