Пример #1
0
def get_menu_items_by_product_ids(request, product_ids, tags_retailer):
    data = utils.get_categories_by_id(request, product_ids)
    c1_categories = data['c1_categories']
    category_ids = data['category_ids']
    menu_items = []
    prod_ids = "(" + (" OR ").join(product_ids) + ")"
    brand_ids = []
    parent_children_map = get_categorygraph_mapping(request)

    for c1_category in c1_categories:
        children_cats = []
        if c1_category in parent_children_map:
            categories = parent_children_map[c1_category]
            for category in categories:
                if category.id in category_ids:
                    children_cats.append(category)
        if not children_cats:
            continue
        query = "category_id:%s AND id:%s" % (c1_category.id, prod_ids)
        brand_retailer_ctxt = get_brands_retailers_by_query(
            request, query, tags_retailer)
        for brand_id in brand_retailer_ctxt['brand_ids']:
            brand_ids.append(brand_id)
        mitems = {
            'menu_category': c1_category,
            'children_cats': children_cats,
            'brand_ids': brand_retailer_ctxt['brand_ids'],
            'retailer_tags': brand_retailer_ctxt['retailer_tags']
        }
        menu_items.append(mitems)
    return {'menu_items': menu_items, 'brand_ids': brand_ids}
Пример #2
0
def get_menu_items_by_product_ids(request, product_ids, tags_retailer):
    data = utils.get_categories_by_id(request, product_ids)
    c1_categories = data['c1_categories']
    category_ids = data['category_ids']
    menu_items = []
    prod_ids = "(" + (" OR ").join(product_ids) + ")"
    brand_ids = []
    parent_children_map = get_categorygraph_mapping(request)

    for c1_category in c1_categories:
        children_cats = []
        if c1_category in parent_children_map:
            categories = parent_children_map[c1_category]
            for category in categories:
                if category.id in category_ids:
                    children_cats.append(category)
        if not children_cats:
            continue
        query = "category_id:%s AND id:%s" % (c1_category.id, prod_ids)
        brand_retailer_ctxt = get_brands_retailers_by_query(request, query, tags_retailer)
        for brand_id in brand_retailer_ctxt['brand_ids']:
            brand_ids.append(brand_id)
        mitems = {
            'menu_category': c1_category, 
            'children_cats': children_cats, 
            'brand_ids': brand_retailer_ctxt['brand_ids'], 
            'retailer_tags': brand_retailer_ctxt['retailer_tags']
        }
        menu_items.append(mitems)
    return {'menu_items':menu_items, 'brand_ids':brand_ids}
Пример #3
0
def mark_itz_cat_hero(request, commission_on_id):
    error = ''
    is_marked_hero = False
    tag_hero_name = 'itz_hero'
    list_type = 'itz_offer'
    
    net_details = save_franc_network_in_dict(request)

    tag_hero = Tag.objects.filter(tag=tag_hero_name)
    if tag_hero:
        tag_hero = tag_hero[0]
    else:
        error = "No ITZ hero tag found"
    
    if not error:
        try:
            commision_on = CommisionOn.objects.get(network = net_details['network'], id = commission_on_id)
            this_prod_id = int(commision_on.seller_rate_chart.product.id)
            
            from catalog.models import ProductTags, Product
            try:
                pt = ProductTags.objects.get(type = list_type, product = commision_on.seller_rate_chart.product, tag=tag_hero)
                is_marked_hero = True
            except ProductTags.DoesNotExist:
                pt = ProductTags(type = list_type, product = commision_on.seller_rate_chart.product, tag=tag_hero)
                pt.save()
                is_marked_hero = True
            
                commision_on.seller_rate_chart.product.update_solr_index()
                parent_cat_dict = get_categories_by_id(request, [str(commision_on.seller_rate_chart.product.id)])
                parent_c1_id = parent_cat_dict['c1_categories'][0].id
            
                from utils.solrutils import solr_search
                params = {'rows':200}
                q = 'tag_id:%s AND category_id:%s' % (tag_hero.id, parent_c1_id)
                
                try:
                    solr_result = solr_search(q, **params)
                    prod_ids_in_solr = [int(doc['id']) for doc in solr_result.results]
                    if this_prod_id in prod_ids_in_solr:
                        prod_ids_in_solr.remove(this_prod_id)
                    
                    for prod in prod_ids_in_solr:
                        try:
                            pt = ProductTags.objects.get(type = list_type, product = prod, tag=tag_hero).delete()
                        except:
                            pass
                        try:
                            product = Product.objects.get(id = prod)
                            product.update_solr_index()
                        except:
                            pass
                    
                except:
                    error = "Solr query failed. Query:",q
        except:
            error = 'Itz product not found'
    
    if not error:
        ajax_response = dict(status='success', is_marked_hero = is_marked_hero, error=error)
    else:
        ajax_response = dict(status='failed', error=error)
    
    return HttpResponse(simplejson.dumps(ajax_response))