Esempio n. 1
0
def saveProduct(request):
    if request.method == 'POST' and request.user.is_authenticated():
        productForm = ProductForm(request.POST, prefix='product')
        if productForm.is_valid():
            category_form = CategoryForm(data=request.POST, prefix='category')
            if category_form.is_valid():
                producto = saveProductData(request, productForm)
                imageForm = ImagesForm(request.POST,request.FILES, prefix='image')
                if imageForm.is_valid():
                    producto.save()
                    saveCategoryData(producto, category_form)
                    saveAlbumData(producto, request.user.id)
                    saveImages(request, producto.img)
                    puntos = Point.objects.get(action="new_product")
                    profile = request.user.profile
                    profile.quds = profile.quds + int(puntos.qty)
                    profile.save()
                else:
                    return HttpResponse("NO FILES")
                return HttpResponseRedirect("/products/" + str(producto.id))
            else:            
                return HttpResponse("CATEGORY FAIL")
        else:            
            return HttpResponse("INVALID PRODUCT")
    return HttpResponse("FAIL")
Esempio n. 2
0
def add_product(request, product_id=None):
    product = Product.objects.get(product_id=product_id)
    if request.method == "POST":
        productform = ProductForm(request.POST, instance=product)
        if productform.is_valid():
            product = productform.save()
            return HttpResponseRedirect(product.get_absolute_url())
    else:
        productform = ProductForm(instance=product)
    return render(request, "add_product.html", {"form": productform})
Esempio n. 3
0
def viewCreate(request):
    
    if request.POST: 
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/home/')
    else:
        form = ProductForm()
        
    c = {}
    c.update(csrf(request))
    c['form'] = form
    return render_to_response('createproduct.html', context_instance=RequestContext(request, c))
def add(request):
    if request.POST:
        form = ProductForm(request.POST)
        if form.is_valid():
            form.save()

            # If the save was successful, redirect to another page
            redirect_url = reverse('products:list')
            return HttpResponseRedirect(redirect_url)
    else:
        form = ProductForm()

    content = {'title': 'Add new product', 'form': form}
    context_instance = RequestContext(request)
    return render_to_response('products/form.html', content, context_instance)
Esempio n. 5
0
def viewUpdate(request, pk):
    id = pk
    if request.POST:
        products.objects.filter(id=id).delete()
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/home/')
    else:
        form = ProductForm()
        
    c = {}
    c.update(csrf(request))
    c['id'] = id
    c['form'] = form
    return render_to_response('update.html', context_instance=RequestContext(request, c))
Esempio n. 6
0
def home(request):
    recents = Product.objects.filter(image_url__isnull=False).order_by('-created')[:6]
    term = None
    if request.method == 'POST':
        productform = ProductForm(request.POST)
        if productform.is_valid():
            code = productform.cleaned_data['ASIN']
            asin = re.compile("^B\d{2}\w{7}|\d{9}(X|\d)$")
            if asin.match(code):
                product = amazon_utils.get_or_create_product(code)
            else:
                asin, term = amazon_utils.random_product(code)
                while not asin and not term:
                    time.sleep(1.5)
                    asin, term = amazon_utils.random_product()
                    

                product = amazon_utils.get_or_create_product(asin)
            ean = product.generate_barcode(type='ean13')
            upc = product.generate_barcode(type='upca')
            qrcode = product.generate_barcode(type='qrcode', text=False)
            return render_to_response('labels/generator_output.html', 
                                    {
                                     'product': product,
                                     'ean': ean,
                                     'upc': upc,
                                     'qrcode': qrcode,
                                     'search_term': term,
                                     
                                    },
                                    context_instance=RequestContext(request))
    
    else:
        productform = ProductForm()
    return render_to_response('labels/home.html',
                              {
                                  'product_form': productform,
                                  'recents': recents,
                              },
                              context_instance = RequestContext(request))
def add_or_edit(request, id=None):
    if id:
        product = get_object_or_404(Product, pk=id)
        action = "Edit "
    else:
        product = Product()
        action = "Add a new "

    if request.POST:
        form = ProductForm(request.POST, instance=product)
        if form.is_valid():
            form.save()

            # If the save was successful, redirect to another page
            redirect_url = reverse('products:list')
            return HttpResponseRedirect(redirect_url)
    else:
        form = ProductForm(instance=product)

    content = {'title': action + 'product', 'form': form}
    context_instance = RequestContext(request)
    return render_to_response('products/form.html', content, context_instance)
