mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
63 lines
1.8 KiB
Python
63 lines
1.8 KiB
Python
def resolve_keys(group_keys, value):
|
|
"""resolve keys to a key which will be used for
|
|
grouping
|
|
|
|
Args:
|
|
group_keys (string): key which will be used for grouping
|
|
value (obj): data value
|
|
|
|
Returns:
|
|
string: the key which will be used for
|
|
"""
|
|
keys = group_keys.split(".")
|
|
for key in keys:
|
|
value = value.get(key, None)
|
|
return value
|
|
|
|
|
|
def group_results(results_data, group_by):
|
|
"""group results data into certain group_by
|
|
|
|
Args:
|
|
results_data (obj): complete results data
|
|
group_by (key): string
|
|
|
|
Returns:
|
|
obj: grouped results
|
|
"""
|
|
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:
|
|
if str(None) in response_dict:
|
|
response_dict[str(None)].append(value)
|
|
else:
|
|
response_dict[str(None)] = []
|
|
response_dict[str(None)].append(value)
|
|
else:
|
|
if str(group_attribute) in response_dict:
|
|
response_dict[str(group_attribute)].append(value)
|
|
else:
|
|
response_dict[str(group_attribute)] = []
|
|
response_dict[str(group_attribute)].append(value)
|
|
|
|
return response_dict
|