def zone(request, pk=None, region_pk=None, action=None, template_name="meter/location_form.html"): data = {} ZoneForm = ZoneConRegionForm if region_pk else ZoneSinRegionForm if request.method == "GET": if action in ("C", "U", "R"): if pk: data['zone'] = get_object_or_404(Zone, pk=pk) data['subzones'] = data['zone'].subzone_set.all() if action == "U": zoneForm = ZoneForm( instance=get_object_or_404(Zone, pk=pk)) else: zoneForm = ZoneForm() if request.method == "POST": if action in ("C", "U", "D"): if action in ("C", "U"): if pk: zoneForm = ZoneForm(request.POST, instance=get_object_or_404(Zone, pk=pk)) else: zoneForm = ZoneForm(request.POST) if zoneForm.is_valid(): zone = zoneForm.save(commit=False) if region_pk: zone.region = get_object_or_404(Region, id=region_pk) zone.save() return HttpResponseRedirect( reverse("zone-details", args=[zone.pk])) else: if checkReceptionist(request): return HttpResponseRedirect(reverse("subzone-list")) zone = get_object_or_404(Zone, pk=pk) zone.delete() if action in ("C", "U"): if checkReceptionist(request): return HttpResponseRedirect(reverse("zone-list")) if checkDirector(request): return HttpResponseRedirect(reverse("zone-list")) data['zoneForm'] = zoneForm data['locationForm'] = zoneForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def meter_readings(request, pk=None, action=None, template_name="meter/upload_readings.html"): data = {} if request.method == "GET": if action == 'C': form = MeterReadingsForm() if request.method == 'POST': form = MeterReadingsForm(request.POST, request.FILES) if form.is_valid(): handle_uploaded_file(request.FILES['meter_readings_file']) data = upload_readings(request.user.pk) form = MeterReadingsForm() #return HttpResponseRedirect(reverse("uploaded-readings")) else: form = MeterReadingsForm() if action == 'C': if checkReceptionist(request): return HttpResponseRedirect(reverse("subzone-list")) if checkDirector(request): return HttpResponseRedirect(reverse("home")) data['form'] = form return render_to_response(template_name, data, context_instance=RequestContext(request))
def consumption(request, pk=None, action=None, consumer_type=None, boundary=None, template_name="consumer/consumption_form.html"): data = {} ConsumptionForm = BoundaryRateForm if boundary != None else NormConsumptionForm if request.method == "GET": if action in ("create", "read", "update"): if pk: data['consumption'] = get_object_or_404(Consumption, pk=pk) data['consumption_rates'] = previous_and_current(Consumption.objects.filter(consumer_type=data['consumption'].consumer_type)) if action == "update": consumptionForm = ConsumptionForm(instance=get_object_or_404(Consumption, pk=pk)) elif consumer_type: data['consumertype'] = get_object_or_404(ConsumerType, pk=consumer_type) rates = data['consumertype'].consumption_set.all() data['consumption_rates'] = previous_and_current(list(rates)) consumptionForm = ConsumptionForm() else: return HttpResponseForbidden() elif request.method == "POST": if action in ("create", "update"): if pk: consumptionForm = ConsumptionForm(request.POST, instance=get_object_or_404(Consumption, pk=pk)) else: consumptionForm = ConsumptionForm(request.POST) if consumptionForm.is_valid(): if action == "create": rates = Consumption.objects.filter(consumer_type=ConsumerType.objects.filter( pk=consumer_type)).reverse() if rates: rate = rates[0] consumption = consumptionForm.save(commit=False) if rate.border_rate: if rate.max_unit < consumption.max_unit: rate.max_unit = consumption.max_unit +1 rate.save() if boundary: consumption.max_unit = rate.max_unit +1 consumption.border_rate = True if consumer_type: consumption.consumer_type = get_object_or_404(ConsumerType, pk=consumer_type) consumption.save() else: consumption = consumptionForm.save(commit=False) if consumer_type: consumption.consumer_type = get_object_or_404(ConsumerType, pk=consumer_type) consumption.save() elif action == "update": consumption = consumptionForm.save(commit=False) consumption.save() return HttpResponseRedirect(reverse("consumer-type-details", args=[consumption.consumer_type.pk])) else: consumption = get_object_or_404(Consumption, pk=pk) consumption.delete() if action in ("create", "update"): if checkReceptionist(request): return HttpResponseRedirect(reverse("consumer-type-list")) data['consumptionForm'] = consumptionForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def subzone(request, pk=None, zone_pk=None, action=None, template_name="meter/location_form.html"): data = {} SubZoneForm = SubZoneConForm if zone_pk else SubZoneSinForm if request.method == "GET": if action in ("C", "U", "R"): if pk: data['subzone'] = get_object_or_404(SubZone, pk=pk) data['plots'] = data['subzone'].plot_set.all() if action == "U": subzoneForm = SubZoneForm(instance=get_object_or_404(SubZone, pk=pk)) else: subzoneForm = SubZoneForm() if request.method == "POST": if action in ("C", "U", "D"): if action in ("C", "U"): if pk: subzoneForm = SubZoneForm(request.POST, instance=get_object_or_404(SubZone, pk=pk)) else: subzoneForm = SubZoneForm(request.POST) if subzoneForm.is_valid(): subzone = subzoneForm.save(commit=False) subzone.save() return HttpResponseRedirect(reverse("subzone-details", args=[subzone.pk])) else: if checkReceptionist(request): return HttpResponseRedirect(reverse("subzone-list")) subzone = get_object_or_404(SubZone, pk=pk) if zone_pk: subzone.zone = get_object_or_404(Zone, id=region_pk) subzone.delete() if action in ("C", "U"): if checkReceptionist(request): return HttpResponseRedirect(reverse("subzone-list")) if checkDirector(request): return HttpResponseRedirect(reverse("subzone-list")) data['subzoneForm'] = subzoneForm data['locationForm'] = subzoneForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def account(request, pk=None, action=None, template_name="consumer/consumer_account.html"): data = {} if request.method == "GET": if pk: data['account'] = get_object_or_404(Account, pk=pk) accountForm = AccountForm( instance=get_object_or_404(Account, pk=pk)) if request.method == "POST": if action in ("C", "U", "R"): if action in ("U", "R"): if checkDirector(request): return HttpResponseRedirect(reverse("account-list")) if pk: accountForm = AccountForm(request.POST, instance=get_object_or_404(Account, pk=pk)) else: accountForm = AccountForm(request.POST) if accountForm.is_valid(): account = accountForm.save(commit=False) account.date_activated = datetime.datetime.today() account.save() return HttpResponseRedirect( reverse("consumer-details", args=[account.application.consumer.pk])) elif action in ("activate", "close"): account = get_object_or_404(Account, pk=pk) if action == "activate": account.closed = False account.is_active = True account.date_activated = datetime.datetime.today() elif action == "close": account.closed = True account.is_active = False account.date_closed = datetime.datetime.today() account.save() if action in ("C", "U", "R"): if action in ("U", "R"): if checkDirector(request): return HttpResponseRedirect(reverse("account-list")) if action in ("C", "U"): if checkReceptionist(request): return HttpResponseRedirect(reverse("account-list")) data["accountForm"] = accountForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def region(request, pk=None, action=None, template_name="meter/location_form.html"): data = {} if request.method == "GET": if action in ("C", "U", "R"): if pk: data['region'] = get_object_or_404(Region, pk=pk) data['zones'] = data['region'].zone_set.all() if action == "U": regionForm = RegionForm(instance=get_object_or_404(Region, pk=pk)) else: regionForm = RegionForm() if request.method == "POST": if action in ("C", "U", "D"): if action in ("C", "U"): if pk: regionForm = RegionForm(request.POST, instance=get_object_or_404(Region, pk=pk)) else: regionForm = RegionForm(request.POST) if regionForm.is_valid(): region= regionForm.save(commit=False) region.save() return HttpResponseRedirect(reverse("region-details", args=[region.pk])) else: if checkReceptionist(request): return HttpResponseRedirect(reverse("subzone-list")) region = get_object_or_404(Region, pk=pk) region.delete() if action in ("C", "U"): if checkReceptionist(request): return HttpResponseRedirect(reverse("subzone-list")) if checkDirector(request): return HttpResponseRedirect(reverse("region-list")) data['regionForm'] = regionForm data['locationForm'] = regionForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def consumertype(request, pk=None, action=None, template_name="consumer/consumer_type_form.html"): if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: data = {} if request.method == "GET": if action in ("create", "read", "update"): if pk: data['consumertype'] = get_object_or_404(ConsumerType, pk=pk) rates = data['consumertype'].consumption_set.all() if rates: data['last_rate'] = rates.reverse()[0] data['rates'] = previous_and_current(list(rates)) if action == "update": consumertypeForm = ConsumerTypeForm( instance=get_object_or_404(ConsumerType, pk=pk)) else: consumertypeForm = ConsumerTypeForm() else: return HttpResponseForbidden() elif request.method == "POST": if action in ("create", "update"): if pk: consumertypeForm = ConsumerTypeForm( request.POST, instance=get_object_or_404(ConsumerType, pk=pk)) else: consumertypeForm = ConsumerTypeForm(request.POST) if consumertypeForm.is_valid(): consumertype = consumertypeForm.save(commit=False) consumertype.save() return HttpResponseRedirect( reverse("consumer-type-details", args=[consumertype.pk])) else: consumertype = get_object_or_404(ConsumerType, pk=pk) consumertype.delete() if action in ("create", "update"): if checkReceptionist(request): return HttpResponseRedirect(reverse("consumer-type-list")) data['consumertypeForm'] = consumertypeForm return render_to_response(template_name, data, context_instance=RequestContext(request))
def plot(request, pk=None, landlord_id=None, action=None, template_name="consumer/plot_form.html", redirect_field_name = None): data = {} if request.method == "GET": if action in ("create", "read", "update"): if pk: data['plot'] = get_object_or_404(Plot, pk=pk) data['accounts'] = account_set(data['plot'].application_set.filter(reviewed=True, approved=True)) data['landlord'] = get_object_or_404(Landlord, pk=data['plot'].landlord.id) if action == "update": plotForm = PlotForm(instance=get_object_or_404(Plot, pk=pk)) else: plotForm = PlotForm() if landlord_id: data['landlord'] = get_object_or_404(Landlord, pk=landlord_id) else: landlordForm = LandlordForm() elif request.method == "POST": if action in ("create", "read", "update"): if pk: plotForm = PlotForm(request.POST, instance=get_object_or_404(Plot, pk=pk)) else: plotForm = PlotForm(request.POST) if not landlord_id: landlordForm = LandlordForm(request.POST) if plotForm.is_valid(): plot = plotForm.save(commit=False) if not landlord_id: if landlordForm.is_valid(): landlord = landlordForm.save() plot.landlord = landlord else: landlordForm = LandlordForm() else: plot.landlord = get_object_or_404(Landlord, pk=landlord_id) plot.save() return HttpResponseRedirect(plot.landlord.get_absolute_url()) if action in ("create", "update"): if checkReceptionist(request): return HttpResponseRedirect(reverse("consumer-type-list")) if checkDirector(request): return HttpResponseRedirect(reverse("plot-list")) data['plotForm']=plotForm if not landlord_id and action=="create": data['landlordForm'] = landlordForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def account(request, pk=None, action=None, template_name="consumer/consumer_account.html"): data = {} if request.method == "GET": if pk: data['account'] = get_object_or_404(Account, pk=pk) accountForm = AccountForm(instance=get_object_or_404(Account, pk=pk)) if request.method == "POST": if action in ("C","U", "R"): if action in ("U", "R"): if checkDirector(request): return HttpResponseRedirect(reverse("account-list")) if pk: accountForm = AccountForm(request.POST, instance=get_object_or_404(Account, pk=pk)) else: accountForm = AccountForm(request.POST) if accountForm.is_valid(): account = accountForm.save(commit=False) account.date_activated = datetime.datetime.today() account.save() return HttpResponseRedirect(reverse("consumer-details", args=[account.application.consumer.pk])) elif action in ("activate", "close"): account = get_object_or_404(Account, pk=pk) if action == "activate": account.closed = False account.is_active = True account.date_activated = datetime.datetime.today() elif action=="close": account.closed = True account.is_active = False account.date_closed = datetime.datetime.today() account.save() if action in ("C","U", "R"): if action in ("U", "R"): if checkDirector(request): return HttpResponseRedirect(reverse("account-list")) if action in ("C", "U"): if checkReceptionist(request): return HttpResponseRedirect(reverse("account-list")) data["accountForm"] = accountForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def consumertype(request, pk=None, action=None, template_name="consumer/consumer_type_form.html"): if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: data = {} if request.method == "GET": if action in ("create", "read", "update"): if pk: data['consumertype'] = get_object_or_404(ConsumerType, pk=pk) rates = data['consumertype'].consumption_set.all() if rates: data['last_rate'] = rates.reverse()[0] data['rates'] = previous_and_current(list(rates)) if action == "update": consumertypeForm = ConsumerTypeForm(instance=get_object_or_404(ConsumerType, pk=pk)) else: consumertypeForm = ConsumerTypeForm() else: return HttpResponseForbidden() elif request.method == "POST": if action in ("create", "update"): if pk: consumertypeForm = ConsumerTypeForm(request.POST, instance=get_object_or_404(ConsumerType, pk=pk)) else: consumertypeForm = ConsumerTypeForm(request.POST) if consumertypeForm.is_valid(): consumertype = consumertypeForm.save(commit=False) consumertype.save() return HttpResponseRedirect(reverse("consumer-type-details", args=[consumertype.pk])) else: consumertype = get_object_or_404(ConsumerType, pk=pk) consumertype.delete() if action in ("create", "update"): if checkReceptionist(request): return HttpResponseRedirect(reverse("consumer-type-list")) data['consumertypeForm'] = consumertypeForm return render_to_response(template_name, data, context_instance=RequestContext(request))
def plot(request, pk=None, landlord_id=None, action=None, template_name="consumer/plot_form.html", redirect_field_name=None): data = {} if request.method == "GET": if action in ("create", "read", "update"): if pk: data['plot'] = get_object_or_404(Plot, pk=pk) data['accounts'] = account_set( data['plot'].application_set.filter(reviewed=True, approved=True)) data['landlord'] = get_object_or_404( Landlord, pk=data['plot'].landlord.id) if action == "update": plotForm = PlotForm( instance=get_object_or_404(Plot, pk=pk)) else: plotForm = PlotForm() if landlord_id: data['landlord'] = get_object_or_404(Landlord, pk=landlord_id) else: landlordForm = LandlordForm() elif request.method == "POST": if action in ("create", "read", "update"): if pk: plotForm = PlotForm(request.POST, instance=get_object_or_404(Plot, pk=pk)) else: plotForm = PlotForm(request.POST) if not landlord_id: landlordForm = LandlordForm(request.POST) if plotForm.is_valid(): plot = plotForm.save(commit=False) if not landlord_id: if landlordForm.is_valid(): landlord = landlordForm.save() plot.landlord = landlord else: landlordForm = LandlordForm() else: plot.landlord = get_object_or_404(Landlord, pk=landlord_id) plot.save() return HttpResponseRedirect(plot.landlord.get_absolute_url()) if action in ("create", "update"): if checkReceptionist(request): return HttpResponseRedirect(reverse("consumer-type-list")) if checkDirector(request): return HttpResponseRedirect(reverse("plot-list")) data['plotForm'] = plotForm if not landlord_id and action == "create": data['landlordForm'] = landlordForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def consumption(request, pk=None, action=None, consumer_type=None, boundary=None, template_name="consumer/consumption_form.html"): data = {} ConsumptionForm = BoundaryRateForm if boundary != None else NormConsumptionForm if request.method == "GET": if action in ("create", "read", "update"): if pk: data['consumption'] = get_object_or_404(Consumption, pk=pk) data['consumption_rates'] = previous_and_current( Consumption.objects.filter( consumer_type=data['consumption'].consumer_type)) if action == "update": consumptionForm = ConsumptionForm( instance=get_object_or_404(Consumption, pk=pk)) elif consumer_type: data['consumertype'] = get_object_or_404(ConsumerType, pk=consumer_type) rates = data['consumertype'].consumption_set.all() data['consumption_rates'] = previous_and_current(list(rates)) consumptionForm = ConsumptionForm() else: return HttpResponseForbidden() elif request.method == "POST": if action in ("create", "update"): if pk: consumptionForm = ConsumptionForm(request.POST, instance=get_object_or_404( Consumption, pk=pk)) else: consumptionForm = ConsumptionForm(request.POST) if consumptionForm.is_valid(): if action == "create": rates = Consumption.objects.filter( consumer_type=ConsumerType.objects.filter( pk=consumer_type)).reverse() if rates: rate = rates[0] consumption = consumptionForm.save(commit=False) if rate.border_rate: if rate.max_unit < consumption.max_unit: rate.max_unit = consumption.max_unit + 1 rate.save() if boundary: consumption.max_unit = rate.max_unit + 1 consumption.border_rate = True if consumer_type: consumption.consumer_type = get_object_or_404( ConsumerType, pk=consumer_type) consumption.save() else: consumption = consumptionForm.save(commit=False) if consumer_type: consumption.consumer_type = get_object_or_404( ConsumerType, pk=consumer_type) consumption.save() elif action == "update": consumption = consumptionForm.save(commit=False) consumption.save() return HttpResponseRedirect( reverse("consumer-type-details", args=[consumption.consumer_type.pk])) else: consumption = get_object_or_404(Consumption, pk=pk) consumption.delete() if action in ("create", "update"): if checkReceptionist(request): return HttpResponseRedirect(reverse("consumer-type-list")) data['consumptionForm'] = consumptionForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def index(request): if checkReceptionist(request): return HttpResponseRedirect(reverse("consumer-list")) if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) return HttpResponseRedirect(reverse('home'))
def consumer(request, pk=None, action=None, cons_type=None, template_name="consumer/consumer_details.html"): data = {} if cons_type: type_id = get_object_or_404(ConsumerType, pk=cons_type) ConsumerForm = DomesticConsumerForm if type_id.consumer_type.lower() == 'domestic' else CorporateConsumerForm else: customer = get_object_or_404(Consumer, pk=pk) ConsumerForm = DomesticConsumerForm if customer.consumer_type.consumer_type.lower() == 'domestic' else CorporateConsumerForm all_accounts = [] if request.method == "GET": if action in ("C", "R", "U"): if pk: consumer = get_object_or_404(Consumer, pk=pk) data['consumer'] = consumer data['applications'] = consumer.application_set.all() data['unreviewed_applications'] = consumer.application_set.filter(reviewed=False) data['active_accounts'] = account_set(data['applications']) all_accounts.extend(data['active_accounts']) data['inactive_accounts'] = account_set(data['applications'], active=False) all_accounts.extend(data['inactive_accounts']) data['suspended_accounts'] = account_set(data['applications'], active=False, closed=True) all_accounts.extend(data['suspended_accounts']) #Consumer Financial data data['invoices'] =[] data['payments'] =[] invoice_total = 0 payment_total = 0 for account in all_accounts: data['invoices'].extend(list(account.invoice_set.all())) for invoice in data['invoices']: invoice_total += invoice.total for account in all_accounts: data['payments'].extend(list(account.payment_set.all())) for payment in data['payments']: payment_total += payment.amount_paid data['invoice_total'] = invoice_total data['payment_total'] = payment_total data['balance'] = invoice_total-payment_total if action in "U": consumerForm = ConsumerForm(instance=get_object_or_404(Consumer, pk=pk)) else: consumerForm = ConsumerForm() else: return HttpResponseForbidden() elif request.method == "POST": if action in ("C","D","U"): if action in ("C","U"): if pk: consumerForm = ConsumerForm(request.POST, instance=get_object_or_404(Consumer, pk=pk)) else: consumerForm = ConsumerForm(request.POST) if consumerForm.is_valid(): consumer = consumerForm.save(commit=False) consumer.consumer_type = get_object_or_404(ConsumerType, pk=cons_type) consumer.save() return HttpResponseRedirect(reverse("application-add", args=[consumer.pk]) if action=="C" else consumer.get_absolute_url()) else: if checkReceptionist(request): return HttpResponseRedirect(reverse("consumer-details", args=[consumer.pk])) consumer = get_object_or_404(Consumer, pk=pk) consumer.delete() else: return HttpResponseForbidden() if action in ("C","U"): if checkDirector(request): return HttpResponseRedirect(reverse("consumer-list")) data["consumerForm"] = consumerForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))
def consumer(request, pk=None, action=None, cons_type=None, template_name="consumer/consumer_details.html"): data = {} if cons_type: type_id = get_object_or_404(ConsumerType, pk=cons_type) ConsumerForm = DomesticConsumerForm if type_id.consumer_type.lower( ) == 'domestic' else CorporateConsumerForm else: customer = get_object_or_404(Consumer, pk=pk) ConsumerForm = DomesticConsumerForm if customer.consumer_type.consumer_type.lower( ) == 'domestic' else CorporateConsumerForm all_accounts = [] if request.method == "GET": if action in ("C", "R", "U"): if pk: consumer = get_object_or_404(Consumer, pk=pk) data['consumer'] = consumer data['applications'] = consumer.application_set.all() data[ 'unreviewed_applications'] = consumer.application_set.filter( reviewed=False) data['active_accounts'] = account_set(data['applications']) all_accounts.extend(data['active_accounts']) data['inactive_accounts'] = account_set(data['applications'], active=False) all_accounts.extend(data['inactive_accounts']) data['suspended_accounts'] = account_set(data['applications'], active=False, closed=True) all_accounts.extend(data['suspended_accounts']) #Consumer Financial data data['invoices'] = [] data['payments'] = [] invoice_total = 0 payment_total = 0 for account in all_accounts: data['invoices'].extend(list(account.invoice_set.all())) for invoice in data['invoices']: invoice_total += invoice.total for account in all_accounts: data['payments'].extend(list(account.payment_set.all())) for payment in data['payments']: payment_total += payment.amount_paid data['invoice_total'] = invoice_total data['payment_total'] = payment_total data['balance'] = invoice_total - payment_total if action in "U": consumerForm = ConsumerForm( instance=get_object_or_404(Consumer, pk=pk)) else: consumerForm = ConsumerForm() else: return HttpResponseForbidden() elif request.method == "POST": if action in ("C", "D", "U"): if action in ("C", "U"): if pk: consumerForm = ConsumerForm(request.POST, instance=get_object_or_404( Consumer, pk=pk)) else: consumerForm = ConsumerForm(request.POST) if consumerForm.is_valid(): consumer = consumerForm.save(commit=False) consumer.consumer_type = get_object_or_404(ConsumerType, pk=cons_type) consumer.save() return HttpResponseRedirect( reverse("application-add", args=[consumer.pk]) if action == "C" else consumer.get_absolute_url()) else: if checkReceptionist(request): return HttpResponseRedirect( reverse("consumer-details", args=[consumer.pk])) consumer = get_object_or_404(Consumer, pk=pk) consumer.delete() else: return HttpResponseForbidden() if action in ("C", "U"): if checkDirector(request): return HttpResponseRedirect(reverse("consumer-list")) data["consumerForm"] = consumerForm if checkCredentials(request): return HttpResponseRedirect(reverse('meter-readings-add')) else: return render_to_response(template_name, data, context_instance=RequestContext(request))