Subversion Repositories SmartDukaan

Rev

Rev 17663 | Rev 17669 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 17663 Rev 17668
Line 695... Line 695...
695
                rev = False
695
                rev = False
696
            sorted_deals = sorted(category_specific_deals, key = lambda x: (x['available_price']),reverse=rev)
696
            sorted_deals = sorted(category_specific_deals, key = lambda x: (x['available_price']),reverse=rev)
697
    
697
    
698
    
698
    
699
    filtered_deals = []
699
    filtered_deals = []
-
 
700
    dataExist = True
700
    if filterData is not None:
701
    if filterData is not None:
701
        try:
702
        try:
702
            filtered_deals = filterDeals(category_specific_deals, filterData)
703
            filtered_deals, dataExist = filterDeals(category_specific_deals, filterData)
703
        except:
704
        except:
704
            traceback.print_exc()
705
            traceback.print_exc()
-
 
706
    if dataExist:
705
    
707
    
706
    if not insert_featured_deals:
708
        if not insert_featured_deals:
707
        sortedMap = {}
709
            sortedMap = {}
708
        rankMap = {}
710
            rankMap = {}
709
        rank = 0
711
            rank = 0
710
        for sorted_deal in sorted_deals:
712
            for sorted_deal in sorted_deals:
711
            
713
                
712
            if len(filtered_deals) > 0 and  sorted_deal['skuBundleId'] not in filtered_deals:
714
                if len(filtered_deals) > 0 and  sorted_deal['skuBundleId'] not in filtered_deals:
713
                continue
715
                    continue
714
            
716
                
715
            if sortedMap.get(sorted_deal['skuBundleId']) is None:
717
                if sortedMap.get(sorted_deal['skuBundleId']) is None:
716
                sortedMap[sorted_deal['skuBundleId']] = {rank:[sorted_deal]}
718
                    sortedMap[sorted_deal['skuBundleId']] = {rank:[sorted_deal]}
717
                rankMap[rank] = (sortedMap[sorted_deal['skuBundleId']].values())[0]
719
                    rankMap[rank] = (sortedMap[sorted_deal['skuBundleId']].values())[0]
718
                rank = rank +1
720
                    rank = rank +1
-
 
721
                else:
-
 
722
                    for temp_list in sortedMap.get(sorted_deal['skuBundleId']).itervalues():
-
 
723
                        temp_list.append(sorted_deal)
-
 
724
                    rankMap[(sortedMap.get(sorted_deal['skuBundleId']).keys())[0]] = temp_list
-
 
725
        else:
-
 
726
            filterMap = {}
-
 
727
            rank = 0
-
 
728
            if len(filtered_deals) > 0:
-
 
729
                try:
-
 
730
                    od = collections.OrderedDict(sorted(rankMap.items()))
-
 
731
                except:
-
 
732
                    od = ordereddict.OrderedDict(sorted(rankMap.items()))
-
 
733
                for k, v in od.iteritems():
-
 
734
                    if v[0].get('skuBundleId') in filtered_deals:
-
 
735
                        filterMap[rank] = v
-
 
736
                        rank =rank+1
-
 
737
                rankMap = filterMap
-
 
738
        
-
 
739
        rankCounter = offset
-
 
740
        if filterData is None:
-
 
741
            if mc.get("featured_deals_deal_object") is None or not bool(mc.get("featured_deals_deal_object")):
-
 
742
                try:
-
 
743
                    __populateFeaturedDealsForDealObject()
-
 
744
                    fd_dealObject = mc.get("featured_deals_deal_object")
-
 
745
                except:
-
 
746
                    fd_dealObject = {3:{},5:{},6:{}}
719
            else:
747
            else:
720
                for temp_list in sortedMap.get(sorted_deal['skuBundleId']).itervalues():
-
 
721
                    temp_list.append(sorted_deal)
-
 
722
                rankMap[(sortedMap.get(sorted_deal['skuBundleId']).keys())[0]] = temp_list
-
 
723
    else:
-
 
724
        filterMap = {}
-
 
725
        rank = 0
-
 
726
        if len(filtered_deals) > 0:
-
 
727
            try:
-
 
728
                od = collections.OrderedDict(sorted(rankMap.items()))
-
 
729
            except:
-
 
730
                od = ordereddict.OrderedDict(sorted(rankMap.items()))
