def filterEventsByEmailCTAHspt(user_id, company_id, start_date, end_date, event_type, query_type, page_number, items_per_page, system_type, offset, code, export_type, url): original_start_date = int(start_date) * 1000 original_end_date = int(end_date) * 1000 #print 'start ' + str(original_start_date) #print 'end ' + str(original_end_date) # if start_date is not None: # local_start_date_naive = datetime.fromtimestamp(float(start_date)) # local_start_date = get_current_timezone().localize(local_start_date_naive, is_dst=None) # if end_date is not None: # local_end_date_naive = datetime.fromtimestamp(float(end_date)) # local_end_date = get_current_timezone().localize(local_end_date_naive, is_dst=None) # utc_current_date = datetime.utcnow() #print 'filter start us ' + str(local_start_date) + ' and edn is ' + str(local_end_date) code = _get_code(company_id, system_type) try: #print 'url 1 is ' + str(url) #url = urllib.unquote(url).decode('utf8') #print 'url is ' + str(url) events_list = EmailEvent.objects(Q(company_id=company_id) & Q(event_type=event_type) & Q(created__gte=int(original_start_date)) & Q(created__lte=int(original_end_date)) & Q(details__url=url)) events_list = list(events_list) #print 'final results ' + str(events_list) total = len(events_list) final_events_list = events_list[offset:int(items_per_page + offset)] #leads = Lead.objects(**querydict).skip(offset).limit(items_per_page) serializer = EmailEventSerializer(final_events_list, many=True) results = {'count' : total, 'results': serializer.data} return results except Exception as e: return JsonResponse({'Error' : str(e)})
def filterCampaignEmailEventsByTypeHspt(user_id, company_id, start_date, end_date, event_type, email_id, query_type, page_number, items_per_page, system_type, offset, code, campaign_guid, export_type): original_start_date = int(start_date) * 1000 original_end_date = int(end_date) * 1000 #print 'start ' + str(original_start_date) #print 'end ' + str(original_end_date) # if start_date is not None: # local_start_date_naive = datetime.fromtimestamp(float(start_date)) # local_start_date = get_current_timezone().localize(local_start_date_naive, is_dst=None) # if end_date is not None: # local_end_date_naive = datetime.fromtimestamp(float(end_date)) # local_end_date = get_current_timezone().localize(local_end_date_naive, is_dst=None) # utc_current_date = datetime.utcnow() #print 'filter start us ' + str(local_start_date) + ' and edn is ' + str(local_end_date) code = _get_code(company_id, system_type) try: # guid_field_qry = 'guid' # company_field_qry = 'company_id' # emails_field_qry = 'emails.id' # emails_qry = '$emails' # event_qry = '$emails.events.' + event_type # event_date_qry = '$emails.events.' + event_type + '.created' # event_date_qry2 = 'emails.events.' + event_type + '.created' #without $ # recipient_qry = '$emails.events.' + event_type + '.recipient' # id_qry = '$emails.events.' + event_type + '.id' # querydict = {company_field_qry: company_id, guid_field_qry: campaign_guid} #print 'qd is ' + str(querydict) #events_list = Campaign.objects(**querydict).aggregate({'$unwind': results_qry}, {'$project': {'_id':0, 'event_id': id_qry, 'date': event_date_qry, 'recipient': recipient_qry}}) #{'$match' : {event_date_qry2: {'$gte': original_start_date, '$lte': original_end_date }}}, #events_list = Campaign.objects(**querydict).aggregate({'$unwind': emails_qry}, {'$match': {emails_field_qry: int(email_id)}}, {'$unwind': event_qry}, {'$project': {'_id':0, 'event_id': id_qry, 'date': event_date_qry, 'recipient': recipient_qry}}, {'$match' : {'date': {'$gte': original_start_date, '$lte': original_end_date }}})#, events_list = EmailEvent.objects(Q(company_id=company_id) & Q(campaign_guid=campaign_guid) & Q(email_id=int(email_id)) & Q(event_type=event_type) & Q(created__gte=int(original_start_date)) & Q(created__lte=int(original_end_date))) events_list = list(events_list) #print 'final results ' + str(events_list) total = len(events_list) final_events_list = events_list[offset:int(items_per_page + offset)] #leads = Lead.objects(**querydict).skip(offset).limit(items_per_page) serializer = EmailEventSerializer(final_events_list, many=True) results = {'count' : total, 'results': serializer.data} return results except Exception as e: return JsonResponse({'Error' : str(e)})