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('/')
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})
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'})
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('/')
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'})