-
 
731
            for k, v in od.iteritems():
-
 
732
                if v[0].get('skuBundleId') in filtered_deals:
-
 
733
                    filterMap[rank] = v
-
 
734
                    rank =rank+1
-
 
735
            rankMap = filterMap
-
 
736
    
-
 
737
    rankCounter = offset
-
 
738
    if filterData is None:
-
 
739
        if mc.get("featured_deals_deal_object") is None or not bool(mc.get("featured_deals_deal_object")):
-
 
740
            try:
-
 
741
                __populateFeaturedDealsForDealObject()
-
 
742
                fd_dealObject = mc.get("featured_deals_deal_object")
748
                fd_dealObject = mc.get("featured_deals_deal_object")
743
            except:
-
 
744
                fd_dealObject = {3:{},5:{},6:{}}
-
 
745
        else:
749
        
746
            fd_dealObject = mc.get("featured_deals_deal_object")
-
 
747
    
750
    else:
748
    
751
        rankMap = {}
749
    
752
    
750
    for dealList in [rankMap.get(k, []) for k in range(offset, offset+limit)]:
753
    for dealList in [rankMap.get(k, []) for k in range(offset, offset+limit)]:
751
        if filterData is None:
754
        if filterData is None:
752
            while(True):
755
            while(True):
753
                
756
                
Line 850... Line 853...
850
            traceback.print_exc()
853
            traceback.print_exc()
851
            continue
854
            continue
852
        if filter == 'brandFilter':
855
        if filter == 'brandFilter':
853
            toFilter = info.split('^')
856
            toFilter = info.split('^')
854
            print "brand filter ",toFilter
857
            print "brand filter ",toFilter
855
            if len(toFilter) == 0 or (len(toFilter)==1 and toFilter[0]==''):
-
 
856
                brandsFiltered = deals
-
 
857
            for deal in deals:
858
            for deal in deals:
858
                if str(int(deal['brand_id'])) in toFilter:
859
                if str(int(deal['brand_id'])) in toFilter:
859
                    brandsFiltered.append(deal)
860
                    brandsFiltered.append(deal)
860
        elif filter =='subCategoryFilter':
861
        elif filter =='subCategoryFilter':
861
            toFilter = info.split('^')
862
            toFilter = info.split('^')
862
            print "Sub Category filter ",toFilter
863
            print "Sub Category filter ",toFilter
863
            if len(toFilter) == 0 or (len(toFilter)==1 and toFilter[0]==''):
-
 
864
                brandsFiltered = deals
-
 
865
            for deal in deals:
864
            for deal in deals:
866
                if str(int(deal['subCategoryId'])) in toFilter:
865
                if str(int(deal['subCategoryId'])) in toFilter:
867
                    subCategoryFiltered.append(deal)
866
                    subCategoryFiltered.append(deal)
868
            
867
    print "No of brand filtered ",len(brandsFiltered)
-
 
868
    print "No of sub-cat filtered ",len(subCategoryFiltered)
869
    if len(subCategoryFiltered) == 0:
869
    if len(subCategoryFiltered) == 0:
870
        return [trend['skuBundleId'] for trend in brandsFiltered]
870
        return [trend['skuBundleId'] for trend in brandsFiltered]
871
    elif len(brandsFiltered) == 0:
871
    elif len(brandsFiltered) == 0:
872
        return [trend['skuBundleId'] for trend in subCategoryFiltered]
872
        return [trend['skuBundleId'] for trend in subCategoryFiltered]
873
    return [i['skuBundleId'] for i in subCategoryFiltered for j in brandsFiltered if i['_id']==j['_id']]
873
    x= [i['skuBundleId'] for i in subCategoryFiltered for j in brandsFiltered if i['_id']==j['_id']]
-
 
874
    if len(x) ==0:
-
 
875
        return x, False
-
 
876
    else:
-
 
877
        return x, True
874
    
878
    
875
 
879
 
876
def getDeals(userId, category_id, offset, limit, sort, direction):
880
def getDeals(userId, category_id, offset, limit, sort, direction):
877
    if mc.get("category_cash_back") is None or not bool(mc.get("category_cash_back")):
881
    if mc.get("category_cash_back") is None or not bool(mc.get("category_cash_back")):
878
        populateCashBack()
882
        populateCashBack()