Example #1
0
File: views.py Project: potar/lfs
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("")
Example #2
0
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
Example #3
0
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
Example #4
0
File: images.py Project: potar/lfs
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))
Example #5
0
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')
Example #6
0
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')
Example #7
0
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
Example #8
0
File: views.py Project: potar/lfs
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)
Example #9
0
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")