WIP: inventory api: group by time interval list
This is an old patch (used in production for months, but this version is a bit different, I will have to check again that it's still OK from query performance point of view) that I'm cleaning up and trying to merge.
This allow to group inventory results by arbitrary time intervals.
What's still being discussed / considered:
- is it cool to pass intervals as a list ? passing a mapping and getting back the key on brain seems a bit better:
inventory_list = portal.portal_simulation.getInventoryList(group_by_time_sequence_mapping={key1: {'from_date': DateTime()}, key2: {'at_date': DateTime()})
inventory_dict_by_time_sequence = {brain.time_sequence_key: brain.inventory for brain in inventory_list}
assert key1 in inventory_dict_by_time_sequence
assert key2 in inventory_dict_by_time_sequence
a bit like we can do:
inventory_list = portal.portal_simulation.getInventoryList(group_by_node=True, node_uid=(node1.getUid(), node2.getUid())
inventory_dict_by_node = {brain.node_value: brain.inventory for brain in inventory_list}
assert node1 in inventory_dict_by_node
assert node2 in inventory_dict_by_node
- if we look at underlying query, it's not only "group by", so maybe this parameter should use another name ? (but from inventory, this is seems similar concept)