예제 #1
0
def manufacturer_changed_listener(sender, **kwargs):
    # filtered lists of products assigned to manufacturer used at manufacturer page
    cache.delete("%s-manufacturer-products-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, sender.slug))
    # list of all manufacturer products
    cache.delete("%s-manufacturer-all-products-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, sender.pk))
    # if manufacturer assignment was changed then product navigation might be different too
    invalidate_cache_group_id('product_navigation')
예제 #2
0
def manufacturer_changed_listener(sender, **kwargs):
    # filtered lists of products assigned to manufacturer used at manufacturer page
    cache.delete("%s-manufacturer-products-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, sender.slug))
    # list of all manufacturer products
    cache.delete("%s-manufacturer-all-products-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, sender.pk))
    # if manufacturer assignment was changed then product navigation might be different too
    invalidate_cache_group_id('product_navigation')
예제 #3
0
def update_product_cache(instance):
    # If the instance is a product with variant or a variant we have to
    # delete also the parent and all other variants
    if instance.is_variant():
        parent = instance.parent
    else:
        parent = instance

    # if product was changed then we have to clear all product_navigation caches
    invalidate_cache_group_id('product_navigation')
    cache.delete("%s-product-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.slug))
    cache.delete("%s-product-inline-True-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-inline-False-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-images-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-related-products-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-manage-properties-variants-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-categories-%s-False" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-categories-%s-True" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    if parent.manufacturer:
        cache.delete("%s-manufacturer-all-products-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.manufacturer.pk))
        cache.delete("%s-manufacturer-products-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.manufacturer.slug))

    try:
        c = cache.get("%s-shipping-delivery-time" % settings.CACHE_MIDDLEWARE_KEY_PREFIX)
        del c["%s-product-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.slug)]
        cache.set("%s-shipping-delivery-time" % settings.CACHE_MIDDLEWARE_KEY_PREFIX, c)
    except (KeyError, TypeError):
        pass

    for variant in parent.get_variants():
        cache.delete("%s-product-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.slug))
        cache.delete("%s-product-inline-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-images-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-related-products-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-categories-%s-False" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-categories-%s-True" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-shipping-%s" % (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.slug))
예제 #4
0
def update_product_cache(instance):
    # If the instance is a product with variant or a variant we have to
    # delete also the parent and all other variants
    if instance.is_variant():
        parent = instance.parent
    else:
        parent = instance

    # if product was changed then we have to clear all product_navigation caches
    invalidate_cache_group_id('product_navigation')
    cache.delete("%s-product-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.slug))
    cache.delete("%s-product-inline-True-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-inline-False-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-images-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-related-products-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-manage-properties-variants-%s" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-categories-%s-False" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    cache.delete("%s-product-categories-%s-True" %
                 (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.id))
    if parent.manufacturer:
        cache.delete(
            "%s-manufacturer-all-products-%s" %
            (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.manufacturer.pk))
        cache.delete(
            "%s-manufacturer-products-%s" %
            (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.manufacturer.slug))

    try:
        c = cache.get("%s-shipping-delivery-time" %
                      settings.CACHE_MIDDLEWARE_KEY_PREFIX)
        del c["%s-product-%s" %
              (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.slug)]
        cache.set(
            "%s-shipping-delivery-time" % settings.CACHE_MIDDLEWARE_KEY_PREFIX,
            c)
    except (KeyError, TypeError):
        pass

    for variant in parent.get_variants():
        cache.delete("%s-product-%s" %
                     (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-%s" %
                     (settings.CACHE_MIDDLEWARE_KEY_PREFIX, parent.slug))
        cache.delete("%s-product-inline-%s" %
                     (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-images-%s" %
                     (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-related-products-%s" %
                     (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-categories-%s-False" %
                     (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-categories-%s-True" %
                     (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.id))
        cache.delete("%s-product-shipping-%s" %
                     (settings.CACHE_MIDDLEWARE_KEY_PREFIX, variant.slug))