示例#1
0
文件: views.py 项目: jjacobson/Sahara
def update_item(request, pk):
    product = get_object_or_404(Product, pk=pk)
    user = product.seller
    if not user == request.user:
        return redirect('index')

    if request.method == "POST":
        form = ProductForm(request.POST, instance=product)
        if form.is_valid():
            updated_product = form.save(commit=False)
            updated_product.seller = request.user
            updated_product.save()
            return redirect('product', pk=updated_product.pk)
        else:
            print(request.POST)
    else:
        data = {
            'name': product.name,
            'price': product.price,
            "description": product.description,
            "height": product.height,
            "width": product.width,
            "depth": product.depth,
            "category": product.category
        }
        form = ProductForm(initial=data)

    return render(request, 'product/update-item.html', {
        'form': form,
        'product': product
    })
示例#2
0
def add_new_product(request):
    context = {}
    data = {}
    # if requets is post we need to store data to DB
    if request.method == 'POST':
        data = {}

        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            new_product = form.save(commit=False)
            if 'image_name' in request.POST:
                file_name = str(request.POST['image_name'])
                image_path = os.path.join(settings.MEDIA_ROOT, file_name)
                with open(image_path, 'rb') as file_data:
                    data['file_name'] = image_path
                    new_product.product_image.save(file_name,
                                                   file_data,
                                                   save=True)
            new_product.save()
            new_product.product_parts.set(
                form.cleaned_data.get("product_parts"))
        else:
            context['form'] = form
            return render(request, 'product/add_new_product.html', context)
    form = ProductForm()
    context = {'form': form, 'page_title': 'Leadstracer-add new product '}

    return render(request, 'product/add_new_product.html', context)
示例#3
0
def item(request, product_id):
    product = get_object_or_404(Product, id=product_id)
    if request.method == 'GET':
        form = ProductForm(instance=product, provider=product.provider)
        url_args = request.GET.urlencode()
    elif request.method == 'POST':
        data = request.POST.copy()
        url_args = data.pop('url_args')
        form = ProductForm(instance=product, data=data)
        if form.is_valid():
            if form.has_changed():
                orig_price = product.price
                product = form.save()
                if orig_price != product.price and product.has_expired():
                    product.expiry = datetime("31/12/%s" % datetime.now().year,
                                              "%d/%m/%Y")
                    product.save()

                info_msg(request, u"Produit modifié avec succès.")
            return redirect(reverse('product_index') + '?' + url_args[0])

    product_type = ContentType.objects.get_for_model(Product)
    return render(
        request, 'product/item.html', {
            'product': product,
            'product_type': product_type.id,
            'form': form,
            'url_args': url_args
        })
示例#4
0
def createproduct(request):
    product_form = ProductForm()
    if request.method == "POST":
        form = ProductForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('product:productlist'))
    return render(request, 'product/createview.html', {"form":product_form})
示例#5
0
def create(request):
    form = ProductForm(request.POST or None)
    if form.is_valid():
        post = form.save(commit=False)
        post.slug = slugify(post.name)
        post.save()
        form = ProductForm()

    return render(request, "form.html", {'form': form, 'name': "Produto"})
示例#6
0
def add(request):
    if request.method == 'POST':
        form = ProductForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/')
    else:
        form = ProductForm()

    return render(request, 'product/form.html', {'form': form})
示例#7
0
def add_view(request, *args, **kwargs):
    if request.method == 'POST':
        form = ProductForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            form = form.save(commit=False)
            form.company = request.user.seller_set.all().first()
            form.save()
            return redirect('seller:products')
    else:
        form = ProductForm()
    return render(request, 'sellers/add_product.html', {'form': form})
示例#8
0
def productedit(request, pk):
    product = Product.objects.get(id=pk)
    form = ProductForm(instance=product)
    if request.method == 'POST':
        form = ProductForm(request.POST, instance=product)
        if form.is_valid():
            form.save()
            return redirect('product')

    context = {'form': form, 'product': product}
    return render(request, 'edit.html', context)
示例#9
0
def product_creation(request):
    if request != 'POST':
        form = ProductForm()
    else:
        # post has been filled, ready for processing
        form = ProductForm(request.POST, request.FILES)

        if form.is_valid():
            form.save()

    context = {"form": form}
    return render(request, 'product/product_creation.html', context)
示例#10
0
def product(request):
    if request.method == "POST":
        form = ProductForm(request.POST)
        if form.is_valid():
            try:
                form.save()
                return redirect('/show')
            except:
                pass
    else:
        form = ProductForm()
    return render(request,'add_product.html',{'form':form})
示例#11
0
def add(request):
    if request.method == 'POST':
        form = ProductForm(request.POST)
        if form.is_valid():
            form.save()
            return render(request, 'product/goods-list.html', {'products': Product.objects.all()})
        else:
            pass
    else:
        form = ProductForm()
    content = {'form': form}
    return render(request, 'product/good-create.html', content)