Esempio n. 8
0
def ManageCatalogView(request, shopid):
    if not request.user.groups.filter(name='shopadmin'):
        return HttpResponse("invalid group")
    template_name = "shops/manageCatalog.html"
    context = {}

    #check shop access perms
    try:
        shop = Shop.objects.get(id = shopid)
        if not shop.shop_admin.id == request.user.id:
            raise Exception
    except:
        return HttpResponse("The requested shop does not exist or is inaccessible for this current shopadmin.")

    product_form = None
    catalog_form = None

    context["shop"] = shop
    if request.method == 'POST':
        if request.GET.get("catalog_form") and int(request.GET.get("catalog_form")) == 2: #submitted
            print "catalog form submitted"
            catalog_form = ShopAdminCatalogForm(data=request.POST)
            if catalog_form.is_valid():
                catalog_item = catalog_form.save(commit = False)
                catalog_item.shop = shop
                catalog_item.save()
                print "catalog item saved"
                catalog_form = None
        elif request.GET.get("product_form") and int(request.GET.get("product_form")) == 2: #submitted
            print "product form submitted"
            product_form = ProductForm(data=request.POST)
            if product_form.is_valid():
                product_form.save()
                print "new product saved"
                product_form = None
    else:
        catalog_item_id_delete = request.GET.get("del")
        display_catalog_form = (request.GET.get("catalog_form"))
        display_product_form = (request.GET.get("product_form"))

        if catalog_item_id_delete:
            catalog_item = Catalog.objects.filter(id = catalog_item_id_delete)
            catalog_item.delete()
        if display_catalog_form:
            if int(display_catalog_form) == 1:
                catalog_form = ShopAdminCatalogForm()

        if display_product_form:
            if int(display_product_form) == 1:
                product_form = ProductForm()

        print catalog_item_id_delete
        print display_catalog_form
        print display_product_form

    context['catalog_form'] = catalog_form
    context['product_form'] = product_form

    #get list of shops owned
    catalog = shop.catalog_set.all()
    context['catalog'] = catalog

    #get list of shops owned
    shops = request.user.shop_set.all()
    context['shops'] = shops
    #shop ID part
    if shopid == None:
        shops = request.user.shop_set.all()
        if shops:
            shop = shops[0]
        else:
            shop = None
    #test that perms for specified shop exists
    else:
        try:
            shop = Shop.objects.get(id = shopid)
            if not shop.shop_admin.id == request.user.id:
                raise Exception
        except:
            return HttpResponse("The requested shop does not exist or is inaccessible for this current shopadmin.")

    context["shop"] = shop

    return render_to_response(template_name, context, context_instance=RequestContext(request))
