Skip to content

Commit f86081c

Browse files
committed
🐛 add user mention notifications in note creation for Engagement, Finding, and Tests
1 parent cf2a8b1 commit f86081c

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

dojo/api_v2/views.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from django.db.models.query import QuerySet as DjangoQuerySet
1515
from django.http import FileResponse, HttpResponse
1616
from django.shortcuts import get_object_or_404
17+
from django.urls import reverse
1718
from django.utils import timezone
1819
from django_filters.rest_framework import DjangoFilterBackend
1920
from drf_spectacular.renderers import OpenApiJsonRenderer2
@@ -176,6 +177,7 @@
176177
generate_file_response,
177178
get_setting,
178179
get_system_setting,
180+
process_tag_notifications,
179181
)
180182

181183
logger = logging.getLogger(__name__)
@@ -528,6 +530,15 @@ def notes(self, request, pk=None):
528530
)
529531
note.save()
530532
engagement.notes.add(note)
533+
# Determine if we need to send any notifications for user mentioned
534+
process_tag_notifications(
535+
request=request,
536+
note=note,
537+
parent_url=request.build_absolute_uri(
538+
reverse("view_engagement", args=(engagement.id,)),
539+
),
540+
parent_title=f"Engagement: {engagement.name}",
541+
)
531542

532543
serialized_note = serializers.NoteSerializer(
533544
{"author": author, "entry": entry, "private": private},
@@ -1086,6 +1097,15 @@ def notes(self, request, pk=None):
10861097
)
10871098
note.save()
10881099
finding.notes.add(note)
1100+
# Determine if we need to send any notifications for user mentioned
1101+
process_tag_notifications(
1102+
request=request,
1103+
note=note,
1104+
parent_url=request.build_absolute_uri(
1105+
reverse("view_finding", args=(finding.id,)),
1106+
),
1107+
parent_title=f"Finding: {finding.title}",
1108+
)
10891109

10901110
if finding.has_jira_issue:
10911111
jira_helper.add_comment(finding, note)
@@ -2135,6 +2155,15 @@ def notes(self, request, pk=None):
21352155
)
21362156
note.save()
21372157
test.notes.add(note)
2158+
# Determine if we need to send any notifications for user mentioned
2159+
process_tag_notifications(
2160+
request=request,
2161+
note=note,
2162+
parent_url=request.build_absolute_uri(
2163+
reverse("view_test", args=(test.id,)),
2164+
),
2165+
parent_title=f"Test: {test.title}",
2166+
)
21382167

21392168
serialized_note = serializers.NoteSerializer(
21402169
{"author": author, "entry": entry, "private": private},

0 commit comments

Comments
 (0)