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}
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}
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))