fix: add issues to cycles and modules (#2659)

* fix: able to add issue in cycle and module

* fix: issue activity message
This commit is contained in:
Bavisetti Narayan 2023-11-07 18:18:51 +05:30 committed by GitHub
parent 6e461dd8c3
commit 30d6235108
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 30 deletions

View File

@ -479,13 +479,13 @@ class CycleViewSet(BaseViewSet):
) )
) )
cycle = Cycle.objects.get(workspace__slug=slug, project_id=project_id, pk=pk) cycle = Cycle.objects.get(workspace__slug=slug, project_id=project_id, pk=pk)
# Delete the cycle
cycle.delete()
issue_activity.delay( issue_activity.delay(
type="cycle.activity.deleted", type="cycle.activity.deleted",
requested_data=json.dumps( requested_data=json.dumps(
{ {
"cycle_id": str(pk), "cycle_id": str(pk),
"cycle_name": str(cycle.name),
"issues": [str(issue_id) for issue_id in cycle_issues], "issues": [str(issue_id) for issue_id in cycle_issues],
} }
), ),
@ -495,6 +495,8 @@ class CycleViewSet(BaseViewSet):
current_instance=None, current_instance=None,
epoch=int(timezone.now().timestamp()), epoch=int(timezone.now().timestamp()),
) )
# Delete the cycle
cycle.delete()
return Response(status=status.HTTP_204_NO_CONTENT) return Response(status=status.HTTP_204_NO_CONTENT)
@ -511,12 +513,6 @@ class CycleIssueViewSet(BaseViewSet):
"issue__assignees__id", "issue__assignees__id",
] ]
def perform_create(self, serializer):
serializer.save(
project_id=self.kwargs.get("project_id"),
cycle_id=self.kwargs.get("cycle_id"),
)
def get_queryset(self): def get_queryset(self):
return self.filter_queryset( return self.filter_queryset(
super() super()
@ -669,7 +665,7 @@ class CycleIssueViewSet(BaseViewSet):
type="cycle.activity.created", type="cycle.activity.created",
requested_data=json.dumps({"cycles_list": issues}), requested_data=json.dumps({"cycles_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=None,
project_id=str(self.kwargs.get("project_id", None)), project_id=str(self.kwargs.get("project_id", None)),
current_instance=json.dumps( current_instance=json.dumps(
{ {

View File

@ -266,12 +266,12 @@ class ModuleViewSet(BaseViewSet):
module_issues = list( module_issues = list(
ModuleIssue.objects.filter(module_id=pk).values_list("issue", flat=True) ModuleIssue.objects.filter(module_id=pk).values_list("issue", flat=True)
) )
module.delete()
issue_activity.delay( issue_activity.delay(
type="module.activity.deleted", type="module.activity.deleted",
requested_data=json.dumps( requested_data=json.dumps(
{ {
"module_id": str(pk), "module_id": str(pk),
"module_name": str(module.name),
"issues": [str(issue_id) for issue_id in module_issues], "issues": [str(issue_id) for issue_id in module_issues],
} }
), ),
@ -281,6 +281,7 @@ class ModuleViewSet(BaseViewSet):
current_instance=None, current_instance=None,
epoch=int(timezone.now().timestamp()), epoch=int(timezone.now().timestamp()),
) )
module.delete()
return Response(status=status.HTTP_204_NO_CONTENT) return Response(status=status.HTTP_204_NO_CONTENT)
@ -297,12 +298,6 @@ class ModuleIssueViewSet(BaseViewSet):
ProjectEntityPermission, ProjectEntityPermission,
] ]
def perform_create(self, serializer):
serializer.save(
project_id=self.kwargs.get("project_id"),
module_id=self.kwargs.get("module_id"),
)
def get_queryset(self): def get_queryset(self):
return self.filter_queryset( return self.filter_queryset(
super() super()
@ -446,7 +441,7 @@ class ModuleIssueViewSet(BaseViewSet):
type="module.activity.created", 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=None,
project_id=str(self.kwargs.get("project_id", None)), project_id=str(self.kwargs.get("project_id", None)),
current_instance=json.dumps( current_instance=json.dumps(
{ {

View File

@ -691,6 +691,10 @@ def create_cycle_issue_activity(
new_cycle = Cycle.objects.filter( new_cycle = Cycle.objects.filter(
pk=updated_record.get("new_cycle_id", None) pk=updated_record.get("new_cycle_id", None)
).first() ).first()
issue = Issue.objects.filter(pk=updated_record.get("issue_id")).first()
if issue:
issue.updated_at = timezone.now()
issue.save(update_fields=["updated_at"])
issue_activities.append( issue_activities.append(
IssueActivity( IssueActivity(
@ -713,6 +717,10 @@ def create_cycle_issue_activity(
cycle = Cycle.objects.filter( cycle = Cycle.objects.filter(
pk=created_record.get("fields").get("cycle") pk=created_record.get("fields").get("cycle")
).first() ).first()
issue = Issue.objects.filter(pk=created_record.get("fields").get("issue")).first()
if issue:
issue.updated_at = timezone.now()
issue.save(update_fields=["updated_at"])
issue_activities.append( issue_activities.append(
IssueActivity( IssueActivity(
@ -747,22 +755,27 @@ def delete_cycle_issue_activity(
) )
cycle_id = requested_data.get("cycle_id", "") cycle_id = requested_data.get("cycle_id", "")
cycle_name = requested_data.get("cycle_name", "")
cycle = Cycle.objects.filter(pk=cycle_id).first() cycle = Cycle.objects.filter(pk=cycle_id).first()
issues = requested_data.get("issues") issues = requested_data.get("issues")
for issue in issues: for issue in issues:
current_issue = Issue.objects.filter(pk=issue).first()
if issue:
current_issue.updated_at = timezone.now()
current_issue.save(update_fields=["updated_at"])
issue_activities.append( issue_activities.append(
IssueActivity( IssueActivity(
issue_id=issue, issue_id=issue,
actor_id=actor_id, actor_id=actor_id,
verb="deleted", verb="deleted",
old_value=cycle.name if cycle is not None else "", old_value=cycle.name if cycle is not None else cycle_name,
new_value="", new_value="",
field="cycles", field="cycles",
project_id=project_id, project_id=project_id,
workspace_id=workspace_id, workspace_id=workspace_id,
comment=f"removed this issue from {cycle.name if cycle is not None else None}", comment=f"removed this issue from {cycle.name if cycle is not None else cycle_name}",
old_identifier=cycle.id if cycle is not None else None, old_identifier=cycle_id if cycle_id is not None else None,
epoch=epoch, epoch=epoch,
) )
) )
@ -794,6 +807,10 @@ def create_module_issue_activity(
new_module = Module.objects.filter( new_module = Module.objects.filter(
pk=updated_record.get("new_module_id", None) pk=updated_record.get("new_module_id", None)
).first() ).first()
issue = Issue.objects.filter(pk=updated_record.get("issue_id")).first()
if issue:
issue.updated_at = timezone.now()
issue.save(update_fields=["updated_at"])
issue_activities.append( issue_activities.append(
IssueActivity( IssueActivity(
@ -816,6 +833,10 @@ def create_module_issue_activity(
module = Module.objects.filter( module = Module.objects.filter(
pk=created_record.get("fields").get("module") pk=created_record.get("fields").get("module")
).first() ).first()
issue = Issue.objects.filter(pk=created_record.get("fields").get("issue")).first()
if issue:
issue.updated_at = timezone.now()
issue.save(update_fields=["updated_at"])
issue_activities.append( issue_activities.append(
IssueActivity( IssueActivity(
issue_id=created_record.get("fields").get("issue"), issue_id=created_record.get("fields").get("issue"),
@ -849,22 +870,27 @@ def delete_module_issue_activity(
) )
module_id = requested_data.get("module_id", "") module_id = requested_data.get("module_id", "")
module_name = requested_data.get("module_name", "")
module = Module.objects.filter(pk=module_id).first() module = Module.objects.filter(pk=module_id).first()
issues = requested_data.get("issues") issues = requested_data.get("issues")
for issue in issues: for issue in issues:
current_issue = Issue.objects.filter(pk=issue).first()
if issue:
current_issue.updated_at = timezone.now()
current_issue.save(update_fields=["updated_at"])
issue_activities.append( issue_activities.append(
IssueActivity( IssueActivity(
issue_id=issue, issue_id=issue,
actor_id=actor_id, actor_id=actor_id,
verb="deleted", verb="deleted",
old_value=module.name if module is not None else "", old_value=module.name if module is not None else module_name,
new_value="", new_value="",
field="modules", field="modules",
project_id=project_id, project_id=project_id,
workspace_id=workspace_id, workspace_id=workspace_id,
comment=f"removed this issue from ", comment=f"removed this issue from {module.name if module is not None else module_name}",
old_identifier=module.id if module is not None else None, old_identifier=module_id if module_id is not None else None,
epoch=epoch, epoch=epoch,
) )
) )
@ -1452,10 +1478,11 @@ def issue_activity(
issue_activities = [] issue_activities = []
project = Project.objects.get(pk=project_id) project = Project.objects.get(pk=project_id)
issue = Issue.objects.filter(pk=issue_id).first()
workspace_id = project.workspace_id workspace_id = project.workspace_id
if issue is not None: if issue_id is not None:
issue = Issue.objects.filter(pk=issue_id).first()
if issue:
try: try:
issue.updated_at = timezone.now() issue.updated_at = timezone.now()
issue.save(update_fields=["updated_at"]) issue.save(update_fields=["updated_at"])