def test_delete(self, timestamps):
        from product.models import Product
        from django_timetravel import timetravel, TimeTravelQuerySetError

        timestamps.set('before_create')

        Product.objects.bulk_create([Product(name='P1'),
                                     Product(name='P2'),
                                     Product(name='P3'),
                                     Product(name='P4')])

        timestamps.set('after_create')

        Product.objects.all().delete()

        timestamps.set('after_delete')

        with timetravel(timestamps.get('before_create')):
            assert len(Product.objects.all()) == 0

        with timetravel(timestamps.get('after_create')):
            qs = Product.objects.all()
            assert len(qs) == 4

        with timetravel(timestamps.get('after_delete')):
            assert len(Product.objects.all()) == 0

        with pytest.raises(TimeTravelQuerySetError):
            len(qs)
Exemplo n.º 2
0
    def setUp(self):
        '''
        Load test data from fixtures (categories_data, products_data),
        Create several (desk, pen, mouse), objects, created at real time
        for testing latest products page

        :return: categories and products objects
        '''
        call_command('loaddata',
                     'categories_data',
                     'products_data',
                     verbosity=0)
        desk = Product(name='Desk',
                       price='100',
                       slug='desk-3243',
                       category_id=1,
                       description='Good desk',
                       created_at=timezone.now())
        pen = Product(name='Pen',
                      price='100',
                      slug='pen-3243',
                      category_id=1,
                      description='Good pen',
                      created_at=timezone.now())
        mouse = Product(name='Mouse',
                        price='100',
                        slug='mouse-3243',
                        category_id=1,
                        description='Good mouse',
                        created_at=timezone.now())
        Product.objects.bulk_create([desk, pen, mouse])
        self.client = Client()
Exemplo n.º 3
0
def handle_uploaded_file(encoded_file):
    with codecs.open(encoded_file, mode='r', encoding='utf8') as csvfile:
        data = csv.DictReader(csvfile, delimiter=",")
        upload_data = list()
        for row in data:
            if len(upload_data) == 1000:
                Product.objects.bulk_create(upload_data, ignore_conflicts=True)
                upload_data = list()
                upload_data.append(Product(**row))
            else:
                upload_data.append(Product(**row))
        if upload_data:
            Product.objects.bulk_create(upload_data, ignore_conflicts=True)
Exemplo n.º 4
0
    def handle(self, *args, **options):
        try:
            products = []
            with open(settings.MODIFIED_CSV, newline="") as r:
                reader = csv.DictReader(r, delimiter=";")
                for row in reader:
                    product_data = {}
                    for field in PRODUCT_FIELDS:
                        if row[field].isdigit():
                            product_data[field] = Decimal(row[field])
                        elif field == "categories_tags":
                            if ":" in row[field]:
                                product_data["category"] = row[field].split(
                                    ",")[-1][3:]
                            else:
                                product_data["category"] = row[field].split(
                                    ",")[-1]
                        else:
                            product_data[field] = row[field]
                    products.append(Product(**product_data))
            Product.objects.bulk_create(products)
        except Exception as e:
            raise CommandError(f"Something went wrong.\n{e}")

        self.stdout.write(
            self.style.SUCCESS(
                "Successfully imported data from CSV to database."))
Exemplo n.º 5
0
def product_auction_create(request):

    if request.method == 'POST':
        data = JSONParser().parse(request)

        name = data['name']
        price = data['price']
        price_step = data['price_step']
        userId = data['userId']
        organizationId = data['organizationId']
        categoryId = data['categoryId']
        exp_time = data['exp_time']
        info = data['info']

        newProduct = Product(name=name,
                             detail=info,
                             price=price,
                             auction=1,
                             owner_id=userId,
                             organization_id=organizationId,
                             category_id=categoryId,
                             created_time=datetime.now())
        newProduct.save()

        serializerNewProduct = ProductSerializer(newProduct)

        newAuction = Auction(exp_time=datetime.fromtimestamp(float(exp_time)),
                             lastest_price=price,
                             price_step=price_step,
                             product_id=newProduct.pk)
        newAuction.save()

        return JsonResponse(serializerNewProduct.data, status=201)
