Beispiel #1
0
def product_detail(request, category_slug, slug):
    product = get_object_or_404(Product, slug=slug)

    related_products = list(
        product.category.products.filter(parent=None).exclude(id=product.id))

    if len(related_products) >= 50:
        related_products = random.sample(related_products, 50)

    if product.parent:
        return redirect('product_detail',
                        category_slug=category_slug,
                        slug=product.parent.slug)

    imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % (
        product.thumbnail.url, product.image.url)

    for image in product.images.all():
        imagesstring = imagesstring + ("{'thumbnail': '%s', 'image': '%s'}," %
                                       (image.thumbnail.url, image.image.url))

    cart = Cart(request)

    if cart.has_product(product.id):
        product.in_cart = True
    else:
        product.in_cart = False

    context = {
        'product': product,
        'imagesstring': imagesstring,
        'related_products': related_products
    }

    return render(request, 'product_detail.html', context)
Beispiel #2
0
def product_detail(request, category_slug, slug):
    """
    Return details about a specific product according to a request
    Params:
        - category_slug:[String] A specific ID-like string for a specific category
        - slug: [String]  A specific ID-like string for a specific product
    Return:
        -[Render]: Return a product_detail.html containing information about a specific product
    """

    product = get_object_or_404(Product, slug=slug)
    product.num_visits += 1
    product.last_visit = datetime.now()
    product.save()

    # Add review
    if request.method == 'POST' and request.user.is_authenticated:
        stars = request.POST.get('stars', 3)
        content = request.POST.get('content', '')

        review = ProductReview.objects.create(product=product,
                                              user=request.user,
                                              stars=stars,
                                              content=content)

        return redirect('product_detail',
                        category_slug=category_slug,
                        slug=slug)
    #

    related_products = list(
        product.category.products.all().exclude(id=product.id))
    if (len(related_products) >= 3):
        related_products = random.sample(related_products, 3)

    imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % (
        product.thumbnail.url, product.image.url)

    # for image in product.images.all():
    # imagesstring += ("{'thumbnail': '%s', 'image': '%s'}," %(image.thumbnail.url, image.image.url))

    cart = Cart(request)
    if cart.has_product(product.id):
        product.in_cart = True
    else:
        product.in_cart = False

    owned_stores = utils.get_owned_stores(request)

    product_form = EditProductForm(instance=product, stores=owned_stores)

    context = {
        'product': product,
        'imagesstring': imagesstring,
        'related_products': related_products,
        'owned_stores': owned_stores,
        'product_form': product_form,
    }

    return render(request, 'product_detail.html', context)
Beispiel #3
0
def product_detail(request, category_slug, slug):
    product = get_object_or_404(Product, slug=slug)

    if product.parent:
        return redirect('product_detail',
                        category_slug=category_slug,
                        slug=product.parent.slug)

    imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % (
        product.thumbnail.url, product.image.url)

    for image in product.images.all():
        imagesstring = imagesstring + ("{'thumbnail': '%s', 'image': '%s'}," %
                                       (image.thumbnail.url, image.image.url))

    cart = Cart(request)

    if cart.has_product(product.id):
        product.in_cart = True
    else:
        product.in_cart = False

    context = {'product': product, 'imagesstring': imagesstring}

    return render(request, 'product_detail.html', context)
Beispiel #4
0
def product_detail(request, category_slug, slug):
    product = get_object_or_404(Product, slug=slug)
    product.num_visits = product.num_visits + 1
    product.last_visit = datetime.now()
    product.save()

    # Add review

    if request.method == 'POST' and request.user.is_authenticated:
        stars = request.POST.get('stars', 3)
        content = request.POST.get('content', '')

        review = ProductReview.objects.create(product=product,
                                              user=request.user,
                                              stars=stars,
                                              content=content)

        return redirect('product_detail',
                        category_slug=category_slug,
                        slug=slug)

    #

    related_products = list(
        product.category.products.filter(parent=None).exclude(id=product.id))

    if len(related_products) >= 3:
        related_products = random.sample(related_products, 3)

    if product.parent:
        return redirect('product_detail',
                        category_slug=category_slug,
                        slug=product.parent.slug)

    imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % (
        product.thumbnail.url, product.image.url)

    for image in product.images.all():
        imagesstring = imagesstring + ("{'thumbnail': '%s', 'image': '%s'}," %
                                       (image.thumbnail.url, image.image.url))

    cart = Cart(request)

    if cart.has_product(product.id):
        product.in_cart = True
    else:
        product.in_cart = False

    context = {
        'product': product,
        'imagesstring': imagesstring,
        'related_products': related_products
    }

    return render(request, 'product_detail.html', context)
Beispiel #5
0
def product_detail(request, category_slug, slug):
    product = get_object_or_404(Product, slug=slug) # Get product object
    # Increase number of visist for each visit & Update last visit
    product.num_visits += 1
    product.last_visit = datetime.now()
    product.save()                

    # Add review
    if request.method == 'POST':
        stars = request.POST.get('stars', 3)
        content = request.POST.get('content', '')
        review = ProductReview.objects.create(product=product, user=request.user, stars=stars, content=content) # Create review object
        return redirect('product_detail', category_slug=category_slug, slug=slug)

    # Get and Show related products
    related_products = list(product.category.products.filter(parent=None).exclude(id=product.id))
    # Testing 
    if len(related_products) >= 3:
        related_products = random.sample(related_products, 3)

    if product.parent:
        return redirect('product_detail', category_slug=category_slug, slug=product.parent.slug)
        # If product has parent (if product is variant) redirect to parent product

    imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % (product.get_thumbnail, product.image.url)
    for image in product.images.all():
        imagesstring += ("{'thumbnail': '%s', 'image': '%s'}," % (image.get_thumbnail, image.image.url))

    cart = Cart(request)
    if cart.has_product(product.id):
        product.in_cart = True
    else:
        product.in_cart = False

    context = {
        'product': product,
        'imagesstring': imagesstring,
        'related_products': related_products
    }
    return render(request, 'product_detail.html', context)
Beispiel #6
0
def product_detail(request, category_slug, slug):
    product = get_object_or_404(Product, slug=slug)

    # Add review

    if request.method == 'POST' and request.user.is_authenticated:
        stars = request.POST.get('stars', 5)
        content = request.POST.get('content', '')

        review = ProductReview.objects.create(product=product,
                                              user=request.user,
                                              stars=stars,
                                              content=content)

        return redirect('product_detail',
                        category_slug=category_slug,
                        slug=slug)
    #

    imagesstring = "{'thumbnail': '%s', 'image': '%s'}," % (
        product.thumbnail.url, product.image.url)

    for image in product.images.all():
        imagesstring = imagesstring + ("{'thumbnail': '%s', 'image': '%s'}," %
                                       (image.thumbnail.url, image.image.url))

    cart = Cart(request)

    if cart.has_product(product.id):
        product.in_cart = True
    else:
        product.in_cart = False

    context = {'product': product, 'imagesstring': imagesstring}

    return render(request, 'product_detail.html', context)