Пример #1
0
def favorites(request, page=1):
    if request.user.is_authenticated():
        # process favorites
        if request.method == 'POST':
            item_code = request.POST.get('item_code')
            item = Item.objects.get(url_code=item_code)
            try:
                find = Favorite.objects.get(item=item)
            except Favorite.DoesNotExist:
                fave = Favorite(user=request.user, item=item, fav_date=timezone.now())
                fave.save()
                messages.success(request, 'Favorited ' + item.title)
            else:
                find.delete()
                messages.success(request, 'Unfavorited ' + item.title)

            return redirect('/post/' + item_code)
        # list favorites
        else:
            title = 'favorites'
            faves = Favorite.objects.filter(user=request.user).values('item').order_by('-pk')
            item_list = []
            for fave in faves:
                fave_item = Item.objects.get(pk=fave['item'])
                item_list.append(fave_item)
            items = paginator(item_list, page)
            if not items:
                return redirect('/')
            else:
                return render(request, 'list.html', {'items':items, 'title':title, 'img_title': 'favorites'})
    else:
        return redirect('/')
Пример #2
0
def list(request, category=None, page=1):
    if request.user.is_authenticated():
        zipcode = request.user.customer.zipcode.number
        area = Zipcode.objects.get(number=zipcode).city.state.area.slug
        states = Area.objects.get(slug=area).states.all()
        cities = City.objects.filter(state__in=states)
    else:
        cities = City.objects.all()

    cat = 'new'
    if not category:
        return redirect('/list/new')
    elif category == 'new':
        item_list = Item.objects.filter(city__in=cities, is_expired=False, is_removed=False).order_by('-pub_date').exclude(is_removed=True)
        img_title = 'new'
    elif category == 'free':
        item_list = Item.objects.filter(city__in=cities, price='0', is_expired=False, is_removed=False).order_by('-pub_date').exclude(is_removed=True)
        img_title = 'free'
    else:
        try:
            category = Category.objects.get(slug=category)
            cat = category.slug
            item_list = Item.objects.filter(category=category, city__in=cities, is_expired=False, is_removed=False).order_by('-pub_date').exclude(is_removed=True)
            img_title = category.slug
        except Category.DoesNotExist:
            return redirect('/')

    items = paginator(item_list, page)
    if not items:
        return redirect('/')
    else:
        return render(request, 'list.html', {'items': items, 'title': category, 'view': 'list', 'img_title': img_title})
Пример #3
0
def store(request, seller, page=1):
    try:
        user = User.objects.get(username=seller)
    except User.DoesNotExist:
        return HttpResponse(user)
    else:
        item_list = Item.objects.filter(user=user).all().order_by('-pub_date').exclude(is_removed=True)
        title = user.username + "'s Store"

        items = paginator(item_list, page)
        if not items:
            return redirect('/')
        else:
            return render(request, 'list.html', {'items':items, 'title':title, 'seller':user.username, 'view':'store'})
Пример #4
0
def history(request, page=1):
    if request.user.is_authenticated():
        title = 'history'
        views = PostView.objects.filter(user=request.user).values('item').order_by('-pk')
        item_list = []
        for view in views:
            view_item = Item.objects.get(pk=view['item'])
            item_list.append(view_item)
        items = paginator(item_list, page)
        if not items:
            return redirect('/')
        else:
            return render(request, 'list.html', {'items':items, 'title':title, 'img_title': 'history'})
    else:
        return redirect('/')
Пример #5
0
def search(request, query='', page=1):
    items = ''
    if request.method == 'POST':
        query = request.POST.get('query')
        return redirect('/search/' + query)
    else:
        if not query:
            title = 'None'
            return HttpResponse('No results')
        else:
            title = query
            i = Item.objects
            item_list = i.filter(
                    Q(title__icontains=query) | 
                    Q(details__icontains=query) | 
                    Q(category__eng_name__icontains=query) | 
                    Q(category__kor_name__icontains=query) | 
                    Q(user__username__icontains=query) | 
                    Q(city__name__icontains=query)).order_by('-pub_date')
            item_list = item_list.exclude(is_removed=True)


            items = paginator(item_list, page)
            return render(request, 'list.html', {'items': items, 'search': title, 'view': 'search', 'img_title': 'search'})