[WEB - 1888] dev: log issue activity when transferring issues from one cycle to another (#5073)
* fix: cycle transfer activity * chore: external api transfer issue * chore: moved the cycle id --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
This commit is contained in:
parent
6c2b28df91
commit
988201d729
3 changed files with 63 additions and 11 deletions
|
|
@ -13,9 +13,9 @@ class CycleSerializer(BaseSerializer):
|
||||||
started_issues = serializers.IntegerField(read_only=True)
|
started_issues = serializers.IntegerField(read_only=True)
|
||||||
unstarted_issues = serializers.IntegerField(read_only=True)
|
unstarted_issues = serializers.IntegerField(read_only=True)
|
||||||
backlog_issues = serializers.IntegerField(read_only=True)
|
backlog_issues = serializers.IntegerField(read_only=True)
|
||||||
total_estimates = serializers.IntegerField(read_only=True)
|
total_estimates = serializers.FloatField(read_only=True)
|
||||||
completed_estimates = serializers.IntegerField(read_only=True)
|
completed_estimates = serializers.FloatField(read_only=True)
|
||||||
started_estimates = serializers.IntegerField(read_only=True)
|
started_estimates = serializers.FloatField(read_only=True)
|
||||||
|
|
||||||
def validate(self, data):
|
def validate(self, data):
|
||||||
if (
|
if (
|
||||||
|
|
|
||||||
|
|
@ -1140,12 +1140,38 @@ class TransferCycleIssueAPIEndpoint(BaseAPIView):
|
||||||
)
|
)
|
||||||
|
|
||||||
updated_cycles = []
|
updated_cycles = []
|
||||||
|
update_cycle_issue_activity = []
|
||||||
for cycle_issue in cycle_issues:
|
for cycle_issue in cycle_issues:
|
||||||
cycle_issue.cycle_id = new_cycle_id
|
cycle_issue.cycle_id = new_cycle_id
|
||||||
updated_cycles.append(cycle_issue)
|
updated_cycles.append(cycle_issue)
|
||||||
|
update_cycle_issue_activity.append(
|
||||||
|
{
|
||||||
|
"old_cycle_id": str(cycle_id),
|
||||||
|
"new_cycle_id": str(new_cycle_id),
|
||||||
|
"issue_id": str(cycle_issue.issue_id),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
cycle_issues = CycleIssue.objects.bulk_update(
|
cycle_issues = CycleIssue.objects.bulk_update(
|
||||||
updated_cycles, ["cycle_id"], batch_size=100
|
updated_cycles, ["cycle_id"], batch_size=100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Capture Issue Activity
|
||||||
|
issue_activity.delay(
|
||||||
|
type="cycle.activity.created",
|
||||||
|
requested_data=json.dumps({"cycles_list": []}),
|
||||||
|
actor_id=str(self.request.user.id),
|
||||||
|
issue_id=None,
|
||||||
|
project_id=str(self.kwargs.get("project_id", None)),
|
||||||
|
current_instance=json.dumps(
|
||||||
|
{
|
||||||
|
"updated_cycle_issues": update_cycle_issue_activity,
|
||||||
|
"created_cycle_issues": "[]",
|
||||||
|
}
|
||||||
|
),
|
||||||
|
epoch=int(timezone.now().timestamp()),
|
||||||
|
notification=True,
|
||||||
|
origin=request.META.get("HTTP_ORIGIN"),
|
||||||
|
)
|
||||||
|
|
||||||
return Response({"message": "Success"}, status=status.HTTP_200_OK)
|
return Response({"message": "Success"}, status=status.HTTP_200_OK)
|
||||||
|
|
|
||||||
|
|
@ -465,15 +465,15 @@ class CycleViewSet(BaseViewSet):
|
||||||
}
|
}
|
||||||
|
|
||||||
if data[0]["start_date"] and data[0]["end_date"]:
|
if data[0]["start_date"] and data[0]["end_date"]:
|
||||||
data[0]["estimate_distribution"]["completion_chart"] = (
|
data[0]["estimate_distribution"][
|
||||||
burndown_plot(
|
"completion_chart"
|
||||||
|
] = burndown_plot(
|
||||||
queryset=queryset.first(),
|
queryset=queryset.first(),
|
||||||
slug=slug,
|
slug=slug,
|
||||||
project_id=project_id,
|
project_id=project_id,
|
||||||
plot_type="points",
|
plot_type="points",
|
||||||
cycle_id=data[0]["id"],
|
cycle_id=data[0]["id"],
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
assignee_distribution = (
|
assignee_distribution = (
|
||||||
Issue.objects.filter(
|
Issue.objects.filter(
|
||||||
|
|
@ -1507,14 +1507,40 @@ class TransferCycleIssueEndpoint(BaseAPIView):
|
||||||
)
|
)
|
||||||
|
|
||||||
updated_cycles = []
|
updated_cycles = []
|
||||||
|
update_cycle_issue_activity = []
|
||||||
for cycle_issue in cycle_issues:
|
for cycle_issue in cycle_issues:
|
||||||
cycle_issue.cycle_id = new_cycle_id
|
cycle_issue.cycle_id = new_cycle_id
|
||||||
updated_cycles.append(cycle_issue)
|
updated_cycles.append(cycle_issue)
|
||||||
|
update_cycle_issue_activity.append(
|
||||||
|
{
|
||||||
|
"old_cycle_id": str(cycle_id),
|
||||||
|
"new_cycle_id": str(new_cycle_id),
|
||||||
|
"issue_id": str(cycle_issue.issue_id),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
cycle_issues = CycleIssue.objects.bulk_update(
|
cycle_issues = CycleIssue.objects.bulk_update(
|
||||||
updated_cycles, ["cycle_id"], batch_size=100
|
updated_cycles, ["cycle_id"], batch_size=100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Capture Issue Activity
|
||||||
|
issue_activity.delay(
|
||||||
|
type="cycle.activity.created",
|
||||||
|
requested_data=json.dumps({"cycles_list": []}),
|
||||||
|
actor_id=str(self.request.user.id),
|
||||||
|
issue_id=None,
|
||||||
|
project_id=str(self.kwargs.get("project_id", None)),
|
||||||
|
current_instance=json.dumps(
|
||||||
|
{
|
||||||
|
"updated_cycle_issues": update_cycle_issue_activity,
|
||||||
|
"created_cycle_issues": "[]",
|
||||||
|
}
|
||||||
|
),
|
||||||
|
epoch=int(timezone.now().timestamp()),
|
||||||
|
notification=True,
|
||||||
|
origin=request.META.get("HTTP_ORIGIN"),
|
||||||
|
)
|
||||||
|
|
||||||
return Response({"message": "Success"}, status=status.HTTP_200_OK)
|
return Response({"message": "Success"}, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue