Exemplo n.º 1
0
    def post(self, request, born):
        if born == 'phone':
            form = PhoneCreationForm(request.POST or None, request.FILES
                                     or None)
        elif born == 'accessory':
            form = AccessoryCreationForm(request.POST or None, request.FILES
                                         or None)
        else:
            raise PermissionDenied()
        formset = ProductImageFormset(request.POST or None, request.FILES
                                      or None)
        if form.is_valid() and formset.is_valid():
            product = form.save(commit=False)
            product.main_image = request.FILES['main_image']
            product.category = born
            product.save()
            print(formset.total_form_count())
            print(formset.initial_form_count())
            for f in formset:
                try:
                    image = ProductImage(product=product,
                                         image=f.cleaned_data['image'])
                    image.save()
                except KeyError as e:
                    break
                except Exception as e:
                    raise e

        return redirect('administrations:admin-products')
Exemplo n.º 2
0
def update_product(request, id):
    instance = get_object_or_404(Product, pk=id)
    id_list=[]
    if not request.user.is_superuser:
        return redirect('/products')
    if request.method == 'POST':
        form = ProductUpdateForm(data=request.POST,instance=instance)
        if form.is_valid():
            product = form.save()
            product_image = ProductImage(image=request.POST['image'], product=product)
            print('image',type(product_image))
            if len(product_image.image)>0:
                product_image.save()
            for x in ProductImage.objects.filter(product_id=id):
                id_list.append(x.id)
            if len(id_list)==3:
                min_id=min(id_list)

                old_image=get_object_or_404(ProductImage, pk=min_id)
                old_image.delete()
            return redirect('product_details', id=id)
    else:
        form = ProductUpdateForm(instance=instance)
    return render(request,'product/update_product.html',{
        'form': form,
        'id': id
    })
Exemplo n.º 3
0
def _upload(request):
    product_id = request.POST.get('product_id', None)
    product = get_object_or_404(Product, id=product_id)
    uploaded_file = request.FILES.get('file', None)
    chunk = request.POST.get('chunk', '0')
    chunks = request.POST.get('chunks', '0')
    name = request.POST.get('name', '')
    if not name :
        name = uploaded_file.name
    if uploaded_file:
        filepath = '%s/%s' % (settings.FILE_UPLOAD_TEMP_DIR, name)
        filepath = filepath.encode('utf-8')
        with open(filepath, ('wb' if chunk == '0' else 'ab')) as f:
            for content in uploaded_file.chunks():
                f.write(content)
    if int(chunk) + 1 >= int(chunks):
        f = open(filepath)
        image_file = ContentFile(f.read())
        f.close()
        image = ProductImage()
        image.product = product
        image.image.save(name, image_file, save=False)
        image.small_width = image.image['small'].width
        image.small_height = image.image['small'].height
        image.medium_width = image.image['medium'].width
        image.medium_height = image.image['medium'].height
        image.large_width = image.image['large'].width
        image.large_height = image.image['large'].height
        image.save()

        return JsonResponse({'success': True, 'image_id': image.id, 'image_url': image.image['small'].url })
    return JsonResponse({'success': True})
Exemplo n.º 4
0
def create_product(request):
    if request.method == 'POST':
        form = ProductCreateForm(data=request.POST)
        if form.is_valid():
            product = form.save()
            product_image = ProductImage(image=request.POST['image'],
                                         product=product)
            product_image.save()
            return redirect('product_index')
    else:
        form = ProductCreateForm()
    return render(request, 'product/create_product.html', {'form': form})
Exemplo n.º 5
0
def create_game(request):
    if request.method == "POST":
        form = ProductCreateForm(data=request.POST)
        if form.is_valid():
            product = form.save()
            product_image = ProductImage(image=request.POST['image'],
                                         product=product)
            product_image.save()
            return redirect('products/' + str(product.type_id))
    else:
        form = ProductCreateForm()
    return render(request, 'admin/create_game.html', {'form': form})
Exemplo n.º 6
0
def edit_product(request, id):
    instance = get_object_or_404(Product, pk=id)
    if request.method == 'POST':
        form = ProductUpdateForm(data=request.POST, instance=instance)
        if form.is_valid():
            product = form.save()
            product_image = ProductImage(image=request.POST['image'],
                                         product=product)
            if product_image.image is not '':
                product_image.save()
    else:
        form = ProductUpdateForm(instance=instance)
    return render(request, 'admin/edit_product.html', {'form': form, 'id': id})
