Exemplo n.º 1
0
def events_all(request):
    ads = Ad.get_active_ads()
    events_list = Event.objects.filter(status="published").order_by(
        "-start_date", "-start_time")
    cities = events_list.values_list('city',
                                     flat=True).distinct().order_by('city')
    categories = EventCategory.objects.all().order_by('title')

    filtered_cities = request.GET.getlist('location')
    if filtered_cities:
        events_list = events_list.filter(city__in=filtered_cities)

    filtered_categories = request.GET.getlist('category')
    if filtered_categories:
        events_list = events_list.filter(
            categories__title__in=filtered_categories)

    page = request.GET.get("page", 1)
    paginator = Paginator(events_list, 10)
    try:
        events = paginator.page(page)
    except PageNotAnInteger:
        events = paginator.page(1)
    except EmptyPage:
        events = paginator.page(paginator.num_pages)
    context = {
        "events": events,
        "cities": cities,
        "categories": categories,
        "filtered_cities": filtered_cities,
        "filtered_categories": filtered_categories,
        "ads": ads
    }
    return render(request, "events/index.html", context)
Exemplo n.º 2
0
def listing_single(request, slug, pk):
    ads = Ad.get_active_ads()
    listing = get_object_or_404(Listing, slug=slug, id=pk)
    user_liked = listing.is_liked_by(request.user)
    if listing.status == 'draft' and request.user != listing.created_by:
        return render(request, "private.html")
    report_post_form = ReportPostForm()
    categories = [{"title": cat.title, "category_group": cat.category_group.title} for cat in listing.categories.all()]
    context = {"listing": listing, "categories": categories, "report_post_form": report_post_form, "ads": ads,
               "user_liked": user_liked}
    return render(request, "listings/single.html", context)
Exemplo n.º 3
0
def events_single(request, slug, pk):
    ads = Ad.get_active_ads()
    event = get_object_or_404(Event, slug=slug, id=pk)
    if event.status == 'draft' and request.user != event.created_by:
        return render(request, "private.html")
    report_post_form = ReportPostForm()
    context = {
        "event": event,
        "report_post_form": report_post_form,
        "ads": ads
    }
    return render(request, "events/single.html", context)
Exemplo n.º 4
0
def home(request):
    ads = Ad.get_active_ads()
    listings = Listing.objects.filter(
        status="published").order_by("-created_at")[:15]
    upcoming_events = Event.get_upcoming_events()
    latest_forum_activity = ForumThread.get_latest()
    context = {
        "ads": ads,
        "listings": listings,
        "upcoming_events": upcoming_events,
        "latest_forum_activity": latest_forum_activity
    }
    return render(request, "pages/home.html", context)
Exemplo n.º 5
0
def listings_all(request, category=None):
    ads = Ad.get_active_ads()
    listings = Listing.objects.all().order_by("-created_at").filter(status='published')
    cities = listings.values_list('city', flat=True).distinct().order_by('city')
    # categories = Category.objects.all(category_group=listing_group).order_by('title')
    categories = CategoryGroup.objects.all().order_by('title')
    subcategories = None
    filtered_cities = request.GET.getlist('location')
    if filtered_cities:
        listings = listings.filter(city__in=filtered_cities)

    filtered_categories = request.GET.getlist('category')
    if filtered_categories:
        subcategories = [x.title for x in
                         Category.objects.filter(category_group__title=filtered_categories[0]).order_by('title')]
        listings = listings.distinct().filter(categories__title__in=subcategories)

    filtered_subcategories = request.GET.getlist('subcategory')
    if filtered_subcategories:
        listings = listings.filter(categories__title__in=filtered_subcategories)

    page = request.GET.get("page", 1)
    paginator = Paginator(listings, 10)
    try:
        listings = paginator.page(page)
    except PageNotAnInteger:
        listings = paginator.page(1)
    except EmptyPage:
        listings = paginator.page(paginator.num_pages)

    context = {
        "listings": listings,
        "cities": cities,
        "categories": categories,
        "subcategories": subcategories,
        "category_group": "Listings",
        "filtered_cities": filtered_cities,
        "filtered_categories": filtered_categories,
        "filtered_subcategories": filtered_subcategories,
        "ads": ads,
    }

    return render(request, "listings/index.html", context)