def matchCompanyName(request, id, companySearchName): try: company_id = request.user.company_id page_number = int(request.GET.get('page_number')) items_per_page = int(request.GET.get('per_page')) offset = (page_number - 1) * items_per_page queryset = Lead.objects(company_id=company_id).aggregate( { '$group': { '_id': '$source_company', 'count': { '$sum': 1 }, 'name' : { '$push': { '$concat': [{'$ifNull': ['$source_first_name', 'Unknown']}, ' ', {'$ifNull':['$source_last_name', 'Unknown']}]} } } }, {'$sort': OrderedDict([('_id', 1), ('count', -1) ])} ) qlist = list(queryset) results_temp = matchingAlgo(request, search_name=companySearchName, entries=qlist, object_type='company') results = results_temp[offset:offset+items_per_page] serializer = AccountCountSerializer(results, many=True) return JsonResponse({'count' : len(results_temp), 'results': serializer.data}) except Exception as e: return JsonResponse({'Error' : str(e)})
def matchAccountName(request, id, accountSearchName): try: if accountSearchName is None: return JsonResponse({'count' : 0, 'results': None}) company_id = request.user.company_id page_number = int(request.GET.get('page_number')) items_per_page = int(request.GET.get('per_page')) offset = (page_number - 1) * items_per_page accounts = Account.objects(company_id=company_id) accounts_list = list(accounts) #accounts_list.sort(key=lambda x:len(x.source_name), reverse=False) results_temp = matchingAlgo(request, search_name=accountSearchName, entries=accounts_list, object_type='account') results = results_temp[offset:offset+items_per_page] serializer = AccountSerializer(results, many=True) return JsonResponse({'count' : len(results_temp), 'results': serializer.data}) except Exception as e: return JsonResponse({'Error' : str(e)})