mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
feat: changed payload for swimlanes (#2173)
This commit is contained in:
parent
61672f47ac
commit
42d38f7531
@ -269,9 +269,16 @@ class IssueViewSet(BaseViewSet):
|
|||||||
|
|
||||||
## Grouping the results
|
## Grouping the results
|
||||||
group_by = request.GET.get("group_by", False)
|
group_by = request.GET.get("group_by", False)
|
||||||
|
sub_group_by = request.GET.get("sub_group_by", False)
|
||||||
|
if sub_group_by and sub_group_by == group_by:
|
||||||
|
return Response(
|
||||||
|
{"error": "Group by and sub group by cannot be same"},
|
||||||
|
status=status.HTTP_400_BAD_REQUEST,
|
||||||
|
)
|
||||||
|
|
||||||
if group_by:
|
if group_by:
|
||||||
return Response(
|
return Response(
|
||||||
group_results(issues, group_by), status=status.HTTP_200_OK
|
group_results(issues, group_by, sub_group_by), status=status.HTTP_200_OK
|
||||||
)
|
)
|
||||||
|
|
||||||
return Response(issues, status=status.HTTP_200_OK)
|
return Response(issues, status=status.HTTP_200_OK)
|
||||||
|
@ -15,7 +15,7 @@ def resolve_keys(group_keys, value):
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
def group_results(results_data, group_by):
|
def group_results(results_data, group_by, sub_group_by=False):
|
||||||
"""group results data into certain group_by
|
"""group results data into certain group_by
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -25,38 +25,64 @@ def group_results(results_data, group_by):
|
|||||||
Returns:
|
Returns:
|
||||||
obj: grouped results
|
obj: grouped results
|
||||||
"""
|
"""
|
||||||
response_dict = dict()
|
if sub_group_by:
|
||||||
|
main_responsive_dict = dict()
|
||||||
|
|
||||||
if group_by == "priority":
|
if sub_group_by == "priority":
|
||||||
response_dict = {
|
main_responsive_dict = {
|
||||||
"urgent": [],
|
"urgent": {},
|
||||||
"high": [],
|
"high": {},
|
||||||
"medium": [],
|
"medium": {},
|
||||||
"low": [],
|
"low": {},
|
||||||
"None": [],
|
"none": {},
|
||||||
}
|
}
|
||||||
|
|
||||||
for value in results_data:
|
for value in results_data:
|
||||||
group_attribute = resolve_keys(group_by, value)
|
main_group_attribute = resolve_keys(sub_group_by, value)
|
||||||
if isinstance(group_attribute, list):
|
if str(main_group_attribute) not in main_responsive_dict:
|
||||||
if len(group_attribute):
|
main_responsive_dict[str(main_group_attribute)] = {}
|
||||||
for attrib in group_attribute:
|
group_attribute = resolve_keys(group_by, value)
|
||||||
if str(attrib) in response_dict:
|
if str(group_attribute) in main_responsive_dict:
|
||||||
response_dict[str(attrib)].append(value)
|
main_responsive_dict[str(main_group_attribute)][str(group_attribute)].append(value)
|
||||||
else:
|
|
||||||
response_dict[str(attrib)] = []
|
|
||||||
response_dict[str(attrib)].append(value)
|
|
||||||
else:
|
else:
|
||||||
if str(None) in response_dict:
|
main_responsive_dict[str(main_group_attribute)][str(group_attribute)] = []
|
||||||
response_dict[str(None)].append(value)
|
main_responsive_dict[str(main_group_attribute)][str(group_attribute)].append(value)
|
||||||
|
|
||||||
|
return main_responsive_dict
|
||||||
|
|
||||||
|
else:
|
||||||
|
response_dict = dict()
|
||||||
|
|
||||||
|
if group_by == "priority":
|
||||||
|
response_dict = {
|
||||||
|
"urgent": [],
|
||||||
|
"high": [],
|
||||||
|
"medium": [],
|
||||||
|
"low": [],
|
||||||
|
"none": [],
|
||||||
|
}
|
||||||
|
|
||||||
|
for value in results_data:
|
||||||
|
group_attribute = resolve_keys(group_by, value)
|
||||||
|
if isinstance(group_attribute, list):
|
||||||
|
if len(group_attribute):
|
||||||
|
for attrib in group_attribute:
|
||||||
|
if str(attrib) in response_dict:
|
||||||
|
response_dict[str(attrib)].append(value)
|
||||||
|
else:
|
||||||
|
response_dict[str(attrib)] = []
|
||||||
|
response_dict[str(attrib)].append(value)
|
||||||
else:
|
else:
|
||||||
response_dict[str(None)] = []
|
if str(None) in response_dict:
|
||||||
response_dict[str(None)].append(value)
|
response_dict[str(None)].append(value)
|
||||||
else:
|
else:
|
||||||
if str(group_attribute) in response_dict:
|
response_dict[str(None)] = []
|
||||||
response_dict[str(group_attribute)].append(value)
|
response_dict[str(None)].append(value)
|
||||||
else:
|
else:
|
||||||
response_dict[str(group_attribute)] = []
|
if str(group_attribute) in response_dict:
|
||||||
response_dict[str(group_attribute)].append(value)
|
response_dict[str(group_attribute)].append(value)
|
||||||
|
else:
|
||||||
|
response_dict[str(group_attribute)] = []
|
||||||
|
response_dict[str(group_attribute)].append(value)
|
||||||
|
|
||||||
return response_dict
|
return response_dict
|
||||||
|
Loading…
Reference in New Issue
Block a user