ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: единый realtime слой Tasker
Добавлен NODE.DC realtime event stream для workspace/project/member/invite/profile событий. Обновлены frontend stores и live controller. Доработаны settings modal, member dropdown и confirm remove под NODE.DC UX.
This commit is contained in:
@@ -135,3 +135,34 @@ def publish_issue_event_on_commit(event_type, issue, actor_id=None, changed_fiel
|
||||
transaction.on_commit(_publish)
|
||||
if publish_external_bridge:
|
||||
publish_external_contour_issue_event_on_commit(event_type, issue, actor_id=actor_id, changed_fields=changed_fields)
|
||||
|
||||
|
||||
def publish_assignee_cleanup_issue_events_on_commit(project_id=None, workspace_id=None, assignee_id=None, actor_id=None):
|
||||
if not assignee_id:
|
||||
return
|
||||
|
||||
from plane.db.models import Issue
|
||||
|
||||
issues = (
|
||||
Issue.objects.filter(
|
||||
deleted_at__isnull=True,
|
||||
issue_assignee__assignee_id=assignee_id,
|
||||
issue_assignee__deleted_at__isnull=True,
|
||||
)
|
||||
.select_related("workspace")
|
||||
.distinct()
|
||||
)
|
||||
|
||||
if project_id:
|
||||
issues = issues.filter(project_id=project_id)
|
||||
if workspace_id:
|
||||
issues = issues.filter(workspace_id=workspace_id)
|
||||
|
||||
for issue in issues:
|
||||
publish_issue_event_on_commit(
|
||||
"issue.updated",
|
||||
issue,
|
||||
actor_id=actor_id,
|
||||
changed_fields=["assignees"],
|
||||
publish_external_bridge=True,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user