Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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))
Ejemplo n.º 3
0
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))
Ejemplo n.º 4
0
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))