Commit 87ae6890 authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

remove counts from collection serializers. Add rpc.collection_stats

parent 5aa2f46b
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -2222,3 +2222,30 @@ def move_items(
        else:
            results["resources"][resource_id] = add_ok
    return results


@_rpc_groups(["Collections", "Resources"])
def collection_stats(user: User, collection_id: int) -> dict:
    """
    Get infos from given collection:
    - number of descendants
    - number of descendant resources
    - number of resources
    - number of children collections
    """
    collection_instance = Collection.objects.filter(
        id=collection_id, deleted_at__isnull=True
    ).first()
    if not collection_instance:
        raise ServiceException(NO_SUCH_COLLECTION)
    _check_project_permission(user, collection_instance.project, PERM_COLLECTION_READ)
    return {
        "descendants_count": collection_instance.descendants_count(),
        "descendants_resources_count": collection_instance.descendants_resources_count(),
        "children_count": collection_instance.children()
        .filter(deleted_at__isnull=True)
        .count(),
        "resources_count": collection_instance.resources.filter(
            deleted_at__isnull=True
        ).count(),
    }
+2 −2
Original line number Diff line number Diff line
@@ -78,8 +78,8 @@ def collection(
        "children_count": collection_instance.children()
        .filter(deleted_at__isnull=True)
        .count(),
        "descendants_count": collection_instance.descendants_count(),
        "descendants_resources_count": collection_instance.descendants_resources_count(),
        #"descendants_count": collection_instance.descendants_count(),
        #"descendants_resources_count": collection_instance.descendants_resources_count(),
        "parent": collection_instance.parent_id
        if collection_instance.parent.parent_id
        else None,