Exemplo n.º 6
0
    def handle(self, *args, **options):
        p = Product.objects.all()
        p.delete()

        c = Category.objects.all()
        c.delete()

        categories = [
            {'name': 'Сливочное'},
            {'name': 'Щербет'},
            {'name': 'Фруктовый лёд'},
            {'name': 'Мелорин'}
        ]
        for item in categories:
            item = Category(**item)
            item.save()

        products = [
            {'name': 'Сливочное с апельсиновым джемом и цитрусовой стружкой', 'price': 310, 'photo': 'products/item_1.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочно-кофейное с кусочками шоколада', 'price': 380, 'photo': 'products/item_2.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочно-клубничное с присыпкой из белого шоколада', 'price': 355, 'photo': 'products/item_3.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочное крем-брюле с карамельной подливкой', 'price': 415, 'photo': 'products/item_4.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочное с брусничным джемом', 'price': 325, 'photo': 'products/item_5.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочно-черничное с цельными ягодами черники', 'price': 410, 'photo': 'products/item_6.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочно-лимонное с карамельной присыпкой', 'price': 375, 'photo': 'products/item_7.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочное с шоколадной стружкой', 'price': 320, 'photo': 'products/item_8.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочно ванильное с кусочками шоколада', 'price': 440, 'photo': 'products/item_9.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочное с ментоловым сиропом', 'price': 435, 'photo': 'products/item_10.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочное с кусочками черного шоколада', 'price': 355, 'photo': 'products/item_11.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
            {'name': 'Сливочное с мятным сиропом', 'price': 420, 'photo': 'products/item_12.jpg', 'category_id': Category.objects.get(name='Сливочное'), 'is_hit': 0, 'is_new': 1},
        ]
        for item in products:
            item = Product(**item)
            item.save()
Exemplo n.º 7
0
def addcontent(request):
    if request.method == 'POST':  # form post edildiyse
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Product()
            data.user_id = current_user.id
            data.category = form.cleaned_data['category']
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.price = form.cleaned_data['price']
            data.amount = form.cleaned_data['amount']
            data.detail = form.cleaned_data['detail']
            data.slug = form.cleaned_data['slug']
            data.status = 'False'
            data.save()
            messages.success(request, "Your Content Inserted successfully.")
            return HttpResponseRedirect('/user/contents')
        else:
            messages.success(request,
                             "Content Form error :" + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')
    else:
        category = Category.objects.all()
        form = ContentForm()
        context = {
            'form': form,
            'category': category,
        }
        return render(request, 'user_addcontent.html', context)
Exemplo n.º 8
0
def addcontent(request):
    if request.method == 'POST':
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Product()
            data.user_id = current_user.id
            data.category = form.cleaned_data['category']
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.Yazar = form.cleaned_data['Yazar']
            data.price = form.cleaned_data['price']
            data.amount = form.cleaned_data['amount']
            data.detail = form.cleaned_data['detail']
            data.slug = form.cleaned_data['slug']
            data.status = 'False'
            data.save()
            messages.success(request, 'Admine Gönderildi onay bekleniyor')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.warning(request, 'Hata var :    ' + str(form.errors))
            return HttpResponseRedirect('/')
    else:
        category = Category.objects.all()
        menu = Menu.objects.all()
        form = ProductForm()
        context = {
            'category': category,
            'form': form,
            'menu': menu,
        }
        return render(request, 'user_addcontent.html', context)
Exemplo n.º 9
0
def user_newproduct(request):
    current_user = request.user
    if request.method == 'POST':  # Form post edildiyse
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            data = Product()  # model ile bağlantı kur
            data.category = form.cleaned_data['category']  # formdan bilgiyi al
            data.user = current_user
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.price = form.cleaned_data['price']
            data.image = form.cleaned_data['image']
            data.amount = form.cleaned_data['amount']
            data.detail = form.cleaned_data['detail']
            data.slug = form.cleaned_data['slug']
            data.ip = request.META.get('REMOTE_ADDR')
            data.save()  # veritabanına kaydet
            messages.success(request, "Ürününüz başarı ile gönderilmiştir.")
            return HttpResponseRedirect('/user/products')
        else:
            messages.warning(request, "Hata:" + str(form.errors))
            return HttpResponseRedirect('/user/products')

    category = Category.objects.all()
    form = ProductForm()
    context = {'form': form, 'category': category, }
    return render(request, 'user_newproduct.html', context)
Exemplo n.º 10
0
 def bar(self, request):
     bar_code = self.request.query_params.get('bar', '')
     if not bar_code:
         return HttpResponseBadRequest('No bar code in get parameters')
     products = Product.objects.filter(bar_code=bar_code)
     if products:
         return Response(ProductSerializer(instance=products[0]).data)
     else:
         url = 'http://goodsmatrix.ru/goods/d/' + bar_code + '.html'
         resp = requests.get(url)
         soup = BeautifulSoup(resp.text)
         if soup.find(id='ctl00_ContentPH_GoodsName'):
             name = soup.find(id='ctl00_ContentPH_GoodsName').text
             description = soup.find(id='ctl00_ContentPH_Comment').text
             composition = soup.find(id='ctl00_ContentPH_Composition').text
             image_url = 'http://goodsmatrix.ru/BigImages/' + bar_code + '.jpg'
             img = requests.get(image_url)
             path = join(settings.MEDIA_ROOT, 'big_images', bar_code + '.jpg')
             with open('/tmp/food_debug', 'w') as outp:
                 outp.write(path)
             with open(path, 'wb') as img_file:
                 img_file.write(img.content)
             product = Product(name=name, bar_code=bar_code, description=description, composition=composition)
             product.image.name = path
             product.save()
             return Response(ProductSerializer(instance=product).data)
         else:
             return HttpResponseBadRequest('No such bar code in database')
Exemplo n.º 11
0
def add_product(request, vendor_id):
    if request.method == 'POST':

        vendor = get_object_or_404(Vendor, pk=vendor_id)

        # try:
        # product_form = AddProductForm(request.POST, request.FILES)
        # product_form.category = Category.objects.get(title__contains=request.POST['category']).id
        # print(request.FILES)
        myfile = request.FILES['mainPic']
        fs = FileSystemStorage(location=_get_image_filename())

        filename = fs.save(myfile.name, myfile)
        uploaded_file_url = fs.url(filename)

        p = Product(
            title=request.POST['title'],
            description=request.POST['description'],
            itemCount=request.POST['itemCount'],
            category=Category.objects.get(title__contains=request.POST['category']),
            price=request.POST['price'],
            mainPic=_get_image_filename() + uploaded_file_url,
            weight=request.POST['weight']
        )
        p.save()
        product_vendor = ProductVendor(vendor=vendor, product=p)
        product_vendor.save()
        return HttpResponseRedirect(reverse('vendors:vendor_profile', args=(vendor_id,)))
Exemplo n.º 12
0
def addcontent(request):
    if request.method == 'POST':
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Product()
            data.user_id = current_user.id
            data.title = form.cleaned_data['title']
            data.category = form.cleaned_data['category']
            data.price = form.cleaned_data['price']
            data.amount = form.cleaned_data['amount']
            data.detail = form.cleaned_data['detail']
            data.image = form.cleaned_data['image']
            data.slug = form.cleaned_data['slug']

            data.save()
            messages.success(request, 'Success')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.success(request, 'Error : ' + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')

    else:
        category = Category.objects.all()
        menu = Menu.objects.all()
        form = ProductForm()
        context = {
            'menu': menu,
            'category': category,
            'form': form,
        }
        return render(request, 'user_addcontent.html', context)
    def post(self, request):  # 장바구니 등록
        try:
            data = json.loads(request.body)
            user = request.user

            if ShoppingBasket.objects.filter(
                    user=user.id, product=data['product_id']).exists():
                item = ShoppingBasket.objects.get(user=user.id,
                                                  product=data['product_id'])
                item.quantity += data['quantity']
                item.save()
            else:
                ShoppingBasket.objects.create(
                    quantity=data['quantity'],
                    user=User(id=user.id),
                    product=Product(id=data['product_id']),
                )

            return JsonResponse({'message': 'SUCCESS'}, status=200)

        except KeyError as ex:
            return JsonResponse({'message': 'KEY_ERROR_' + ex.args[0]},
                                status=400)
        except Exception as ex:
            return JsonResponse({'message': 'ERROR_' + ex.args[0]}, status=400)
Exemplo n.º 14
0
    def save_product(self, product):
        """ Save product """
        try:
            data = Product(
                name=product["product_name"],
                url=product["url"],
                nutriscore=product["nutrition_grade"],
                category_id=Category.objects.get(name=self.category),
                photo=product["image_url"],
                salt_100g=product["salt_100g"],
                sugars_100g=product["sugars_100g"],
                fat_100g=product["fat_100g"],
                saturate_fat_100g=product["saturated_fat_100g"],
                level_salt=Level.objects.get(name=product["level_salt"]),
                level_sugars=Level.objects.get(name=product["level_sugars"]),
                level_saturate_fat=Level.objects.get(
                    name=product["level_saturated"]),
                level_fat=Level.objects.get(name=product["level_fat"]),
            )
            data.save()
            if STDOUT:
                self.stdout.write(
                    self.style.SUCCESS('Product saved : "%s"' %
                                       product["product_name"]))

        except IntegrityError:
            if STDOUT:
                self.stdout.write(
                    self.style.WARNING('WARNING : "%s", IntegrityError' %
                                       product["product_name"]))
Exemplo n.º 15
0
    def setUp(self):
        user = User(id=1,
                    name='김철수',
                    identifier='wldus123',
                    password=bcrypt.hashpw('1q2w3e4r!'.encode('utf-8'),
                                           bcrypt.gensalt()).decode('utf-8'),
                    birthdate='1994-08-01',
                    gender='남자',
                    phone_number='01012345678').save()

        product = Product(
            id=1,
            korean_name='화장품',
            price='4000000',
        ).save()

        Review(
            id=1,
            user_id=1,
            product_id=1,
            skin_type='지성',
            rating=5,
            comment='좋아요',
            review_image='http://www.abc.com.png',
        ).save()
Exemplo n.º 16
0
    def setUp(self):
        self.discount_1 = Discount(name="2-for-1")
        self.discount_1.save()
        self.discount_2 = Discount(name="3 or more")
        self.discount_2.save()

        self.product_1 = Product(code="TEST1", name="Test 1", price=10, discount=self.discount_1)
        self.product_1.save()
        self.product_2 = Product(code="TEST2", name="Test 2", price=10, discount=self.discount_2)
        self.product_2.save()

        self.order_1 = Order(quantity=5, product=self.product_1)
        self.order_2 = Order(quantity=5, product=self.product_2)

        self.total_1 = 30
        self.total_2 = 45
Exemplo n.º 17
0
def product_create(request):
    if request.method == 'POST':
        data = JSONParser().parse(request)

        name = data['name']
        price = data['price']
        userId = data['userId']
        organizationId = data['organizationId']
        categoryId = data['categoryId']
        quantity = data['quantity']
        info = data['info']

        newProduct = Product(name=name,
                             detail=info,
                             price=price,
                             quantity=quantity,
                             auction=0,
                             owner_id=userId,
                             organization_id=organizationId,
                             category_id=categoryId,
                             created_time=datetime.now())
        newProduct.save()

        serializerNewProduct = ProductSerializer(newProduct)

        return JsonResponse(serializerNewProduct.data, status=201)
Exemplo n.º 18
0
def product_post(request):
    if request.user.has_perm('accounts.admin'):
        if request.method == 'POST':
            form = ProductPostForm(request.POST, request.FILES)
            try:
                if form.is_valid():
                    product = Product()
                    product.category = Category.objects.get(
                        id=request.POST['category'])
                    product.name = request.POST['name']
                    product.image = request.FILES['image']
                    product.price = request.POST['price']
                    product.count = request.POST['count']
                    product.save()
            except KeyError:
                pass
        else:
            form = ProductPostForm(None)

        product = Product.objects.all()
        category = Category.objects.all()
        return TemplateResponse(
            request, 'product/product_post.html', {
                'form': form,
                'product': product,
                'propro': propro,
                'category': category
            })
    else:
        return TemplateResponse(request, 'top/toppage.html')
Exemplo n.º 19
0
def product_create_attribute(request):
    if request.method == 'POST':
        data = JSONParser().parse(request)

        name = data['name']
        price = data['price']
        sellerId = data['sellerId']
        organizationId = data['organizationId']
        categoryId = data['categoryId']
        # quantity = sum()
        attributes = data['attributes']
        info = data['info']

        newProduct = Product(name=name,
                             detail=info,
                             price=price,
                             auction=0,
                             owner_id=sellerId,
                             organization_id=organizationId,
                             category_id=categoryId,
                             created_time=datetime.now())
        newProduct.save()

        for attribute in attributes['values']:
            newAttribute = ProductAttribute(name=attributes['name'],
                                            product_id=newProduct.id,
                                            quantity=attribute['quantity'],
                                            value=attribute['value'])
            newAttribute.save()

        serializerNewProduct = ProductSerializer(newProduct)

        return JsonResponse(serializerNewProduct.data, status=201)
Exemplo n.º 20
0
def addorder(request):
    if request.method == 'POST':
        form = ImportOrderForms(request.POST, request.FILES)
        fileform = ExcelFileForm(request.POST, request.FILES)
        if fileform.is_valid() and form.is_valid():
            order = form.save(commit=False)
            from product.models import Product
            f = request.FILES.get('excelfile')
            if f:
                data = xlrd.open_workbook(file_contents=f.read())
                # table = data.sheet_by_name(by_name)
                table = data.sheets()[0]
                nrows = table.nrows  # 行数
                colnames = table.row_values(0)  # 表头列名称数据
                list = []
                for rownum in range(1, nrows):
                    row = table.row_values(rownum)
                    if row:
                        for i in range(len(colnames)):
                            if isinstance(row[i], float):
                                row[i] = Decimal(row[i])
                            else:
                                row[i] = str(row[i])
                    if not Product.objects.filter(block_num=row[0]):
                        list.append(Product(block_num=row[0], weight=row[5], long=row[1], width=row[2],
                                            high=row[3], m3=row[4], batch_id=1, import_order=order))
                Product.objects.bulk_create(list)
                form.save()
                return redirect(order)
    else:
        form = ImportOrderForms()
        fileform = ExcelFileForm()
    return render(request, 'purchase/addorder.html', locals())
Exemplo n.º 21
0
    def add_view(self, request):
        # form = ProductForm()
        # context = {
        #     'form': form,
        # }
        if request.POST:
            # form = ProductForm(request.POST)
            instance2 = Product()
            instance2.title = request.POST.get('title')
            instance2.model = request.POST.get('model')
            instance2.category_id = request.POST.get('category_id')
            instance2.ownername = request.POST.get('ownername')
            current_user = request.user
            instance2.user_id = request.user.id
            instance2.charge_perhour = request.POST.get('charge_perhour')
            instance2.charge_perday = request.POST.get('charge_perday')
            instance2.charge_perweek = request.POST.get('charge_perweek')
            instance2.is_deleted = 'y'
            instance2.is_active = 'y'
            instance2.i_by = request.user.id
            instance2.u_by = request.user.id




            # context = {
            #     'form': form,
            # }
            if request.POST.get('cont'):
                return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
            else:
                return redirect('/admin/product/product/')
        return render(request, 'admin/product/productadd.html')
Exemplo n.º 22
0
    def handle(self, *args, **options):
        data_file_name = options['data_file_name']
        with open(data_file_name, 'r') as f:
            data = json.loads(f.read())

        save_product_number = 0
        exists_product_number = 0

        for product in data:
            if self.check_exist(product):
                exists_product_number += 1
                print(product["name"], 'with', product["size"],
                      'already exists.')
            else:
                new_product = Product(
                    category=product["category"],
                    name=product["name"],
                    fixed_price=product["fixed_price"],
                    discounted_price=product["discounted_price"],
                    pic_name=product["pic_name"],
                    size=product["size"],
                    subcategory=product["subcategory"],
                    category_3=product["category_3"],
                    category_4=product["category_4"])
                new_product.save()
                save_product_number += 1
                print(product["name"], 'with', product["size"], 'saved.')
        print('Successfully saved ', save_product_number, '. Already Exists ',
              exists_product_number)
Exemplo n.º 23
0
    def test_should_return_200_when_product_without_company(self):
        p = Product(code=5900049011829)
        p.name = "test-product"
        p.save()

        response = self.json_request(self.url + "?device_id=TEST-DEVICE-ID&code=" + str(p.code))
        self.assertEqual(200, response.status_code, response.content)
Exemplo n.º 24
0
def run():
    fhand = open('data.csv')
    reader = csv.reader(fhand)

    Product.objects.all().delete()

    bulk_list = []
    for row in reader:
        print(row)

        p1 = row[0]
        p2 = row[1]
        p3 = row[2]
        p4 = row[3]
        p5 = row[4]
        p6 = row[5]
        p7 = row[6]
        p8 = row[7]
        p9 = row[8]

        bulk_list.append(
            Product(name=p1,
                    alergy=p2,
                    nutrition1=p3,
                    nutrition2=p4,
                    nutrition3=p5,
                    nutrition4=p6,
                    nutrition5=p7,
                    nutrition6=p8,
                    img_thumb=p9))
    print(bulk_list)
Exemplo n.º 25
0
    def post(self, request):
        """
        상품을 등록합니다
        """
        data = json.loads(request.body)
        user = request.user
        if User.objects.filter(username=user).exists():
            if user.level == 'admin':

                try:
                    if Product.objects.filter(name=data['name']).exists():
                        return JsonResponse({"message": "이미 등록된 상품입니다"}, status=400)

                    new_product = Product(
                        name=data['name'],
                        manufacturer=data['manufacturer'],
                        stock=data['stock'],
                        unit_price=data['unit_price'],
                        expiration_date=data['expiration_date']

                    )
                    new_product.save()
                    return JsonResponse({"error": "상품이 등록되었습니다"}, status=200)
                except IntegrityError:
                    return JsonResponse({"error": "이미 존재하는 정보"}, status=401)

                except KeyError:
                    return JsonResponse({'error': '올바르지 않은 키 값'}, status=401)
        return JsonResponse({"message": "제한된 서비스"}, status=401)
Exemplo n.º 26
0
    def setUp(self):
        """ Config """

        data = Level(name="high")
        data.save()
        data = Level(name="moderate")
        data.save()
        data = Level(name="low")
        data.save()

        data = Category(name="Boissons")
        data.save()

        data = Product(name="Thé au jasmin",
                       url="https://the-jasmin.fr",
                       nutriscore="a",
                       category_id=Category.objects.get(name="Boissons"),
                       photo="https://the-jasmin.fr/photo.jpg",
                       salt_100g=1.00,
                       sugars_100g=2.10,
                       fat_100g=3.78,
                       saturate_fat_100g=11.22,
                       level_salt=Level.objects.get(name="low"),
                       level_sugars=Level.objects.get(name="low"),
                       level_saturate_fat=Level.objects.get(name="high"),
                       level_fat=Level.objects.get(name="high"),
                       code="10012020",
                       last_modified_t="1000")
        data.save()
Exemplo n.º 27
0
    def test_internal_code(self):
        prefix = "000"
        current_ean = prefix + TEST_EAN13[3:]
        product = Product(code=current_ean)

        with mock.patch("pola.logic.get_by_code", return_value=product):
            response = get_result_from_code(current_ean)

        expected_response = (
            {
                "altText":
                ('Zeskanowany kod jest wewnętrznym kodem sieci handlowej. Pola nie '
                 'potrafi powiedzieć o nim nic więcej'),
                "card_type":
                "type_white",
                "code":
                current_ean,
                "name":
                'Kod wewnętrzny',
                "plCapital":
                None,
                "plCapital_notes":
                None,
                "plNotGlobEnt":
                None,
                "plNotGlobEnt_notes":
                None,
                "plRegistered":
                None,
                "plRegistered_notes":
                None,
                "plRnD":
                None,
                "plRnD_notes":
                None,
                "plScore":
                None,
                "plWorkers":
                None,
                "plWorkers_notes":
                None,
                "product_id":
                None,
                "report_button_text":
                "Zgłoś",
                "report_button_type":
                "type_white",
                "report_text":
                'Zgłoś jeśli posiadasz bardziej aktualne dane na temat tego produktu',
            },
            {
                "was_590": False,
                "was_plScore": False,
                "was_verified": False
            },
            product,
        )
        self.maxDiff = None
        self.assertEqual(expected_response[0], response[0])
        self.assertEqual(expected_response, response)
Exemplo n.º 28
0
    def setUp(self):
        User(id=1,
             name='김철수',
             identifier='wldus123',
             password=bcrypt.hashpw('1q2w3e4r!'.encode('utf-8'),
                                    bcrypt.gensalt()).decode('utf-8'),
             birthdate='1994-08-01',
             gender='남자',
             phone_number='01012345678').save()

        Product(
            id=1,
            korean_name='화장품',
            price='4000000',
        ).save()

        Order(
            id=1,
            user=User.objects.get(id=1),
        ).save()

        OrderItem(
            id=1,
            order=Order.objects.get(id=1),
            product=Product.objects.get(id=1),
            quantity=1,
        ).save()

        Image(
            id=1,
            image_url="https://www.abc.com.png",
            product=Product.objects.get(id=1),
        ).save()
Exemplo n.º 29
0
 def form_valid(self, form):
     product = Product(name=form.data.get('name'),
                       price=form.data.get('price'),
                       description=form.data.get('description'),
                       stock=form.data.get('stock'))
     product.save()
     return super().form_valid(form)
Exemplo n.º 30
0
def import_ws_product_detail(re_notice):
    msg = ''
    success_ids = []
    for j in re_notice:

        p = Product.objects.filter(choies_sku=re_notice[j]['model']).first()
        if p:
            continue
            pass
        else:
            try:
                product = Product()
                product.category_id = re_notice[j]['category']
                product.name = re_notice[j]['name']
                product.cn_name = re_notice[j]['cn_name']
                product.cost = re_notice[j]['cost']
                product.manager_id = 1
                product.choies_sku = re_notice[j]['model']
                product.weight = re_notice[j]['weight']
                product.description = re_notice[j]['size']
                product.choies_supplier_name = re_notice[j]['supplier_name']
                product.choies_site_url = re_notice[j]['site_url']
                product.price = re_notice[j]['other']
                product.save()
                success_ids.append(product.id)

                supplier = Supplier.objects.filter(
                    deleted=False, name=re_notice[j]['supplier_name']).first()
                if not supplier:
                    supplier = Supplier.objects.create(
                        name=re_notice[j]['supplier_name'])

            except Exception, e:
                msg += "失败创建product:%s%s%s |" % (
                    re_notice[j]['model'], re_notice[j]['category'], str(e))