Esempio n. 9
0
def my_calories_view(request):
    message = ""
    message_color = ""
    recommendation = ""
    recommendation_less_list = [
        "Spożywasz zbyt dużo kalorii",
        "Zalecamy przejście na jedzenie o niższej kaloryczności",
        "Zwróć uwagę na to, co jesz, zawiera za dużo kalorii"
    ]
    recommendation_normal_list = [
        "Spożywasz dostateczną ilość kalorii", "Doskonale przestrzegasz diety",
        "Czieszymy się że spożywasz odpowiednią liczbę kalorii"
    ]
    recommendation_more_list = [
        "Powinieneś jeść więcej wysokokalorycznych potraw",
        "Musisz spożywać więcej kalorii",
        "Zalecamy spożywanie większej ilości kalorii"
    ]
    daily_norm_min = 1700
    daily_norm_max = 2600
    user_calories = Calories.objects.filter(
        user=request.user).order_by("-date")
    product_form = ProductForm()
    calories_form = CaloriesForm()
    # Adding products to base
    if request.method == 'POST':
        product_form = ProductForm(request.POST)
        if product_form.is_valid():
            name = product_form.cleaned_data['name']
            caloric_content = product_form.cleaned_data['caloric_content']
            try:
                Product.objects.get(name=name.lower(),
                                    caloric_content=caloric_content)
                message = "Produkt już istnieje w bazie"
                message_color = "#FFF3CD"
            except ObjectDoesNotExist:
                Product.objects.create(name=name.lower(),
                                       caloric_content=caloric_content)
                message = "Produkt został dodany do bazy"
                message_color = "#D4EDDA"
        else:
            product_form = ProductForm()
    # Adding products to user list
    if request.method == 'POST':
        calories_form = CaloriesForm(request.POST)
        if calories_form.is_valid():
            product = calories_form.cleaned_data['product']
            weight = calories_form.cleaned_data['weight']
            product = product.lower()
            try:
                db_product = Product.objects.get(name=product)
                Calories.objects.create(user=request.user,
                                        product=db_product,
                                        weight=weight)
                message = "Produkt został dodany"
                message_color = "#D4EDDA"
            except ObjectDoesNotExist:
                message = "Produkt nie istnieje w bazie"
                message_color = "#F8D7DA"
        else:
            calories_form = CaloriesForm()

    today_min = datetime.datetime.combine(datetime.date.today(),
                                          datetime.time.min)
    today_max = datetime.datetime.combine(datetime.date.today(),
                                          datetime.time.max)
    try:
        today_calories = Calories.objects.filter(user=request.user,
                                                 date__range=(today_min,
                                                              today_max))
        today_calories_sum_dict = today_calories.aggregate(Sum('calories_sum'))
        try:
            today_calories_sum = int(
                today_calories_sum_dict.get("calories_sum__sum"))
        except TypeError:
            today_calories_sum = 0
        if today_calories_sum >= daily_norm_min and today_calories_sum <= daily_norm_max:
            recommendation = recommendation_message(recommendation_normal_list)
        elif today_calories_sum < daily_norm_min:
            recommendation = recommendation_message(recommendation_more_list)
        elif today_calories_sum > daily_norm_max:
            recommendation = recommendation_message(recommendation_less_list)
    except ObjectDoesNotExist:
        recommendation = ""
    context = {
        'product_form': product_form,
        'user_calories': user_calories,
        'calories_form': calories_form,
        'message': message,
        'message_color': message_color,
        'recommendation': recommendation
    }
    template = "users/user_calories.html"
    return render(request, template, context)
Esempio n. 10
0
 def test_rating_is_required(self):
     form = ProductForm({'rating': ''})
     self.assertFalse(form.is_valid())
Esempio n. 11
0
def edit_product(request, product_id):
    # Get the product with given product_id from the DB
    product = Product.objects.get(id=product_id)
    if request.method == 'GET':
        # Create an instance of ProductForm sending the product in the "instance"
        # parameter. This will initialize all the fields in the form with the
        # data from our product.
        product_form = ProductForm(instance=product)

        # Render the 'edit_product.html' template sending the product and the
        # product_form as context
        return render(request,
                      'edit_product.html',
                      context={
                          'product': product,
                          'product_form': product_form
                      })
    elif request.method == 'POST':
        # Create an instance of ProductForm sending the new data that come in
        # request.POST, and also the product inside the "instance" parameter
        product_form = ProductForm(request.POST, instance=product)
        if product_form.is_valid():
            # Create the product object while saving the form
            product = product_form.save()

            # Inside product_form.cleaned_data you will find the already
            # validated data for the product. Use the images urls there to
            # create a ProductImage object that are not already created in the DB.
            # The ones that didn't come in cleaned_data and are stored in the DB
            # should be deleted.

            new_images = []
            for i in range(3):
                image = product_form.cleaned_data['image_{}'.format(i + 1)]
                if image:
                    new_images.append(image)

            old_images = [
                image.url for image in product.productimage_set.all()
            ]

            images_to_delete = []
            for image in old_images:
                if image not in new_images:
                    images_to_delete.append(image)
            ProductImage.objects.filter(url__in=images_to_delete).delete()

            for image in new_images:
                if image not in old_images:
                    ProductImage.objects.create(product=product, url=image)
            # Redirect to 'products' view
            return redirect('products')

        # If form is not valid, re-render the 'create_product.html' sending the
        # product and the product_form as context
        return render(request,
                      'create_product.html',
                      context={
                          'product': product,
                          'product_form': product_form
                      })