mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-25 10:29:14 -04:00
Merge pull request #2996 from alphagov/free-sms-fragment-report
Show free sms fragments in live services billing report
This commit is contained in:
@@ -203,33 +203,34 @@ def platform_admin_reports():
|
||||
@user_is_platform_admin
|
||||
def live_services_csv():
|
||||
results = service_api_client.get_live_services_data()["data"]
|
||||
live_services_columns = [
|
||||
"Service ID", "Organisation", "Organisation type", "Service name", "Consent to research", "Main contact",
|
||||
"Contact email", "Contact mobile", "Live date", "SMS volume intent", "Email volume intent",
|
||||
"Letter volume intent", "SMS sent this year", "Emails sent this year", "Letters sent this year"
|
||||
]
|
||||
live_services_data = []
|
||||
live_services_data.append(live_services_columns)
|
||||
|
||||
column_names = OrderedDict([
|
||||
('service_id', 'Service ID'),
|
||||
('organisation_name', 'Organisation'),
|
||||
('organisation_type', 'Organisation type'),
|
||||
('service_name', 'Service name'),
|
||||
('consent_to_research', 'Consent to research'),
|
||||
('contact_name', 'Main contact'),
|
||||
('contact_email', 'Contact email'),
|
||||
('contact_mobile', 'Contact mobile'),
|
||||
('live_date', 'Live date'),
|
||||
('sms_volume_intent', 'SMS volume intent'),
|
||||
('email_volume_intent', 'Email volume intent'),
|
||||
('letter_volume_intent', 'Letter volume intent'),
|
||||
('sms_totals', 'SMS sent this year'),
|
||||
('email_totals', 'Emails sent this year'),
|
||||
('letter_totals', 'Letters sent this year'),
|
||||
('free_sms_fragment_limit', 'Free sms allowance'),
|
||||
])
|
||||
|
||||
# initialise with header row
|
||||
live_services_data = [[x for x in column_names.values()]]
|
||||
|
||||
for row in results:
|
||||
live_services_data.append([
|
||||
row["service_id"],
|
||||
row["organisation_name"],
|
||||
row["organisation_type"],
|
||||
row["service_name"],
|
||||
row["consent_to_research"],
|
||||
row["contact_name"],
|
||||
row["contact_email"],
|
||||
row["contact_mobile"],
|
||||
datetime.strptime(
|
||||
row["live_date"], '%a, %d %b %Y %X %Z'
|
||||
).strftime("%d-%m-%Y") if row["live_date"] else None,
|
||||
row["sms_volume_intent"],
|
||||
row["email_volume_intent"],
|
||||
row["letter_volume_intent"],
|
||||
row["sms_totals"],
|
||||
row["email_totals"],
|
||||
row["letter_totals"],
|
||||
])
|
||||
if row['live_date']:
|
||||
row['live_date'] = datetime.strptime(row["live_date"], '%a, %d %b %Y %X %Z').strftime("%d-%m-%Y")
|
||||
|
||||
live_services_data.append([row[api_key] for api_key in column_names.keys()])
|
||||
|
||||
return Spreadsheet.from_rows(live_services_data).as_csv_data, 200, {
|
||||
'Content-Type': 'text/csv; charset=utf-8',
|
||||
|
||||
@@ -962,12 +962,14 @@ def test_get_live_services_report(client, platform_admin_user, mocker):
|
||||
'consent_to_research': True, 'contact_name': 'Forest fairy', 'organisation_type': 'Ecosystem',
|
||||
'contact_email': 'forest.fairy@digital.cabinet-office.gov.uk', 'contact_mobile': '+447700900986',
|
||||
'live_date': 'Sat, 29 Mar 2014 00:00:00 GMT', 'sms_volume_intent': 100, 'email_volume_intent': 50,
|
||||
'letter_volume_intent': 20, 'sms_totals': 300, 'email_totals': 1200, 'letter_totals': 0},
|
||||
'letter_volume_intent': 20, 'sms_totals': 300, 'email_totals': 1200, 'letter_totals': 0,
|
||||
'free_sms_fragment_limit': 100},
|
||||
{'service_id': 2, 'service_name': 'james the pine tree', 'organisation_name': 'Forest',
|
||||
'consent_to_research': None, 'contact_name': None, 'organisation_type': 'Ecosystem',
|
||||
'contact_email': None, 'contact_mobile': None,
|
||||
'live_date': None, 'sms_volume_intent': None, 'email_volume_intent': 60,
|
||||
'letter_volume_intent': 0, 'sms_totals': 0, 'email_totals': 0, 'letter_totals': 0},
|
||||
'letter_volume_intent': 0, 'sms_totals': 0, 'email_totals': 0, 'letter_totals': 0,
|
||||
'free_sms_fragment_limit': 200},
|
||||
]}
|
||||
)
|
||||
response = client.get(url_for('main.live_services_csv'))
|
||||
@@ -976,9 +978,12 @@ def test_get_live_services_report(client, platform_admin_user, mocker):
|
||||
assert report.strip() == (
|
||||
'Service ID,Organisation,Organisation type,Service name,Consent to research,Main contact,Contact email,'
|
||||
+ 'Contact mobile,Live date,SMS volume intent,Email volume intent,Letter volume intent,SMS sent this year,'
|
||||
+ 'Emails sent this year,Letters sent this year\r\n1,Forest,Ecosystem,jessie the oak tree,True,Forest fairy,'
|
||||
+ 'forest.fairy@digital.cabinet-office.gov.uk,+447700900986,29-03-2014,100,50,20,300,1200,0\r\n2,Forest,'
|
||||
+ 'Ecosystem,james the pine tree,,,,,,,60,0,0,0,0'
|
||||
+ 'Emails sent this year,Letters sent this year,Free sms allowance\r\n'
|
||||
|
||||
+ '1,Forest,Ecosystem,jessie the oak tree,True,Forest fairy,forest.fairy@digital.cabinet-office.gov.uk,'
|
||||
+ '+447700900986,29-03-2014,100,50,20,300,1200,0,100\r\n'
|
||||
|
||||
+ '2,Forest,Ecosystem,james the pine tree,,,,,,,60,0,0,0,0,200'
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user