diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index 095582b29..6001660df 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -1,4 +1,5 @@ import calendar +from collections import namedtuple from datetime import datetime from functools import partial from itertools import groupby @@ -416,15 +417,21 @@ def get_free_paid_breakdown_for_billable_units(year, free_sms_fragment_limit, bi free_sms_fragment_limit, cumulative, previous_cumulative, [billing_month for billing_month in sms_units if billing_month['month'] == month] ) - letter_billing = [(x['billing_units'], x['rate'], (x['billing_units'] * x['rate']), x['postage']) + + LetterDetails = namedtuple('LetterDetails', ['billing_units', 'rate', 'cost', 'postage']) + + letter_billing = [LetterDetails(billing_units=x['billing_units'], + rate=x['rate'], + cost=(x['billing_units'] * x['rate']), + postage=x['postage']) for x in letter_units if x['month'] == month] if letter_billing: - letter_billing.sort(key=lambda x: (x[3], x[1])) + letter_billing.sort(key=lambda x: (x.postage, x.rate)) letter_total = 0 for x in letter_billing: - letter_total += x[2] + letter_total += x.cost letter_cumulative += letter_total yield { 'name': month, diff --git a/app/templates/views/usage.html b/app/templates/views/usage.html index 1517e2790..2ffefa85c 100644 --- a/app/templates/views/usage.html +++ b/app/templates/views/usage.html @@ -108,9 +108,9 @@ {{- ' {:.2f}p'.format(sms_rate * 100) }} {% endif %} {% for letter in month.letters%} - {% if letter[0] %} -