Ejemplo n.º 1
0
def sms_record_common_fun(request):
    """Return Form with Initial data or Array (kwargs) for SMS_Report
    Changelist_view"""
    start_date = ''
    end_date = ''
    if request.POST.get('from_date'):
        from_date = request.POST.get('from_date')
        start_date = datetime(int(from_date[0:4]), int(from_date[5:7]),
            int(from_date[8:10]), 0, 0, 0, 0).replace(tzinfo=utc)
    if request.POST.get('to_date'):
        to_date = request.POST.get('to_date')
        end_date = datetime(int(to_date[0:4]), int(to_date[5:7]),
            int(to_date[8:10]), 23, 59, 59, 999999).replace(tzinfo=utc)

    # Assign form field value to local variable
    status = variable_value(request, 'status')
    smscampaign = variable_value(request, 'smscampaign')

    # Patch code for persist search
    if request.method != 'POST':

        if request.session.get('from_date'):
            from_date = request.session['from_date']
            start_date = datetime(
                int(from_date[0:4]), int(from_date[5:7]), int(from_date[8:10]),
                0, 0, 0, 0).replace(tzinfo=utc)

        if request.session.get('to_date'):
            to_date = request.session['to_date']
            end_date = datetime(
                int(to_date[0:4]), int(to_date[5:7]), int(to_date[8:10]),
                23, 59, 59, 999999).replace(tzinfo=utc)

        if request.session.get('status'):
            status = request.session['status']

        if request.session.get('smscampaign'):
            smscampaign = request.session['smscampaign']

    kwargs = {}
    if start_date and end_date:
        kwargs['send_date__range'] = (start_date, end_date)
    if start_date and end_date == '':
        kwargs['send_date__gte'] = start_date
    if start_date == '' and end_date:
        kwargs['send_date__lte'] = end_date

    if status:
        if status != 'all':
            kwargs['status__exact'] = status

    if smscampaign and smscampaign != '0':
        kwargs['sms_campaign'] = smscampaign

    if len(kwargs) == 0:
        tday = datetime.utcnow().replace(tzinfo=utc)
        kwargs['send_date__gte'] = datetime(tday.year, tday.month, tday.day,
                                            0, 0, 0, 0).replace(tzinfo=utc)
    return kwargs
Ejemplo n.º 2
0
    def queryset(self, request):
        """
        Queryset will be changed as per the Rate filter selection
        on changelist_view
        """
        # Assign form field value to local variable
        rate = variable_value(request, 'rate')
        rate_range = variable_value(request, 'rate_range')

        kwargs = rate_filter_range_field_chk(rate, rate_range, "retail_rate")
        qs = super(VoIPRetailRateAdmin, self).queryset(request)

        if kwargs != '':
            return qs.filter(**kwargs).order_by('retail_rate')
        else:
            return qs.filter(**kwargs)
Ejemplo n.º 3
0
    def queryset(self, request):
        """
        Queryset will be changed as per the Custom Rate Filter selection
        on changelist_view
        """
        kwargs = {}

        # Assign form field value to local variable
        rate = variable_value(request, 'rate')
        rate_range = variable_value(request, 'rate_range')

        kwargs = rate_filter_range_field_chk(rate, rate_range, "carrier_rate")
        qs = super(VoIPCarrierRateAdmin, self).queryset(request)
        if kwargs is not None:
            return qs.filter(**kwargs).order_by('carrier_rate')
        else:
            return qs.filter(**kwargs)
Ejemplo n.º 4
0
def sms_search_admin_form_fun(request):
    """Return query string for SMSMessage Changelist_view"""
    start_date = ''
    end_date = ''
    smscampaign = ''
    if request.POST.get('from_date'):
        start_date = request.POST.get('from_date')

    if request.POST.get('to_date'):
        end_date = request.POST.get('to_date')

    # Assign form field value to local variable
    status = variable_value(request, 'status')
    smscampaign = variable_value(request, 'smscampaign')
    query_string = ''

    if start_date and end_date:
        date_string = 'send_date__gte=' + start_date + '&send_date__lte=' \
            + end_date + '+23%3A59%3A59'
        query_string = return_query_string(query_string, date_string)

    if start_date and end_date == '':
        date_string = 'send_date__gte=' + start_date
        query_string = return_query_string(query_string, date_string)

    if start_date == '' and end_date:
        date_string = 'send_date__lte=' + end_date
        query_string = return_query_string(query_string, date_string)

    if status:
        if status != 'all':
            status_string = 'status__exact=' + status
            query_string = return_query_string(query_string, status_string)

    if smscampaign and smscampaign != '0':
        smscampaign_string = 'sms_campaign=' + smscampaign
        query_string = return_query_string(query_string, smscampaign_string)

    return query_string
