diff --git a/feedback/models.py b/feedback/models.py index 5998bacc..16024456 100644 --- a/feedback/models.py +++ b/feedback/models.py @@ -1,3 +1,5 @@ +from urllib.parse import quote, urlparse, urlunparse + from django.conf import settings from django.core.validators import MinLengthValidator from django.db import models @@ -55,3 +57,13 @@ class IssueChoices(models.TextChoices): entity_name = models.CharField(max_length=250) entity_url = models.CharField(max_length=250) data_custodian_email = models.CharField(max_length=250) + + @property + def formatted_entity_url(self): + parsed_url = urlparse(self.entity_url) + path = quote(parsed_url.path) + formatted_entity_url = urlunparse( + (parsed_url.scheme, parsed_url.netloc, path, "", "", "") + ) + print(f"formatted entity url: {formatted_entity_url}") + return formatted_entity_url diff --git a/feedback/service.py b/feedback/service.py index 859963c1..a520ed0e 100644 --- a/feedback/service.py +++ b/feedback/service.py @@ -28,12 +28,14 @@ def send( personalisation = { "assetOwner": ( - issue.data_custodian_email if issue.data_custodian_email else "Data Catalog Team" + issue.data_custodian_email + if issue.data_custodian_email + else "Data Catalog Team" ), "userEmail": issue.created_by.email if issue.created_by else "", "assetName": issue.entity_name, "userMessage": issue.additional_info, - "assetUrl": issue.entity_url, + "assetUrl": issue.formatted_entity_url, } reference = str(issue.id)