From 13d05c5461f1637c5c30f15b405a5f67c3c10802 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Fri, 13 Jul 2018 16:47:26 +0100 Subject: [PATCH 01/10] Allow a platform admin user to set flexible data retention for a service for a specified notification type. Still a work in progress --- app/main/views/service_settings.py | 14 ++++++++++ app/notify_client/service_api_client.py | 20 +++++++++++++ app/templates/views/service-settings.html | 5 ++++ .../service-settings/set-data-retention.html | 28 +++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 app/templates/views/service-settings/set-data-retention.html diff --git a/app/main/views/service_settings.py b/app/main/views/service_settings.py index efe41b6dc..525bb1857 100644 --- a/app/main/views/service_settings.py +++ b/app/main/views/service_settings.py @@ -86,6 +86,7 @@ def service_settings(service_id): ) free_sms_fragment_limit = billing_api_client.get_free_sms_fragment_limit_for_year(service_id) + data_retention = service_api_client.get_service_data_retention(service_id) return render_template( 'views/service-settings.html', @@ -104,6 +105,7 @@ def service_settings(service_id): free_sms_fragment_limit=free_sms_fragment_limit, prefix_sms=current_service['prefix_sms'], organisation=organisation, + data_retention=data_retention, ) @@ -1008,6 +1010,18 @@ def branding_request(service_id): ) +@main.route("/services//set-data-retention", methods=['GET', 'POST']) +@login_required +@user_is_platform_admin +def set_data_retention(service_id): + results = service_api_client.get_service_data_retention(service_id) + print("DATA RETENTION: ", results[0]) + return render_template( + 'views/service-settings/set-data-retention.html', + data_retentions=results + ) + + def get_branding_as_value_and_label(email_branding): return [ (branding['id'], branding['name']) diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py index a60fb135d..b2d2f79b5 100644 --- a/app/notify_client/service_api_client.py +++ b/app/notify_client/service_api_client.py @@ -480,3 +480,23 @@ class ServiceAPIClient(NotifyAdminAPIClient): "updated_by_id": user_id } return self.post("/service/{}/delivery-receipt-api".format(service_id), data) + + def create_service_data_retention(self, service_id, notification_type, days_of_retention): + data = { + "notification_type": notification_type, + "days_of_retention": days_of_retention + } + + return self.post("/service/{}/data-retention".format(service_id), data) + + def update_service_data_retention(self, service_id, data_retention_id, days_of_retention): + data = { + "days_of_retention": days_of_retention + } + return self.post("/service/{}/data-retention/{}".format(service_id, data_retention_id), data) + + def get_service_data_retention(self, service_id): + return self.get("/service/{}/data-retention".format(service_id)) + + def get_service_data_retention_by_id(self, service_id, data_retention_id): + return self.get("service/{}/data-retention/{}".format(service_id, data_retention_id)) diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html index 8aa628d4d..77d7799e9 100644 --- a/app/templates/views/service-settings.html +++ b/app/templates/views/service-settings.html @@ -320,6 +320,11 @@ {{ text_field(letter_branding) }} {{ edit_field('Change', url_for('.set_letter_branding', service_id=current_service.id)) }} {% endcall %} + {% call row() %} + {{ text_field('Data Retention')}} + {{ text_field(data_retention[0]['notification_type']) }} + {{ edit_field('Change', url_for('.set_data_retention', service_id=current_service.id)) }} + {% endcall %} {% endcall %}