Ejemplo n.º 5
0
def sms_search_admin_form_fun(request):
    """Return query string for SMSMessage Changelist_view"""
    start_date = ''
    end_date = ''
    smscampaign = ''
    if request.POST.get('from_date'):
        start_date = request.POST.get('from_date')

    if request.POST.get('to_date'):
        end_date = request.POST.get('to_date')

    # Assign form field value to local variable
    status = variable_value(request, 'status')
    smscampaign = variable_value(request, 'smscampaign')
    query_string = ''

    if start_date and end_date:
        date_string = 'send_date__gte=' + start_date + '&send_date__lte=' \
            + end_date + '+23%3A59%3A59'
        query_string = return_query_string(query_string, date_string)

    if start_date and end_date == '':
        date_string = 'send_date__gte=' + start_date
        query_string = return_query_string(query_string, date_string)

    if start_date == '' and end_date:
        date_string = 'send_date__lte=' + end_date
        query_string = return_query_string(query_string, date_string)

    if status:
        if status != 'all':
            status_string = 'status__exact=' + status
            query_string = return_query_string(query_string, status_string)

    if smscampaign and smscampaign != '0':
        smscampaign_string = 'sms_campaign=' + smscampaign
        query_string = return_query_string(query_string, smscampaign_string)

    return query_string
Ejemplo n.º 6
0
    def simulator(self, request):
        """
        Admin Simulator
        To view rate according to VoIP Plan & Destination No.
        """
        opts = VoIPPlan._meta

        # Assign form field value to local variable
        destination_no = variable_value(request, "destination_no")
        voipplan_id = variable_value(request, "plan_id")

        data = []
        form = SimulatorForm(request.user, request.POST or None)
        if form.is_valid():
            destination_no = request.POST.get("destination_no")
            voipplan_id = request.POST.get("plan_id")
            rates = rate_engine(voipplan_id=voipplan_id, dest_number=destination_no)

            for rate in rates:
                c_r_plan = VoIPCarrierRate.objects.get(id=rate.crid)
                r_r_plan = VoIPRetailRate.objects.get(id=rate.rrid)
                data.append((voipplan_id,
                             c_r_plan.voip_carrier_plan_id.id,
                             c_r_plan.voip_carrier_plan_id.name,
                             r_r_plan.voip_retail_plan_id.id,
                             r_r_plan.voip_retail_plan_id.name,
                             rate.crid, rate.carrier_rate,
                             rate.rrid, rate.retail_rate, rate.rt_prefix))
        variables = {
            'title': _('VoIP Simulator'),
            'form': form,
            'opts': opts,
            'model_name': opts.object_name.lower(),
            'data': data,
        }
        ctx = RequestContext(request, variables)
        return render_to_response('admin/voip_billing/voipplan/simulator.html', context_instance=ctx)
Ejemplo n.º 7
0
    def changelist_view(self, request, extra_context=None):
        """Override changelist_view method of django-admin for search parameters

        **Attributes**:

            * ``form`` - AdminSMSSearchForm
            * ``template`` - admin/mod_sms/smsmessage/sms_report.html

        **Logic Description**:

            * SMSMessage report Record Listing with search option
              search Parameters: by date, by status and by billed.
        """
        opts = SMSMessage._meta

        query_string = ''
        form = AdminSMSSearchForm(request.POST or None)
        if form.is_valid():
            query_string = sms_search_admin_form_fun(request)
            return HttpResponseRedirect("/admin/" + opts.app_label + "/" +
                                        opts.object_name.lower() + "/?" +
                                        query_string)
        else:
            status = ''
            from_date = ''
            to_date = ''
            smscampaign = ''
            if request.GET.get('send_date__gte'):
                from_date = variable_value(request, 'send_date__gte')
            if request.GET.get('send_date__lte'):
                to_date = variable_value(request, 'send_date__lte')[0:10]
            if request.GET.get('status__exact'):
                status = variable_value(request, 'status__exact')
            if request.GET.get('sms_campaign'):
                smscampaign = variable_value(request, 'sms_campaign')
            form = AdminSMSSearchForm(
                initial={
                    'status': status,
                    'from_date': from_date,
                    'to_date': to_date,
                    'smscampaign': smscampaign
                })

        ChangeList = self.get_changelist(request)
        try:
            cl = ChangeList(request, self.model, self.list_display,
                            self.list_display_links, self.list_filter,
                            self.date_hierarchy, self.search_fields,
                            self.list_select_related, self.list_per_page,
                            self.list_max_show_all, self.list_editable, self)
        except IncorrectLookupParameters:
            if ERROR_FLAG in request.GET.keys():
                return render_to_response('admin/invalid_setup.html',
                                          {'title': _('Database error')})
            return HttpResponseRedirect(request.path + '?' + ERROR_FLAG + '=1')

        kwargs = {}
        if request.META['QUERY_STRING'] == '':
            tday = datetime.utcnow().replace(tzinfo=utc)
            kwargs['send_date__gte'] = datetime(tday.year, tday.month,
                                                tday.day, 0, 0, 0,
                                                0).replace(tzinfo=utc)
            cl.root_query_set.filter(**kwargs)

        cl.formset = None
        # Session variable is used to get record set with searched option into export file
        request.session['admin_sms_record_qs'] = cl.root_query_set

        selection_note_all = ungettext('%(total_count)s selected',
                                       'All %(total_count)s selected',
                                       cl.result_count)

        ctx = {
            'selection_note': _('0 of %(cnt)s selected') % {
                'cnt': len(cl.result_list)
            },
            'selection_note_all': selection_note_all % {
                'total_count': cl.result_count
            },
            'cl': cl,
            'form': form,
            'opts': opts,
            'model_name': opts.object_name.lower(),
            'app_label': _('SMS module'),
            'title': _('SMS report'),
        }
        return super(SMSMessageAdmin, self).changelist_view(request,
                                                            extra_context=ctx)
