mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
chore: log module delete and module issue delete activities (#976)
This commit is contained in:
parent
c6878b9b0f
commit
742731cbe6
@ -109,6 +109,28 @@ class ModuleViewSet(BaseViewSet):
|
|||||||
.order_by("-is_favorite", "name")
|
.order_by("-is_favorite", "name")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def perform_destroy(self, instance):
|
||||||
|
module_issues = list(
|
||||||
|
ModuleIssue.objects.filter(module_id=self.kwargs.get("pk")).values_list(
|
||||||
|
"issue", flat=True
|
||||||
|
)
|
||||||
|
)
|
||||||
|
issue_activity.delay(
|
||||||
|
type="module.activity.deleted",
|
||||||
|
requested_data=json.dumps(
|
||||||
|
{
|
||||||
|
"module_id": str(self.kwargs.get("pk")),
|
||||||
|
"issues": [str(issue_id) for issue_id in module_issues],
|
||||||
|
}
|
||||||
|
),
|
||||||
|
actor_id=str(self.request.user.id),
|
||||||
|
issue_id=str(self.kwargs.get("pk", None)),
|
||||||
|
project_id=str(self.kwargs.get("project_id", None)),
|
||||||
|
current_instance=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
return super().perform_destroy(instance)
|
||||||
|
|
||||||
def create(self, request, slug, project_id):
|
def create(self, request, slug, project_id):
|
||||||
try:
|
try:
|
||||||
project = Project.objects.get(workspace__slug=slug, pk=project_id)
|
project = Project.objects.get(workspace__slug=slug, pk=project_id)
|
||||||
@ -158,6 +180,22 @@ class ModuleIssueViewSet(BaseViewSet):
|
|||||||
module_id=self.kwargs.get("module_id"),
|
module_id=self.kwargs.get("module_id"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def perform_destroy(self, instance):
|
||||||
|
issue_activity.delay(
|
||||||
|
type="module.activity.deleted",
|
||||||
|
requested_data=json.dumps(
|
||||||
|
{
|
||||||
|
"module_id": str(self.kwargs.get("module_id")),
|
||||||
|
"issues": [str(instance.issue_id)],
|
||||||
|
}
|
||||||
|
),
|
||||||
|
actor_id=str(self.request.user.id),
|
||||||
|
issue_id=str(self.kwargs.get("pk", None)),
|
||||||
|
project_id=str(self.kwargs.get("project_id", None)),
|
||||||
|
current_instance=None,
|
||||||
|
)
|
||||||
|
return super().perform_destroy(instance)
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return self.filter_queryset(
|
return self.filter_queryset(
|
||||||
super()
|
super()
|
||||||
@ -302,7 +340,7 @@ class ModuleIssueViewSet(BaseViewSet):
|
|||||||
|
|
||||||
# Capture Issue Activity
|
# Capture Issue Activity
|
||||||
issue_activity.delay(
|
issue_activity.delay(
|
||||||
type="issue.activity.updated",
|
type="module.activity.created",
|
||||||
requested_data=json.dumps({"modules_list": issues}),
|
requested_data=json.dumps({"modules_list": issues}),
|
||||||
actor_id=str(self.request.user.id),
|
actor_id=str(self.request.user.id),
|
||||||
issue_id=str(self.kwargs.get("pk", None)),
|
issue_id=str(self.kwargs.get("pk", None)),
|
||||||
|
@ -563,62 +563,6 @@ def track_cycles(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def track_modules(
|
|
||||||
requested_data,
|
|
||||||
current_instance,
|
|
||||||
issue_id,
|
|
||||||
project,
|
|
||||||
actor,
|
|
||||||
issue_activities,
|
|
||||||
):
|
|
||||||
# Updated Records:
|
|
||||||
updated_records = current_instance.get("updated_module_issues", [])
|
|
||||||
created_records = json.loads(current_instance.get("created_module_issues", []))
|
|
||||||
|
|
||||||
for updated_record in updated_records:
|
|
||||||
old_module = Module.objects.filter(
|
|
||||||
pk=updated_record.get("old_module_id", None)
|
|
||||||
).first()
|
|
||||||
new_module = Module.objects.filter(
|
|
||||||
pk=updated_record.get("new_module_id", None)
|
|
||||||
).first()
|
|
||||||
|
|
||||||
issue_activities.append(
|
|
||||||
IssueActivity(
|
|
||||||
issue_id=updated_record.get("issue_id"),
|
|
||||||
actor=actor,
|
|
||||||
verb="updated",
|
|
||||||
old_value=old_module.name,
|
|
||||||
new_value=new_module.name,
|
|
||||||
field="modules",
|
|
||||||
project=project,
|
|
||||||
workspace=project.workspace,
|
|
||||||
comment=f"{actor.email} updated module from {old_module.name} to {new_module.name}",
|
|
||||||
old_identifier=old_module.id,
|
|
||||||
new_identifier=new_module.id,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
for created_record in created_records:
|
|
||||||
module = Module.objects.filter(
|
|
||||||
pk=created_record.get("fields").get("module")
|
|
||||||
).first()
|
|
||||||
issue_activities.append(
|
|
||||||
IssueActivity(
|
|
||||||
issue_id=created_record.get("fields").get("issue"),
|
|
||||||
actor=actor,
|
|
||||||
verb="created",
|
|
||||||
old_value="",
|
|
||||||
new_value=module.name,
|
|
||||||
field="modules",
|
|
||||||
project=project,
|
|
||||||
workspace=project.workspace,
|
|
||||||
comment=f"{actor.email} added module {module.name}",
|
|
||||||
new_identifier=module.id,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def create_issue_activity(
|
def create_issue_activity(
|
||||||
requested_data, current_instance, issue_id, project, actor, issue_activities
|
requested_data, current_instance, issue_id, project, actor, issue_activities
|
||||||
):
|
):
|
||||||
@ -684,7 +628,6 @@ def update_issue_activity(
|
|||||||
"blocks_list": track_blocks,
|
"blocks_list": track_blocks,
|
||||||
"blockers_list": track_blockings,
|
"blockers_list": track_blockings,
|
||||||
"cycles_list": track_cycles,
|
"cycles_list": track_cycles,
|
||||||
"modules_list": track_modules,
|
|
||||||
"estimate_point": track_estimate_points,
|
"estimate_point": track_estimate_points,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -788,6 +731,91 @@ def delete_comment_activity(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def create_module_issue_activity(
|
||||||
|
requested_data, current_instance, issue_id, project, actor, issue_activities
|
||||||
|
):
|
||||||
|
requested_data = json.loads(requested_data) if requested_data is not None else None
|
||||||
|
current_instance = (
|
||||||
|
json.loads(current_instance) if current_instance is not None else None
|
||||||
|
)
|
||||||
|
|
||||||
|
# Updated Records:
|
||||||
|
updated_records = current_instance.get("updated_module_issues", [])
|
||||||
|
created_records = json.loads(current_instance.get("created_module_issues", []))
|
||||||
|
|
||||||
|
for updated_record in updated_records:
|
||||||
|
old_module = Module.objects.filter(
|
||||||
|
pk=updated_record.get("old_module_id", None)
|
||||||
|
).first()
|
||||||
|
new_module = Module.objects.filter(
|
||||||
|
pk=updated_record.get("new_module_id", None)
|
||||||
|
).first()
|
||||||
|
|
||||||
|
issue_activities.append(
|
||||||
|
IssueActivity(
|
||||||
|
issue_id=updated_record.get("issue_id"),
|
||||||
|
actor=actor,
|
||||||
|
verb="updated",
|
||||||
|
old_value=old_module.name,
|
||||||
|
new_value=new_module.name,
|
||||||
|
field="modules",
|
||||||
|
project=project,
|
||||||
|
workspace=project.workspace,
|
||||||
|
comment=f"{actor.email} updated module from {old_module.name} to {new_module.name}",
|
||||||
|
old_identifier=old_module.id,
|
||||||
|
new_identifier=new_module.id,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
for created_record in created_records:
|
||||||
|
module = Module.objects.filter(
|
||||||
|
pk=created_record.get("fields").get("module")
|
||||||
|
).first()
|
||||||
|
issue_activities.append(
|
||||||
|
IssueActivity(
|
||||||
|
issue_id=created_record.get("fields").get("issue"),
|
||||||
|
actor=actor,
|
||||||
|
verb="created",
|
||||||
|
old_value="",
|
||||||
|
new_value=module.name,
|
||||||
|
field="modules",
|
||||||
|
project=project,
|
||||||
|
workspace=project.workspace,
|
||||||
|
comment=f"{actor.email} added module {module.name}",
|
||||||
|
new_identifier=module.id,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def delete_module_issue_activity(
|
||||||
|
requested_data, current_instance, issue_id, project, actor, issue_activities
|
||||||
|
):
|
||||||
|
requested_data = json.loads(requested_data) if requested_data is not None else None
|
||||||
|
current_instance = (
|
||||||
|
json.loads(current_instance) if current_instance is not None else None
|
||||||
|
)
|
||||||
|
|
||||||
|
module_id = requested_data.get("module_id", "")
|
||||||
|
module = Module.objects.filter(pk=module_id).first()
|
||||||
|
issues = requested_data.get("issues")
|
||||||
|
|
||||||
|
for issue in issues:
|
||||||
|
issue_activities.append(
|
||||||
|
IssueActivity(
|
||||||
|
issue_id=issue,
|
||||||
|
actor=actor,
|
||||||
|
verb="deleted",
|
||||||
|
old_value=module.name if module is not None else "",
|
||||||
|
new_value="",
|
||||||
|
field="modules",
|
||||||
|
project=project,
|
||||||
|
workspace=project.workspace,
|
||||||
|
comment=f"{actor.email} removed this issue from {module.name if module is not None else None}",
|
||||||
|
old_identifier=module.id if module is not None else None,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def create_link_activity(
|
def create_link_activity(
|
||||||
requested_data, current_instance, issue_id, project, actor, issue_activities
|
requested_data, current_instance, issue_id, project, actor, issue_activities
|
||||||
):
|
):
|
||||||
@ -910,6 +938,8 @@ def issue_activity(
|
|||||||
"comment.activity.created": create_comment_activity,
|
"comment.activity.created": create_comment_activity,
|
||||||
"comment.activity.updated": update_comment_activity,
|
"comment.activity.updated": update_comment_activity,
|
||||||
"comment.activity.deleted": delete_comment_activity,
|
"comment.activity.deleted": delete_comment_activity,
|
||||||
|
"module.activity.created": create_module_issue_activity,
|
||||||
|
"module.activity.deleted": delete_module_issue_activity,
|
||||||
"link.activity.created": create_link_activity,
|
"link.activity.created": create_link_activity,
|
||||||
"link.activity.updated": update_link_activity,
|
"link.activity.updated": update_link_activity,
|
||||||
"link.activity.deleted": delete_link_activity,
|
"link.activity.deleted": delete_link_activity,
|
||||||
|
Loading…
Reference in New Issue
Block a user