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
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)
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)
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
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)
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)
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
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)
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)