Ejemplo n.º 8
0
def sms_record_common_fun(request):
    """Return Form with Initial data or Array (kwargs) for SMS_Report
    Changelist_view"""
    start_date = ''
    end_date = ''
    if request.POST.get('from_date'):
        from_date = request.POST.get('from_date')
        start_date = datetime(int(from_date[0:4]), int(from_date[5:7]),
                              int(from_date[8:10]), 0, 0, 0,
                              0).replace(tzinfo=utc)
    if request.POST.get('to_date'):
        to_date = request.POST.get('to_date')
        end_date = datetime(int(to_date[0:4]), int(to_date[5:7]),
                            int(to_date[8:10]), 23, 59, 59,
                            999999).replace(tzinfo=utc)

    # Assign form field value to local variable
    status = variable_value(request, 'status')
    smscampaign = variable_value(request, 'smscampaign')

    # Patch code for persist search
    if request.method != 'POST':

        if request.session.get('from_date'):
            from_date = request.session['from_date']
            start_date = datetime(int(from_date[0:4]), int(from_date[5:7]),
                                  int(from_date[8:10]), 0, 0, 0,
                                  0).replace(tzinfo=utc)

        if request.session.get('to_date'):
            to_date = request.session['to_date']
            end_date = datetime(int(to_date[0:4]), int(to_date[5:7]),
                                int(to_date[8:10]), 23, 59, 59,
                                999999).replace(tzinfo=utc)

        if request.session.get('status'):
            status = request.session['status']

        if request.session.get('smscampaign'):
            smscampaign = request.session['smscampaign']

    kwargs = {}
    if start_date and end_date:
        kwargs['send_date__range'] = (start_date, end_date)
    if start_date and end_date == '':
        kwargs['send_date__gte'] = start_date
    if start_date == '' and end_date:
        kwargs['send_date__lte'] = end_date

    if status:
        if status != 'all':
            kwargs['status__exact'] = status

    if smscampaign and smscampaign != '0':
        kwargs['sms_campaign'] = smscampaign

    if len(kwargs) == 0:
        tday = datetime.utcnow().replace(tzinfo=utc)
        kwargs['send_date__gte'] = datetime(tday.year, tday.month, tday.day, 0,
                                            0, 0, 0).replace(tzinfo=utc)
    return kwargs
