From 709ca1e5e4bb8baefbdceccd8b8a0fbe5d309838 Mon Sep 17 00:00:00 2001 From: j-awada Date: Tue, 11 Feb 2025 15:24:16 +0100 Subject: [PATCH 01/10] send email confirmation on project access --- projects/views.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/projects/views.py b/projects/views.py index 04de9c7d2..6227f1ae8 100644 --- a/projects/views.py +++ b/projects/views.py @@ -9,6 +9,7 @@ from django.contrib.auth import get_user_model from django.contrib.auth.decorators import login_required from django.core.exceptions import FieldDoesNotExist +from django.core.mail import send_mail from django.db.models import Model, Q from django.http import ( HttpResponse, @@ -350,6 +351,19 @@ def post(self, request, project_slug): project.authorized.add(selected_user) assign_perm("can_view_project", selected_user, project) + try: + # Notify user + send_mail( + f"You've been added to {project.name}", + f"Hi {selected_username}! You can now view the following project: {project.name}.", + settings.EMAIL_HOST_USER, + [selected_username], + fail_silently=False, + ) + + except Exception as err: + logger.exception(f"Unable to send email to user: {str(err)}", exc_info=True) + log = ProjectLog( project=project, module="PR", From 6063f70118266078565046b24d933facbedf1eaa Mon Sep 17 00:00:00 2001 From: j-awada Date: Tue, 11 Feb 2025 17:01:34 +0100 Subject: [PATCH 02/10] improve email message content --- projects/views.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/projects/views.py b/projects/views.py index 6227f1ae8..079097ed9 100644 --- a/projects/views.py +++ b/projects/views.py @@ -351,11 +351,24 @@ def post(self, request, project_slug): project.authorized.add(selected_user) assign_perm("can_view_project", selected_user, project) + project_uri = f"{request.get_host()}/projects/{project.slug}" + email_body = f"""\ +Hi {selected_username}, + +You have been added to the project {project.name} on SciLifeLab Serve (https://serve.scilifelab.se) by {request.user.username}. You can now view the project here: {project_uri} +If you have any questions get in touch with us at serve@scilifelab.se. + +Thank you for signing up for our service. We are excited to have you on board! + +Best regards, +The Data Centre team +""" + try: # Notify user send_mail( f"You've been added to {project.name}", - f"Hi {selected_username}! You can now view the following project: {project.name}.", + email_body, settings.EMAIL_HOST_USER, [selected_username], fail_silently=False, From 87f056674478fedbc16b2e02c9f7080b2d288d21 Mon Sep 17 00:00:00 2001 From: j-awada Date: Tue, 11 Feb 2025 17:11:01 +0100 Subject: [PATCH 03/10] fix linting issue and remove dots at eol --- projects/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/projects/views.py b/projects/views.py index 079097ed9..10c2d19e2 100644 --- a/projects/views.py +++ b/projects/views.py @@ -355,8 +355,9 @@ def post(self, request, project_slug): email_body = f"""\ Hi {selected_username}, -You have been added to the project {project.name} on SciLifeLab Serve (https://serve.scilifelab.se) by {request.user.username}. You can now view the project here: {project_uri} -If you have any questions get in touch with us at serve@scilifelab.se. +You have been added to the project {project.name} on SciLifeLab Serve (https://serve.scilifelab.se) by {request.user.username} +You can now view the project here: {project_uri} +If you have any questions get in touch with us at serve@scilifelab.se Thank you for signing up for our service. We are excited to have you on board! From 3e3e241e8e054490d01f5c391042b7d62c340215 Mon Sep 17 00:00:00 2001 From: j-awada Date: Tue, 11 Feb 2025 17:15:26 +0100 Subject: [PATCH 04/10] resolve linting issue: make line even shorter --- projects/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/views.py b/projects/views.py index 10c2d19e2..76aa81145 100644 --- a/projects/views.py +++ b/projects/views.py @@ -355,7 +355,7 @@ def post(self, request, project_slug): email_body = f"""\ Hi {selected_username}, -You have been added to the project {project.name} on SciLifeLab Serve (https://serve.scilifelab.se) by {request.user.username} +{request.user.username} added you to the project {project.name} on SciLifeLab Serve (https://serve.scilifelab.se) You can now view the project here: {project_uri} If you have any questions get in touch with us at serve@scilifelab.se From 97c777de3f6c62b794a6aa48ecbe58b3fd6f9d71 Mon Sep 17 00:00:00 2001 From: j-awada Date: Tue, 11 Feb 2025 17:19:47 +0100 Subject: [PATCH 05/10] linting fix: remove trailing whitespace --- projects/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/views.py b/projects/views.py index 76aa81145..cfe5bb6e2 100644 --- a/projects/views.py +++ b/projects/views.py @@ -361,7 +361,7 @@ def post(self, request, project_slug): Thank you for signing up for our service. We are excited to have you on board! -Best regards, +Best regards, The Data Centre team """ From 8d9b1cb01ffd15da612ab1e26f84f9c7729bc15c Mon Sep 17 00:00:00 2001 From: j-awada Date: Thu, 13 Feb 2025 08:54:55 +0100 Subject: [PATCH 06/10] use celery email task and add todo --- projects/views.py | 15 +++++++-------- studio/views.py | 1 + 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/projects/views.py b/projects/views.py index cfe5bb6e2..76d3cfba9 100644 --- a/projects/views.py +++ b/projects/views.py @@ -9,7 +9,6 @@ from django.contrib.auth import get_user_model from django.contrib.auth.decorators import login_required from django.core.exceptions import FieldDoesNotExist -from django.core.mail import send_mail from django.db.models import Model, Q from django.http import ( HttpResponse, @@ -27,6 +26,8 @@ from apps.app_registry import APP_REGISTRY from apps.models import BaseAppInstance +from common.tasks import send_email_task + from .exceptions import ProjectCreationException from .forms import PublishProjectToGitHub from .models import Environment, Flavor, Project, ProjectLog, ProjectTemplate @@ -366,13 +367,11 @@ def post(self, request, project_slug): """ try: - # Notify user - send_mail( - f"You've been added to {project.name}", - email_body, - settings.EMAIL_HOST_USER, - [selected_username], - fail_silently=False, + # Notify user via email + send_email_task( + subject=f"You've been added to {project.name} on SciLifeLab Serve", + message=email_body, + recipient_list=[selected_username] ) except Exception as err: diff --git a/studio/views.py b/studio/views.py index 1645ed3de..c2b3e45d3 100644 --- a/studio/views.py +++ b/studio/views.py @@ -180,6 +180,7 @@ def delete_account_post_handler(request: Response, user_id: int) -> Response: email = request.user.email logger.debug(f"User account was deleted (set to inactive). Now sending email to user email {email}") + # TODO use send_email_task instead send_mail( "User account deleted from SciLifeLab Serve", f"The user account {request.user.username} was deleted from SciLifeLab Serve as requested.", From ac0ec1ac1b767c3e68caf6574e5e0b8d3c4f8b5e Mon Sep 17 00:00:00 2001 From: j-awada Date: Thu, 13 Feb 2025 09:05:25 +0100 Subject: [PATCH 07/10] fix formatting issue --- projects/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/projects/views.py b/projects/views.py index 76d3cfba9..3a11c114d 100644 --- a/projects/views.py +++ b/projects/views.py @@ -25,7 +25,6 @@ from apps.app_registry import APP_REGISTRY from apps.models import BaseAppInstance - from common.tasks import send_email_task from .exceptions import ProjectCreationException @@ -371,7 +370,7 @@ def post(self, request, project_slug): send_email_task( subject=f"You've been added to {project.name} on SciLifeLab Serve", message=email_body, - recipient_list=[selected_username] + recipient_list=[selected_username], ) except Exception as err: From f4a0ba230a4e1da672984d5eaa8ae92983663dbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Alfred=C3=A9en?= Date: Wed, 12 Feb 2025 13:19:26 +0100 Subject: [PATCH 08/10] Update e2e-tests.yaml Upgrade action upload-artifact to v4 --- .github/workflows/e2e-tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e-tests.yaml b/.github/workflows/e2e-tests.yaml index 875d15750..a4e296413 100644 --- a/.github/workflows/e2e-tests.yaml +++ b/.github/workflows/e2e-tests.yaml @@ -127,13 +127,13 @@ jobs: config: pageLoadTimeout=100000,baseUrl=${{ env.STUDIO_URL }} quiet: true - name: Save cypress screenshot artifacts on failure - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: name: cypress-screenshots path: cypress/screenshots - name: Save cypress video artifacts on failure - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: name: cypress-videos From a006ddd6abda565d32f95387a8329101c0a56640 Mon Sep 17 00:00:00 2001 From: j-awada Date: Fri, 14 Feb 2025 10:09:56 +0100 Subject: [PATCH 09/10] add comment about backslash --- projects/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/views.py b/projects/views.py index 5182c144f..54d1449a6 100644 --- a/projects/views.py +++ b/projects/views.py @@ -357,6 +357,7 @@ def post(self, request, project_slug): assign_perm("can_view_project", selected_user, project) project_uri = f"{request.get_host()}/projects/{project.slug}" + ## The backslash below is used to ignore a newline email_body = f"""\ Hi {selected_username}, From bb857d8b544824a500120b053ac73db3a2aaae4c Mon Sep 17 00:00:00 2001 From: j-awada Date: Fri, 14 Feb 2025 10:26:59 +0100 Subject: [PATCH 10/10] remove extra hash sign --- projects/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/views.py b/projects/views.py index 54d1449a6..42527c29d 100644 --- a/projects/views.py +++ b/projects/views.py @@ -357,7 +357,7 @@ def post(self, request, project_slug): assign_perm("can_view_project", selected_user, project) project_uri = f"{request.get_host()}/projects/{project.slug}" - ## The backslash below is used to ignore a newline + # The backslash below is used to ignore a newline email_body = f"""\ Hi {selected_username},