示例#12
0
def productCreate(request):
    template = 'product/productCreateUpdate.html'
    if request.method == 'GET':
        return render(request, template, {'productForm': ProductForm()})

    # POST
    productForm = ProductForm(request.POST)
    if not productForm.is_valid():
        return render(request, template, {'productForm': productForm})

    productForm.save()
    messages.success(request, '產品已新增')
    return redirect('product:product')
示例#13
0
def product(request):
    if request.method == "POST":
        form = ProductForm(request.POST)
        if form.is_valid():
            try:
                form.save()
                return redirect('/show')
            except:
                pass

    form = ProductForm()
    csrfContext = RequestContext(request)
    return render(request, 'index_product.html', {'form': form}, csrfContext)
示例#14
0
def add_product(request):

    if request.method == 'POST':

        product_form = ProductForm(request.POST, request.FILES)
        if product_form.is_valid():
            product_form.save()
            return HttpResponseRedirect(reverse('product:add_product'))
        else:
            print(product_form.errors)
    else:
        product_form = ProductForm()
        return render(request, 'product/add_product.html',
                      {'product_form': product_form})
示例#15
0
def edit(request, id):
    product = Product.objects.get(id=id)
    if request.POST:
        form = ProductForm(request.POST, instance=product)
        if form.is_valid():
            post = form.save(commit=False)
            post.slug = slugify(post.name)
            post.save()
            return redirect(product.get_absolute_url())
    else:
        form = ProductForm(instance=product)
    request.session['product_id'] = id

    return render(request, "form.html", {'form': form, 'name': "Produto"})
示例#16
0
文件: views.py 项目: jjacobson/Sahara
def sell_item(request):
    if request.method == "POST":
        form = ProductForm(request.POST)
        if form.is_valid():
            product = form.save(commit=False)
            product.seller = request.user
            product.save()
            return redirect('product', pk=product.pk)
        else:
            print(form.errors)
            print(request.POST)
    else:
        form = ProductForm()
    return render(request, 'product/list-item.html', {'form': form})
示例#17
0
def productUpdate(request, productId):
    product = get_object_or_404(Product, id=productId)
    template = 'product/productCreateUpdate.html'
    if request.method == 'GET':
        productForm = ProductForm(instance=product)
        return render(request, template, {'productForm': productForm})

    # POST
    productForm = ProductForm(request.POST, instance=product)
    if not productForm.is_valid():
        return render(request, template, {'productForm': productForm})

    productForm.save()
    messages.success(request, '產品已修改')
    return redirect('product:productRead', productId=productId)
示例#18
0
def productpost(request):

    form = ProductForm()

    if request.method == "POST":
        form = ProductForm(request.POST, request.FILES)

        if form.is_valid():
            form.save(commit=True)
            return success(request)

        else:
            print("The Form Is Invalid")

    return render(request, 'product/postproduct.html', {'form': form})
示例#19
0
def product_create(request):
    """
    product 등록
    """
    if request.method == 'POST':
        form = ProductForm(request.POST)
        if form.is_valid():
            product = form.save(commit=False)
            product.save()
            return redirect('product:index')
    else:
        form = ProductForm()
    context = {'form': form}

    return render(request, 'product/product_register.html', context)
示例#20
0
def update(request, id):
    product = Product.objects.get(id=id)
    form = ProductForm(request.POST, instance=product)
    if form.is_valid():
        form.save()
        return redirect("/show")
    return render(request, 'edit.html', {'product': product})
示例#21
0
 def post(self, request):
     form = ProductForm(data=request.POST, files=request.FILES)
     if form.is_valid():
         form.save()
         return redirect('/manager/')
     else:
         return HttpResponse("Sai cu phap")
示例#22
0
def product_add(request):
    form = ProductForm(request.POST or None)
    if form.is_valid():
        form.save()
        return HttpResponseRedirect(reverse("product:product_list"))
    context = {"form": form}
    return render(request, "form.html", context)
示例#23
0
 def get(self, request):
     """Return add new product form."""
     form = ProductForm()
     return render(request, 'product/add-product.html', {
         'form': form,
         'func': 'Add'
     })
示例#24
0
def updateproduct(request, pk):
    msg = ""
    product = Product.objects.get(id=pk)
    if request.method == "POST":
        form = ProductForm(instance=product, data=request.POST)
        if form.is_valid():
            form.save()
            return redirect("/")
        else:
            msg = form._erorrs
    else:
        form = ProductForm(instance=product)
    return render(request, "product/product_form.html", {
        "form": form,
        "message": msg
    })