Ejemplo n.º 9
0
    def changelist_view(self, request, extra_context=None):
        """Override changelist_view method of django-admin for search parameters

        **Attributes**:

            * ``form`` - AdminSMSSearchForm
            * ``template`` - admin/mod_sms/smsmessage/sms_report.html

        **Logic Description**:

            * SMSMessage report Record Listing with search option
              search Parameters: by date, by status and by billed.
        """
        opts = SMSMessage._meta

        query_string = ""
        form = AdminSMSSearchForm(request.POST or None)
        if form.is_valid():
            query_string = sms_search_admin_form_fun(request)
            return HttpResponseRedirect(
                "/admin/" + opts.app_label + "/" + opts.object_name.lower() + "/?" + query_string
            )
        else:
            status = ""
            from_date = ""
            to_date = ""
            smscampaign = ""
            if request.GET.get("send_date__gte"):
                from_date = variable_value(request, "send_date__gte")
            if request.GET.get("send_date__lte"):
                to_date = variable_value(request, "send_date__lte")[0:10]
            if request.GET.get("status__exact"):
                status = variable_value(request, "status__exact")
            if request.GET.get("sms_campaign"):
                smscampaign = variable_value(request, "sms_campaign")
            form = AdminSMSSearchForm(
                initial={"status": status, "from_date": from_date, "to_date": to_date, "smscampaign": smscampaign}
            )

        ChangeList = self.get_changelist(request)
        try:
            cl = ChangeList(
                request,
                self.model,
                self.list_display,
                self.list_display_links,
                self.list_filter,
                self.date_hierarchy,
                self.search_fields,
                self.list_select_related,
                self.list_per_page,
                self.list_max_show_all,
                self.list_editable,
                self,
            )
        except IncorrectLookupParameters:
            if ERROR_FLAG in request.GET.keys():
                return render_to_response("admin/invalid_setup.html", {"title": _("Database error")})
            return HttpResponseRedirect(request.path + "?" + ERROR_FLAG + "=1")

        kwargs = {}
        if request.META["QUERY_STRING"] == "":
            tday = datetime.utcnow().replace(tzinfo=utc)
            kwargs["send_date__gte"] = datetime(tday.year, tday.month, tday.day, 0, 0, 0, 0).replace(tzinfo=utc)
            cl.root_query_set.filter(**kwargs)

        cl.formset = None
        # Session variable is used to get record set with searched option into export file
        request.session["admin_sms_record_qs"] = cl.root_query_set

        selection_note_all = ungettext("%(total_count)s selected", "All %(total_count)s selected", cl.result_count)

        ctx = {
            "selection_note": _("0 of %(cnt)s selected") % {"cnt": len(cl.result_list)},
            "selection_note_all": selection_note_all % {"total_count": cl.result_count},
            "cl": cl,
            "form": form,
            "opts": opts,
            "model_name": opts.object_name.lower(),
            "app_label": _("SMS module"),
            "title": _("SMS report"),
        }
        return super(SMSMessageAdmin, self).changelist_view(request, extra_context=ctx)
Ejemplo n.º 10
0
    def changelist_view(self, request, extra_context=None):
        """Override changelist_view method of django-admin for search parameters

        **Attributes**:

            * ``form`` - AdminSMSSearchForm
            * ``template`` - admin/mod_sms/smsmessage/sms_report.html

        **Logic Description**:

            * SMSMessage report Record Listing with search option
              search Parameters: by date, by status and by billed.
        """
        opts = SMSMessage._meta

        query_string = ''
        form = AdminSMSSearchForm(request.POST or None)
        if form.is_valid():
            query_string = sms_search_admin_form_fun(request)
            return HttpResponseRedirect(
                "/admin/" + opts.app_label + "/" + opts.object_name.lower() + "/?" + query_string)
        else:
            status = ''
            from_date = ''
            to_date = ''
            smscampaign = ''
            if request.GET.get('send_date__gte'):
                from_date = variable_value(request, 'send_date__gte')
            if request.GET.get('send_date__lte'):
                to_date = variable_value(request, 'send_date__lte')[0:10]
            if request.GET.get('status__exact'):
                status = variable_value(request, 'status__exact')
            if request.GET.get('sms_campaign'):
                smscampaign = variable_value(request, 'sms_campaign')
            form = AdminSMSSearchForm(initial={'status': status,
                                               'from_date': from_date,
                                               'to_date': to_date,
                                               'smscampaign': smscampaign})

        ChangeList = self.get_changelist(request)
        try:
            cl = ChangeList(request, self.model, self.list_display,
                self.list_display_links, self.list_filter, self.date_hierarchy,
                self.search_fields, self.list_select_related,
                self.list_per_page, self.list_max_show_all, self.list_editable,
                self)
        except IncorrectLookupParameters:
            if ERROR_FLAG in request.GET.keys():
                return render_to_response('admin/invalid_setup.html',
                                          {'title': _('Database error')})
            return HttpResponseRedirect(request.path + '?' + ERROR_FLAG + '=1')

        kwargs = {}
        if request.META['QUERY_STRING'] == '':
            tday = datetime.utcnow().replace(tzinfo=utc)
            kwargs['send_date__gte'] = datetime(tday.year, tday.month, tday.day,
                0, 0, 0, 0).replace(tzinfo=utc)
            cl.root_query_set.filter(**kwargs)

        cl.formset = None
        # Session variable is used to get record set with searched option into export file
        request.session['admin_sms_record_qs'] = cl.root_query_set

        selection_note_all = ungettext('%(total_count)s selected',
            'All %(total_count)s selected', cl.result_count)

        ctx = {
            'selection_note': _('0 of %(cnt)s selected') % {'cnt': len(cl.result_list)},
            'selection_note_all': selection_note_all % {'total_count': cl.result_count},
            'cl': cl,
            'form': form,
            'opts': opts,
            'model_name': opts.object_name.lower(),
            'app_label': _('SMS module'),
            'title': _('SMS report'),
        }
        return super(SMSMessageAdmin, self).changelist_view(request, extra_context=ctx)