def voipcall_report(request): """VoIP Call Report **Attributes**: * ``form`` - VoipSearchForm * ``template`` - dialer_cdr/voipcall_report.html **Logic Description**: * Get VoIP call list according to search parameters for loggedin user **Important variable**: * ``request.session['voipcall_record_kwargs']`` - stores voipcall kwargs """ sort_col_field_list = ['starting_date', 'leg_type', 'disposition', 'used_gateway', 'callerid', 'callid', 'phone_number', 'duration', 'billsec', 'amd_status'] pag_vars = get_pagination_vars(request, sort_col_field_list, default_sort_field='starting_date') action = 'tabs-1' form = VoipSearchForm(request.user, request.POST or None) if form.is_valid(): # Valid form field_list = ['start_date', 'end_date', 'disposition', 'campaign_id', 'leg_type'] unset_session_var(request, field_list) from_date = getvar(request, 'from_date') to_date = getvar(request, 'to_date') start_date = ceil_strdate(str(from_date), 'start') end_date = ceil_strdate(str(to_date), 'end') converted_start_date = start_date.strftime('%Y-%m-%d') converted_end_date = end_date.strftime('%Y-%m-%d') request.session['session_start_date'] = converted_start_date request.session['session_end_date'] = converted_end_date disposition = getvar(request, 'disposition', setsession=True) campaign_id = getvar(request, 'campaign_id', setsession=True) leg_type = getvar(request, 'leg_type', setsession=True) form = VoipSearchForm(request.user, initial={'from_date': start_date.strftime('%Y-%m-%d'), 'to_date': end_date.strftime('%Y-%m-%d'), 'disposition': disposition, 'campaign_id': campaign_id, 'leg_type': leg_type}) elif request.GET.get('page') or request.GET.get('sort_by'): # Pagination / Sort start_date = request.session.get('session_start_date') end_date = request.session.get('session_end_date') start_date = ceil_strdate(start_date, 'start') end_date = ceil_strdate(end_date, 'end') disposition = request.session.get('session_disposition') campaign_id = request.session.get('session_campaign_id') leg_type = request.session.get('session_leg_type') form = VoipSearchForm(request.user, initial={'from_date': start_date.strftime('%Y-%m-%d'), 'to_date': end_date.strftime('%Y-%m-%d'), 'disposition': disposition, 'campaign_id': campaign_id, 'leg_type': leg_type}) else: # Default tday = datetime.utcnow().replace(tzinfo=utc) from_date = tday.strftime('%Y-%m-%d') to_date = tday.strftime('%Y-%m-%d') start_date = datetime(tday.year, tday.month, tday.day, 0, 0, 0, 0).replace(tzinfo=utc) end_date = datetime(tday.year, tday.month, tday.day, 23, 59, 59, 999999).replace(tzinfo=utc) disposition = 'all' campaign_id = 0 leg_type = '' form = VoipSearchForm(request.user, initial={'from_date': from_date, 'to_date': to_date, 'disposition': disposition, 'campaign_id': campaign_id, 'leg_type': leg_type}) # unset session var request.session['session_start_date'] = start_date request.session['session_end_date'] = end_date request.session['session_disposition'] = disposition request.session['session_campaign_id'] = '' request.session['session_leg_type'] = '' kwargs = {} if start_date and end_date: kwargs['starting_date__range'] = (start_date, end_date) if start_date and end_date == '': kwargs['starting_date__gte'] = start_date if start_date == '' and end_date: kwargs['starting_date__lte'] = end_date if disposition and disposition != 'all': kwargs['disposition__exact'] = disposition if campaign_id and int(campaign_id) != 0: kwargs['callrequest__campaign_id'] = campaign_id if leg_type and leg_type != '': kwargs['leg_type__exact'] = leg_type if not request.user.is_superuser: kwargs['user_id'] = request.user.id voipcall_list = VoIPCall.objects.filter(**kwargs) all_voipcall_list = voipcall_list.values_list('id', flat=True) # Session variable is used to get record set with searched option # into export file request.session['voipcall_record_kwargs'] = kwargs if request.GET.get('page') or request.GET.get('sort_by'): daily_data = request.session['voipcall_daily_data'] else: if not voipcall_list: request.session['voipcall_daily_data'] = '' daily_data = get_voipcall_daily_data(voipcall_list) request.session['voipcall_daily_data'] = daily_data voipcall_list = voipcall_list.order_by(pag_vars['sort_order'])[pag_vars['start_page']:pag_vars['end_page']] data = { 'form': form, 'total_data': daily_data['total_data'], 'total_duration': daily_data['total_duration'], 'total_calls': daily_data['total_calls'], 'total_avg_duration': daily_data['total_avg_duration'], 'max_duration': daily_data['max_duration'], 'all_voipcall_list': all_voipcall_list, 'voipcall_list': voipcall_list, 'CDR_REPORT_COLUMN_NAME': CDR_REPORT_COLUMN_NAME, 'col_name_with_order': pag_vars['col_name_with_order'], 'start_date': start_date, 'end_date': end_date, 'action': action, } request.session['msg'] = '' request.session['error_msg'] = '' return render_to_response('dialer_cdr/voipcall_report.html', data, context_instance=RequestContext(request))
def voipcall_report(request): """VoIP Call Report **Attributes**: * ``form`` - VoipSearchForm * ``template`` - frontend/report/voipcall_report.html **Logic Description**: * Get VoIP call list according to search parameters for loggedin user **Important variable**: * ``request.session['voipcall_record_kwargs']`` - stores voipcall kwargs """ sort_col_field_list = ['starting_date', 'leg_type', 'disposition', 'used_gateway', 'callerid', 'callid', 'phone_number', 'duration', 'billsec', 'amd_status'] default_sort_field = 'starting_date' pagination_data =\ get_pagination_vars(request, sort_col_field_list, default_sort_field) PAGE_SIZE = pagination_data['PAGE_SIZE'] sort_order = pagination_data['sort_order'] start_page = pagination_data['start_page'] end_page = pagination_data['end_page'] search_tag = 1 action = 'tabs-1' if request.method == 'POST': form = VoipSearchForm(request.user, request.POST) if form.is_valid(): field_list = ['start_date', 'end_date', 'disposition', 'campaign_id', 'leg_type'] unset_session_var(request, field_list) if request.POST.get('from_date'): # From from_date = request.POST['from_date'] start_date = ceil_strdate(from_date, 'start') request.session['session_start_date'] = start_date if request.POST.get('to_date'): # To to_date = request.POST['to_date'] end_date = ceil_strdate(to_date, 'end') request.session['session_end_date'] = end_date disposition = request.POST.get('status') if disposition != 'all': request.session['session_disposition'] = disposition campaign_id = request.POST.get('campaign_id') if campaign_id and int(campaign_id) != 0: request.session['session_campaign_id'] = int(campaign_id) leg_type = request.POST.get('leg_type') if leg_type and leg_type != '': request.session['session_leg_type'] = leg_type post_var_with_page = 0 try: if request.GET.get('page') or request.GET.get('sort_by'): post_var_with_page = 1 start_date = request.session.get('session_start_date') end_date = request.session.get('session_end_date') disposition = request.session.get('session_disposition') campaign_id = request.session.get('session_campaign_id') leg_type = request.session.get('session_leg_type') form = VoipSearchForm(request.user, initial={'from_date': start_date.strftime('%Y-%m-%d'), 'to_date': end_date.strftime('%Y-%m-%d'), 'status': disposition, 'campaign_id': campaign_id, 'leg_type': leg_type}) else: post_var_with_page = 1 if request.method == 'GET': post_var_with_page = 0 except: pass if post_var_with_page == 0: # default tday = datetime.today() from_date = tday.strftime('%Y-%m-%d') to_date = tday.strftime('%Y-%m-%d') start_date = datetime(tday.year, tday.month, tday.day, 0, 0, 0, 0) end_date = datetime(tday.year, tday.month, tday.day, 23, 59, 59, 999999) disposition = 'all' campaign_id = 0 leg_type = '' form = VoipSearchForm(request.user, initial={'from_date': from_date, 'to_date': to_date, 'status': disposition, 'campaign_id': campaign_id, 'leg_type': leg_type}) # unset session var request.session['session_start_date'] = start_date request.session['session_end_date'] = end_date request.session['session_disposition'] = disposition request.session['session_campaign_id'] = '' request.session['session_leg_type'] = '' kwargs = {} if start_date and end_date: kwargs['starting_date__range'] = (start_date, end_date) if start_date and end_date == '': kwargs['starting_date__gte'] = start_date if start_date == '' and end_date: kwargs['starting_date__lte'] = end_date if disposition and disposition != 'all': kwargs['disposition__exact'] = disposition if campaign_id and int(campaign_id) != 0: kwargs['callrequest__campaign_id'] = campaign_id if leg_type and leg_type != '': kwargs['leg_type__exact'] = leg_type if not request.user.is_superuser: kwargs['user'] = request.user voipcall_list = VoIPCall.objects.filter(**kwargs) all_voipcall_list = voipcall_list.values_list('id', flat=True) # Session variable is used to get record set with searched option # into export file request.session['voipcall_record_kwargs'] = kwargs if request.GET.get('page') or request.GET.get('sort_by'): daily_data = request.session['voipcall_daily_data'] else: if not voipcall_list: request.session['voipcall_daily_data'] = '' daily_data = get_voipcall_daily_data(voipcall_list) request.session['voipcall_daily_data'] = daily_data voipcall_list = voipcall_list.order_by(sort_order)[start_page:end_page] template = 'frontend/report/voipcall_report.html' data = { 'form': form, 'total_data': daily_data['total_data'], 'total_duration': daily_data['total_duration'], 'total_calls': daily_data['total_calls'], 'total_avg_duration': daily_data['total_avg_duration'], 'max_duration': daily_data['max_duration'], 'module': current_view(request), 'dialer_setting_msg': user_dialer_setting_msg(request.user), 'all_voipcall_list': all_voipcall_list, 'voipcall_list': voipcall_list, 'PAGE_SIZE': PAGE_SIZE, 'CDR_REPORT_COLUMN_NAME': CDR_REPORT_COLUMN_NAME, 'col_name_with_order': pagination_data['col_name_with_order'], 'search_tag': search_tag, 'start_date': start_date, 'end_date': end_date, 'action': action, 'AMD': settings.AMD, } request.session['msg'] = '' request.session['error_msg'] = '' return render_to_response(template, data, context_instance=RequestContext(request))
def voipcall_report(request): """VoIP Call Report **Attributes**: * ``form`` - VoipSearchForm * ``template`` - frontend/report/voipcall_report.html **Logic Description**: * Get VoIP call list according to search parameters for loggedin user **Important variable**: * ``request.session['voipcall_record_kwargs']`` - stores voipcall kwargs """ sort_col_field_list = ['starting_date', 'leg_type', 'disposition', 'used_gateway', 'callerid', 'callid', 'phone_number', 'duration', 'billsec', 'amd_status'] default_sort_field = 'starting_date' pagination_data =\ get_pagination_vars(request, sort_col_field_list, default_sort_field) PAGE_SIZE = pagination_data['PAGE_SIZE'] sort_order = pagination_data['sort_order'] start_page = pagination_data['start_page'] end_page = pagination_data['end_page'] search_tag = 1 action = 'tabs-1' if request.method == 'POST': form = VoipSearchForm(request.user, request.POST) if form.is_valid(): field_list = ['start_date', 'end_date', 'disposition', 'campaign_id'] unset_session_var(request, field_list) if request.POST.get('from_date'): # From from_date = request.POST['from_date'] start_date = ceil_strdate(from_date, 'start') request.session['session_start_date'] = start_date if request.POST.get('to_date'): # To to_date = request.POST['to_date'] end_date = ceil_strdate(to_date, 'end') request.session['session_end_date'] = end_date disposition = request.POST.get('status') if disposition != 'all': request.session['session_disposition'] = disposition campaign_id = request.POST.get('campaign_id') if campaign_id and int(campaign_id) != 0: request.session['session_campaign_id'] = int(campaign_id) post_var_with_page = 0 try: if request.GET.get('page') or request.GET.get('sort_by'): post_var_with_page = 1 start_date = request.session.get('session_start_date') end_date = request.session.get('session_end_date') disposition = request.session.get('session_disposition') campaign_id = request.session.get('session_campaign_id') form = VoipSearchForm(request.user, initial={'from_date': start_date.strftime('%Y-%m-%d'), 'to_date': end_date.strftime('%Y-%m-%d'), 'status': disposition, 'campaign_id': campaign_id}) else: post_var_with_page = 1 if request.method == 'GET': post_var_with_page = 0 except: pass if post_var_with_page == 0: # default tday = datetime.today() from_date = tday.strftime('%Y-%m-%d') to_date = tday.strftime('%Y-%m-%d') start_date = datetime(tday.year, tday.month, tday.day, 0, 0, 0, 0) end_date = datetime(tday.year, tday.month, tday.day, 23, 59, 59, 999999) disposition = 'all' campaign_id = 0 form = VoipSearchForm(request.user, initial={'from_date': from_date, 'to_date': to_date, 'status': disposition, 'campaign_id': campaign_id}) # unset session var request.session['session_start_date'] = start_date request.session['session_end_date'] = end_date request.session['session_disposition'] = disposition request.session['session_campaign_id'] = '' kwargs = {} if start_date and end_date: kwargs['starting_date__range'] = (start_date, end_date) if start_date and end_date == '': kwargs['starting_date__gte'] = start_date if start_date == '' and end_date: kwargs['starting_date__lte'] = end_date if disposition and disposition != 'all': kwargs['disposition__exact'] = disposition if campaign_id and int(campaign_id) != 0: kwargs['callrequest__campaign_id'] = campaign_id if not request.user.is_superuser: kwargs['user'] = request.user voipcall_list = VoIPCall.objects.filter(**kwargs) all_voipcall_list = voipcall_list.values_list('id', flat=True) # Session variable is used to get record set with searched option # into export file request.session['voipcall_record_kwargs'] = kwargs if request.GET.get('page') or request.GET.get('sort_by'): daily_data = request.session['voipcall_daily_data'] else: if not voipcall_list: request.session['voipcall_daily_data'] = '' daily_data = get_voipcall_daily_data(voipcall_list) request.session['voipcall_daily_data'] = daily_data voipcall_list = voipcall_list.order_by(sort_order)[start_page:end_page] template = 'frontend/report/voipcall_report.html' data = { 'form': form, 'total_data': daily_data['total_data'], 'total_duration': daily_data['total_duration'], 'total_calls': daily_data['total_calls'], 'total_avg_duration': daily_data['total_avg_duration'], 'max_duration': daily_data['max_duration'], 'module': current_view(request), 'dialer_setting_msg': user_dialer_setting_msg(request.user), 'all_voipcall_list': all_voipcall_list, 'voipcall_list': voipcall_list, 'PAGE_SIZE': PAGE_SIZE, 'CDR_REPORT_COLUMN_NAME': CDR_REPORT_COLUMN_NAME, 'col_name_with_order': pagination_data['col_name_with_order'], 'search_tag': search_tag, 'start_date': start_date, 'end_date': end_date, 'action': action, 'AMD': settings.AMD, } request.session['msg'] = '' request.session['error_msg'] = '' return render_to_response(template, data, context_instance=RequestContext(request))
def voipcall_report(request): """VoIP Call Report **Attributes**: * ``form`` - VoipSearchForm * ``template`` - dialer_cdr/voipcall_report.html **Logic Description**: * Get VoIP call list according to search parameters for loggedin user **Important variable**: * ``request.session['voipcall_record_kwargs']`` - stores voipcall kwargs """ sort_col_field_list = ['starting_date', 'leg_type', 'disposition', 'used_gateway', 'callerid', 'callid', 'phone_number', 'duration', 'billsec', 'amd_status'] pag_vars = get_pagination_vars(request, sort_col_field_list, default_sort_field='starting_date') action = 'tabs-1' form = VoipSearchForm(request.user, request.POST or None) if form.is_valid(): # Valid form field_list = ['start_date', 'end_date', 'disposition', 'campaign_id', 'leg_type'] unset_session_var(request, field_list) from_date = getvar(request, 'from_date') to_date = getvar(request, 'to_date') start_date = ceil_strdate(str(from_date), 'start') end_date = ceil_strdate(str(to_date), 'end') converted_start_date = start_date.strftime('%Y-%m-%d') converted_end_date = end_date.strftime('%Y-%m-%d') request.session['session_start_date'] = converted_start_date request.session['session_end_date'] = converted_end_date disposition = getvar(request, 'disposition', setsession=True) campaign_id = getvar(request, 'campaign_id', setsession=True) leg_type = getvar(request, 'leg_type', setsession=True) form = VoipSearchForm(request.user, initial={'from_date': start_date.strftime('%Y-%m-%d'), 'to_date': end_date.strftime('%Y-%m-%d'), 'disposition': disposition, 'campaign_id': campaign_id, 'leg_type': leg_type}) elif request.GET.get('page') or request.GET.get('sort_by'): # Pagination / Sort start_date = request.session.get('session_start_date') end_date = request.session.get('session_end_date') start_date = ceil_strdate(str(start_date), 'start') end_date = ceil_strdate(str(end_date), 'end') disposition = request.session.get('session_disposition') campaign_id = request.session.get('session_campaign_id') leg_type = request.session.get('session_leg_type') form = VoipSearchForm(request.user, initial={'from_date': start_date.strftime('%Y-%m-%d'), 'to_date': end_date.strftime('%Y-%m-%d'), 'disposition': disposition, 'campaign_id': campaign_id, 'leg_type': leg_type}) else: # Default tday = datetime.utcnow().replace(tzinfo=utc) from_date = tday.strftime('%Y-%m-%d') to_date = tday.strftime('%Y-%m-%d') start_date = datetime(tday.year, tday.month, tday.day, 0, 0, 0, 0).replace(tzinfo=utc) end_date = datetime(tday.year, tday.month, tday.day, 23, 59, 59, 999999).replace(tzinfo=utc) disposition = 'all' campaign_id = 0 leg_type = '' form = VoipSearchForm(request.user, initial={'from_date': from_date, 'to_date': to_date, 'disposition': disposition, 'campaign_id': campaign_id, 'leg_type': leg_type}) # unset session var request.session['session_start_date'] = start_date request.session['session_end_date'] = end_date request.session['session_disposition'] = disposition request.session['session_campaign_id'] = '' request.session['session_leg_type'] = '' kwargs = {} if start_date and end_date: kwargs['starting_date__range'] = (start_date, end_date) if start_date and end_date == '': kwargs['starting_date__gte'] = start_date if start_date == '' and end_date: kwargs['starting_date__lte'] = end_date if disposition and disposition != 'all': kwargs['disposition__exact'] = disposition if campaign_id and int(campaign_id) != 0: kwargs['callrequest__campaign_id'] = campaign_id if leg_type and leg_type != '': kwargs['leg_type__exact'] = leg_type if not request.user.is_superuser: kwargs['user_id'] = request.user.id voipcall_list = VoIPCall.objects.filter(**kwargs) all_voipcall_list = voipcall_list.values_list('id', flat=True) # Session variable is used to get record set with searched option # into export file request.session['voipcall_record_kwargs'] = kwargs if request.GET.get('page') or request.GET.get('sort_by'): daily_data = request.session['voipcall_daily_data'] else: if not voipcall_list: request.session['voipcall_daily_data'] = '' daily_data = get_voipcall_daily_data(voipcall_list) request.session['voipcall_daily_data'] = daily_data voipcall_list = voipcall_list.order_by(pag_vars['sort_order'])[pag_vars['start_page']:pag_vars['end_page']] data = { 'form': form, 'total_data': daily_data['total_data'], 'total_duration': daily_data['total_duration'], 'total_calls': daily_data['total_calls'], 'total_avg_duration': daily_data['total_avg_duration'], 'max_duration': daily_data['max_duration'], 'all_voipcall_list': all_voipcall_list, 'voipcall_list': voipcall_list, 'CDR_REPORT_COLUMN_NAME': CDR_REPORT_COLUMN_NAME, 'col_name_with_order': pag_vars['col_name_with_order'], 'start_date': start_date, 'end_date': end_date, 'action': action, } request.session['msg'] = '' request.session['error_msg'] = '' return render_to_response('dialer_cdr/voipcall_report.html', data, context_instance=RequestContext(request))