示例#25
0
 def post(self, request, variant_id):
     if request.is_ajax():
         data = request.POST
         if 'is_product_edited' in data and data['is_product_edited']:
             if not self.request.user.has_perm('product.change_product'):
                 return JsonResponse(
                     {'permission_denied': 'Permission denied'},
                     status=400,
                     safe=False)
             form = ProductForm(data)
             if form.is_valid():
                 cleaned_data = form.cleaned_data
                 Product.objects.update_product(data['id'], cleaned_data)
                 return JsonResponse("success", status=201, safe=False)
             else:
                 return JsonResponse(form.errors, status=400)
         elif 'is_variant_edited' in data and data['is_variant_edited']:
             if not self.request.user.has_perm(
                     'product.change_productvariant'):
                 return JsonResponse(
                     {'permission_denied': 'Permission denied'},
                     status=400,
                     safe=False)
             form = VariantForm(data)
             if form.is_valid():
                 cleaned_data = form.cleaned_data
                 ProductVariant.objects.update_variant(
                     variant_id, cleaned_data)
                 return JsonResponse("success", status=201, safe=False)
             else:
                 return JsonResponse(form.errors, status=400)
         else:
             if not self.request.user.has_perm(
                     'product.change_product'
             ) and self.request.user.has_perm(
                     'product.change_productvariant'):
                 return JsonResponse(
                     {'permission_denied': 'Permission denied'},
                     status=400,
                     safe=False)
             form = NewStockForm(data)
             if form.is_valid():
                 cleaned_data = form.cleaned_data
                 supplier = ProductVariant.objects.add_new_stock(
                     id=variant_id, form_data=cleaned_data)
                 date = datetime.strftime(supplier.date,
                                          '%d/%m/%Y %I:%M %p')
                 return JsonResponse(
                     {
                         'date': date,
                         'name': cleaned_data['supplier'].name,
                         'mobile_no': cleaned_data['supplier'].mobile_no,
                         'total_supplied': supplier.total_supplied,
                         'per_product_purchase_price':
                         supplier.per_product_purchase_price,
                         'address': cleaned_data['supplier'].address
                     },
                     status=201)
             else:
                 return JsonResponse(form.errors, status=400)
示例#26
0
def add():

    form = ProductForm()

    if form.validate_on_submit():
        file_name = str(time_stamp()) + secure_filename(
            form.image.data.filename)
        img_path = join(UPLOAD_DIR, file_name)

        product = Product(name=form.name.data,
                          price=form.price.data,
                          stock=form.stock.data,
                          description=form.description.data,
                          image=file_name,
                          type=form.type.data,
                          live=True)

        db.session.add(product)
        db.session.commit()
        form.image.data.save(img_path)

        return if_url_is_safe_redirect(
            url_for('admin_app.admin'),
            route_func_name_to_redirect_to='admin_app.add')
    return render_template('admin/add-product.html', admin=True, form=form)
示例#27
0
    def post(self, request, *args, **kwargs):
        category = Category.objects.all().order_by('order')

        a = AuctionForm(data=request.POST)
        p = ProductForm(data=request.POST, files=request.FILES)

        images = dict(request.FILES)

        if a.is_valid() and p.is_valid():
            auction = a.save(commit=False)
            product = p.save(commit=False)
            auction.owner = request.user
            auction.last_bet = auction.start_price
            auction.next_bet = auction.last_bet + decimal.Decimal(auction.start_price / 100 * auction.increment)

            auction.save()
            product.auction = auction
            product.save()

            for i in images:
                ImageModel.objects.create(image=images[i][0], product=product)

            return redirect('profile')

        return render(request, self.template_name, context={
            "category": category,
            "auctionform": a,
            "productform": p,

        })
示例#28
0
def addProductsInLineForm(request,context):
    form1 = ProductForm(request.POST or None)
    # form1 = CategoryForm()
    # if form1.is_valid():
    #     instance = form1.save(commit=False)
    #     instance.save()

    form2 = TaxForm(request.POST or None)
    # form1 = CategoryForm()
    # if form2.is_valid():
    #     instance = form2.save(commit=False)
    #     instance.save()

    form3 = BrandForm(request.POST or None)
    # form1 = CategoryForm()
    # if form3.is_valid():
    #     instance = form3.save(commit=False)
    #     instance.save()

    form4 = TaxSlabForm(request.POST or None)
    # form1 = CategoryForm()
    # if form4.is_valid():
    #     instance = form4.save(commit=False)
    #     instance.save()

    context['form1'] = form1
    context['form2'] = form2
    context['form3'] = form3
    context['form4'] = form4
示例#29
0
def product_modify(request, product_id):
    """
    product 수정
    """
    product = get_object_or_404(Product, pk=product_id)

    if request.method == 'POST':
        form = ProductForm(request.POST, instance=product)
        if form.is_valid():
            product = form.save(commit=False)
            product.save()
            return redirect('product:detail', product_id=product_id)
    else:
        form = ProductForm(instance=product)
    context = {'form': form}
    return render(request, 'product/product_register.html', context)
示例#30
0
def product_view(request):
    products = Product.objects.filter(user=request.user)
    # import ipdb; ipdb.set_trace()

    if request.method == 'POST':
        product_form = ProductForm(request.POST)
        if product_form.is_valid():
            product = product_form.save()
            product.user = request.user
            product.save()
            return HttpResponseRedirect('/product')
    else:
        product_form = ProductForm()

    context = {'product_form': product_form, 'products': products}
    return render(request, 'product.html', context)