Exemplo n.º 7
0
def create_product(request):
    if request.method == 'POST':
        form = ConsoleCreateForm(data=request.POST)
        if form.is_valid():
            console = form.save()
            console_image = ProductImage(image=request.POST['image'], console=console)
            console_image.save()
            return redirect('console-index')
    else:
        form = ConsoleCreateForm()
        return render(request, 'console/create_console.html', {
            'form': form
        })
Exemplo n.º 8
0
 def post(self, request):
     form = CreateProductForm(request.POST)
     formset = ImagesFormSet(request.POST, request.FILES, queryset=ProductImage.objects.none())
     if form.is_valid() and formset.is_valid():
         product = form.save()
         for form in formset.cleaned_data:
             image = form.get('image')
             if image is not None:
                 pic = ProductImage(product=product, image=image)
                 pic.save()
         return redirect(product.get_absolute_url())
     else:
         print(form.errors, formset.errors)
Exemplo n.º 9
0
def add_product(request):
    user = request.user

    # only verified sellers can add products
    if not hasattr(user, 'seller') or not user.seller.is_verified:
        messages.info(request, 'You must be a verified seller to add products!')
        return redirect('home')

    if request.method == 'POST':
        form = ProductCreationForm(request.POST, request.FILES)
        formset = VariantFormset(request.POST, request.FILES)

        if formset.is_valid() and form.is_valid():
            # tags = form.cleaned_data['tag_s']
            # print(tags)
            product = form.save(commit=False)
            product.seller = user.seller
            product.save()

            for file in request.FILES.getlist('images'):
                instance = ProductImage(
                    product=product,
                    image=file
                )
                instance.save()

            if product.has_variants:
                # has_variants => multiple saved
                for variant_form in formset:
                    variant = variant_form.save(commit=False)
                    variant.product = product
                    variant.save()

            else:
                variant = formset[0].save(commit=False)
                variant.product = product
                variant.save()

            return redirect('tags', product.pk)

    else:
        form = ProductCreationForm()
        qs = Variant.objects.none()
        formset = VariantFormset(queryset=qs)

    context = {
        'form': form,
        'formset': formset,
    }

    return render(request, 'product/add_product.html', context)
Exemplo n.º 10
0
def create_product(request):
    if not request.user.is_superuser:
        # Gaetud sett 404 sidu her og alstadar i svona
        return redirect('/products')
    if request.method == 'POST':
        form = ProductCreateForm(data=request.POST)
        if form.is_valid():
            product = form.save()
            product_image = ProductImage(image = request.POST['image'], product=product)
            product_image.save()
            return redirect('/products')
    else:
        form = ProductCreateForm(data=request.GET)
    return render(request, 'product/create_product.html', {
        'form': form
    })
Exemplo n.º 11
0
def add_product_image(request):
    uid = request.session.get('_auth_user_id')
    product_id = request.POST.get('product_id')
    try:
        product = Product.objects.get(pk=int(product_id))
        form = ProductImageForm(request.POST, request.FILES)
        if form.is_valid():
            json = []
            for image in request.FILES.values():
                instance = ProductImage(product_photo=image)
                instance.product = product
                instance.save()
                json.append(instance.get_detailed_json())
            return JsonResponse({'images': json})
        else:
            context = {'success': False}
    except ObjectDoesNotExist:
        context = {'success': False}
    return JsonResponse(context)
Exemplo n.º 12
0
 def post(self, request, pk):
     product = get_object_or_404(Product, pk=pk)
     form = CreateProductForm(instance=product, data=request.POST)
     formset = ImagesFormSet(request.POST, request.FILES, queryset=product.images.all())
     if form.is_valid() and formset.is_valid():
         product = form.save()
         print(formset.deleted_forms)
         for form in formset.cleaned_data:
             image = form.get('image')
             if image is not None and not ProductImage.objects.filter(product=product, image=image).exists():
                 pic = ProductImage(product=product, image=image)
                 pic.save()
         for form in formset.deleted_forms:
             print(form.cleaned_data)
             image = form.cleaned_data.get('id')
             if image is not None:
                 image.delete()
         return redirect(product.get_absolute_url())
     else:
         print(form.errors, formset.errors)
Exemplo n.º 13
0
def manage_images(request, pk):
    user = request.user
    try:
        product = Product.objects.get(pk=pk)
        images = product.productimage_set.all()
    except:
        return HttpResponseNotFound('Page not found')
    if not (hasattr(user, 'seller') and product.seller == user.seller):
        return HttpResponseNotAllowed('You are not allowed to view this page.')

    if request.method == 'POST':
        for file in request.FILES.getlist('images'):
            instance = ProductImage(
                product=product,
                image=file
            )
            instance.save()

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

    return render(request, 'product/manage_images.html', context)