def update_images_from_es(request): """ """ # First we delete all images Image.objects.all().delete() # sku, filename fh_images = open("%s/product_images.csv" % UPDATE_PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: # assign try: product = Product.objects.get(sku=row[0]) except ObjectDoesNotExist: pass else: filename = row[1] fh_image = open( os.path.join(UPDATE_PATH, "product_images", filename)) # create image cf = ContentFile(fh_image.read()) image = Image(title="Image 1") image.image.save(filename, cf) image.position = row[2] image.save() product.images.add(image) fh_image.close() return HttpResponse("")
def add_image(request, product_id): """Adds an image to product with passed product_id. """ product = lfs_get_object_or_404(Product, pk=product_id) if request.method == "POST": for file_content in request.FILES.getlist("file"): image = Image(content=product, title=file_content.name) try: image.image.save(file_content.name, file_content, save=True) except Exception, e: logger.info("Upload image: %s %s" % (file_content.name, e)) continue
def add_images(request): """ Adds a global images. """ if request.method == "POST": for file_content in request.FILES.getlist("file"): image = Image(title=file_content.name) try: image.image.save(file_content.name, file_content, save=True) except Exception, e: image.delete() logger.info("Upload of image failed: %s %s" % (file_content.name, e)) continue
def add_image(request, product_id): """Adds an image to product with passed product_id. """ product = lfs_get_object_or_404(Product, pk=product_id) if request.method == "POST": for file_content in request.FILES.values(): image = Image(content=product, title=file_content.name) image.image.save(file_content.name, file_content, save=True) # Refresh positions for i, image in enumerate(product.images.all()): image.position = i+1 image.save() product_changed.send(product, request=request) return HttpResponse(manage_images(request, product_id, as_string=True))
def add_images(request): """ Adds a global images. """ if request.method == "POST": for file_content in request.FILES.getlist("files[]"): image = Image(title=file_content.name) try: image.image.save(file_content.name, file_content, save=True) except Exception as e: image.delete() logger.info("Upload of image failed: %s %s" % (file_content.name, e)) continue result = json.dumps({ "name": file_content.name, "type": "image/jpeg", "size": "123456789" }) return HttpResponse(result, content_type='application/json')
def add_image(request, product_id): """Adds an image to product with passed product_id. """ product = lfs_get_object_or_404(Product, pk=product_id) if request.method == "POST": for file_content in request.FILES.getlist("files[]"): image = Image(content=product, title=file_content.name) try: image.image.save(file_content.name, file_content, save=True) except Exception as e: logger.info("Upload image: %s %s" % (file_content.name, e)) continue # Refresh positions for i, image in enumerate(product.images.all()): image.position = (i + 1) * 10 image.save() product_changed.send(product, request=request) result = json.dumps({"name": file_content.name, "type": "image/jpeg", "size": "123456789"}) return HttpResponse(result, content_type='application/json')
def products(amount=20): """ """ import lfs.core.utils from lfs.catalog.models import Category from lfs.catalog.models import Image from lfs.catalog.models import Product from lfs.core.models import Shop from lfs.catalog.models import Property from lfs.catalog.models import PropertyOption from lfs.shipping.models import ShippingMethod from lfs.criteria.models import CartPriceCriterion Image.objects.all().delete() Product.objects.all().delete() Category.objects.all().delete() PropertyOption.objects.all().delete() Property.objects.all().delete() # Images path = os.path.join(os.getcwd(), "parts/lfs/lfs/utils/data") fh = open(os.path.join(path, "image1.jpg")) cf_1 = ContentFile(fh.read()) fh = open(os.path.join(path, "image2.jpg")) cf_2 = ContentFile(fh.read()) fh = open(os.path.join(path, "image3.jpg")) cf_3 = ContentFile(fh.read()) image_1 = Image(title="Image 1") image_1.image.save("Laminat01.jpg", cf_1) image_1.save() image_2 = Image(title="Image 2") image_2.image.save("Laminat02.jpg", cf_2) image_2.save() image_3 = Image(title="Image 3") image_3.image.save("Laminat03.jpg", cf_3) image_3.save() # Properties property = Property(name="Color") property.save() property_option = PropertyOption(name="Yellow", property=property, price=1.0) property_option.save() property_option = PropertyOption(name="Red", property=property, price=2.0) property_option.save() property = Property(name="Size") property.save() property_option = PropertyOption(name="L", property=property, price=11.0) property_option.save() property_option = PropertyOption(name="M", property=property, price=12.0) property_option.save() shop = lfs.core.utils.get_default_shop() # Create categories category_1 = Category(name="Clothes", slug="clothes") category_1.save() category_2 = Category(name="Women", slug="women", parent=category_1) category_2.save() category_3 = Category(name="Pants", slug="pants-woman", parent=category_2) category_3.save() category_4 = Category(name="Dresses", slug="dresses", parent=category_2) category_4.save() category_5 = Category(name="Men", slug="men", parent=category_1) category_5.save() category_6 = Category(name="Pants", slug="pants-men", parent=category_5) category_6.save() category_7 = Category(name="Pullover", slug="pullover", parent=category_5) category_7.save() shop.categories = [ category_1, category_2, category_3, category_4, category_5, category_6, category_7 ] shop.save() # Create products for i in range(1, amount): p = Product(name="Rock-%s" % i, slug="rock-%s" % i, sku="rock-000%s" % i, price=i * 10) p.save() if i == 1: p.images.add(image_1) p.images.add(image_2) p.images.add(image_3) p.save() else: img = Image(title="Image 1", image="images/Laminat01.jpg") img.save() p.images.add(img) p.save() category_3.products.add(p) category_3.save() print "Rock-%s created" % i for i in range(1, amount): p = Product(name="Hemd-%s" % i, slug="hemd-%s" % i, sku="hemd-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat02.jpg") img.save() p.images.add(img) p.save() category_4.products.add(p) category_4.save() print "Hemd-%s created" % i for i in range(1, amount): p = Product(name="Pullover-%s" % i, slug="pullover-%s" % i, sku="pullover-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_6.products.add(p) category_6.save() print "Pullover-%s created" % i for i in range(1, amount): p = Product(name="Hose-%s" % i, slug="hose-%s" % i, sku="hose-000%s" % i, price=i * 10, active=True) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_7.products.add(p) category_7.save() print "Hose-%s created" % i
def import_easyshop(request): """Imports Categories, Products and Product Images from ES. """ Category.objects.all().delete() Product.objects.all().delete() Image.objects.all().delete() ##### Categories categories_fh = open("%s/categories/categories.csv" % PATH) reader = csv.reader(categories_fh, delimiter=";", quotechar="'") # to save uid -> id for later use categories = {} products = {} for row in reader: category = Category.objects.create(name=row[2], slug=slugify(row[1]), description=row[6]) # We map the new lfs category id with Plone's UID and save it. This is # later used to assign products, parent categories and images to the # category categories[row[0]] = category.id # Now as all categories exist we go through the categories again and assign # the parent category. categories_fh.seek(0) for row in reader: child_id = categories[row[0]] parent_id = categories.get(row[3]) category = Category.objects.get(pk=child_id) category.parent_id = parent_id category.save() ##### Category Images fh_images = open("%s/categories/images.csv" % PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: filename = row[1] fh_image = open(os.path.join("%s/categories" % PATH, filename)) cf = ContentFile(fh_image.read()) category_id = categories.get(row[0]) if category_id: category = Category.objects.get(pk=category_id) category.image.save(filename, cf) category.save() ##### Products products_fh = open("%s/products/products.csv" % PATH) reader = csv.reader(products_fh, delimiter=";", quotechar="'") for row in reader: try: price = float(row[6]) except: price = 0 print len(row[2]) product = Product.objects.create( name=row[2], slug=slugify(row[1]), sku=row[4], price=price, short_description=row[9], description=row[5], ) # We map the new lfs product id with Plone's UID and save it. This is # later used to assign images to the products products[row[0]] = product.id # Assign Categories for category_uid in row[7].split(","): category_id = categories.get(category_uid) if category_id: product.categories.add(category_id) product.save() ##### Product Image fh_images = open("%s/products/images.csv" % PATH) reader = csv.reader(fh_images, delimiter=";", quotechar="'") for row in reader: filename = row[1] fh_image = open(os.path.join("%s/products/" % PATH, filename)) cf = ContentFile(fh_image.read()) image = Image(title="Image 1") image.image.save(filename, cf) image.save() product_id = products.get(row[0]) if product_id: product = Product.objects.get(pk=product_id) product.images.add(image) fh_image.close() return HttpResponse(reader)
def products(request): """ """ amount = int(request.GET.get("amount", 20)) Image.objects.all().delete() Product.objects.all().delete() Category.objects.all().delete() Shop.objects.all().delete() PropertyOption.objects.all().delete() Property.objects.all().delete() # Images path = os.path.join(sys.path[0], "lfs/utils/data") fh = open(os.path.join(path, "image1.jpg")) cf_1 = ContentFile(fh.read()) fh = open(os.path.join(path, "image2.jpg")) cf_2 = ContentFile(fh.read()) fh = open(os.path.join(path, "image3.jpg")) cf_3 = ContentFile(fh.read()) image_1 = Image(title="Image 1") image_1.image.save("Laminat01.jpg", cf_1) image_1.save() image_2 = Image(title="Image 2") image_2.image.save("Laminat02.jpg", cf_2) image_2.save() image_3 = Image(title="Image 3") image_3.image.save("Laminat03.jpg", cf_3) image_3.save() # Properties property = Property(name="Color") property.save() property_option = PropertyOption(name="Yellow", property=property, price=1.0) property_option.save() property_option = PropertyOption(name="Red", property=property, price=2.0) property_option.save() property = Property(name="Size") property.save() property_option = PropertyOption(name="L", property=property, price=11.0) property_option.save() property_option = PropertyOption(name="M", property=property, price=12.0) property_option.save() # Create shop shop = Shop(name="Test", shop_owner="Test") shop.save() # Create categories category_1 = Category(name="Clothes", slug="clothes") category_1.save() category_2 = Category(name="Women", slug="women", parent=category_1) category_2.save() category_3 = Category(name="Pants", slug="pants-woman", parent=category_2) category_3.save() category_4 = Category(name="Dresses", slug="dresses", parent=category_2) category_4.save() category_5 = Category(name="Men", slug="men", parent=category_1) category_5.save() category_6 = Category(name="Pants", slug="pants-men", parent=category_5) category_6.save() category_7 = Category(name="Pullover", slug="pullover", parent=category_5) category_7.save() shop.categories = [ category_1, category_2, category_3, category_4, category_5, category_6, category_7 ] shop.save() # Create products for i in range(1, amount): p = Product(name="1-%s" % i, slug="1-%s" % i, price=i) p.save() if i == 1: p.images.add(image_1) p.images.add(image_2) p.images.add(image_3) p.save() else: img = Image(title="Image 1", image="images/Laminat01.jpg") img.save() p.images.add(img) p.save() category_3.products.add(p) category_3.save() print "1-%s created" % i for i in range(1, amount): p = Product(name="2-%s" % i, slug="2-%s" % i, price=i * 10) p.save() img = Image(title="Image 1", image="images/Laminat02.jpg") img.save() p.images.add(img) p.save() category_4.products.add(p) category_4.save() print "2-%s created" % i for i in range(1, amount): p = Product(name="3-%s" % i, slug="3-%s" % i, price=i * 100) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_6.products.add(p) category_6.save() print "3-%s created" % i for i in range(1, amount): p = Product(name="4-%s" % i, slug="4-%s" % i, price=i * 100) p.save() img = Image(title="Image 1", image="images/Laminat03.jpg") img.save() p.images.add(img) p.save() category_7.products.add(p) category_7.save() print "4-%s created" % i product = Product.objects.get(slug="1-1") return HttpResponseRedirect("/shops")