UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: корректный flow уведомлений Tasker

This commit is contained in:
DCCONSTRUCTIONS
2026-05-12 15:11:17 +03:00
parent 6737138ab7
commit fc59481703
17 changed files with 717 additions and 164 deletions
@@ -22,7 +22,7 @@ from plane.app.serializers import (
from plane.app.permissions import WorkspaceUserPermission
from plane.db.models import IssueAssignee, Project, ProjectMember, ProjectUserProperty, WorkspaceMember
from plane.db.models import IssueAssignee, Notification, Project, ProjectMember, ProjectUserProperty, WorkspaceMember
from plane.bgtasks.project_add_user_email_task import project_add_user_email
from plane.utils.host import base_host
from plane.app.permissions.base import allow_permission, ROLE
@@ -145,6 +145,36 @@ class ProjectMemberViewSet(BaseViewSet):
project_members = ProjectMember.objects.filter(
project_id=project_id,
member_id__in=[member.get("member_id") for member in members],
).select_related("member", "project", "workspace")
Notification.objects.bulk_create(
[
Notification(
workspace=project_member.workspace,
project=project_member.project,
sender="in_app:nodedc:project_member_added",
triggered_by=request.user,
receiver=project_member.member,
entity_identifier=project_member.project_id,
entity_name="project_member_added",
title=f"Вам открыли доступ к проекту {project_member.project.name}",
message=f"Вы добавлены в проект {project_member.project.name} workspace {project_member.workspace.name}.",
message_stripped=(
f"Вы добавлены в проект {project_member.project.name} workspace {project_member.workspace.name}."
),
data={
"notification_type": "project_member_added",
"target_url": f"/{slug}/projects/{project_id}/issues",
"workspace_slug": slug,
"workspace_name": project_member.workspace.name,
"project_id": str(project_member.project_id),
"project_name": project_member.project.name,
"role": project_member.role,
},
)
for project_member in project_members
if project_member.member_id != request.user.id
],
batch_size=10,
)
# Send emails to notify the users
[