Loading rpc/methods.py +34 −0 Original line number Diff line number Diff line Loading @@ -2222,6 +2222,40 @@ def move_items( return results @_rpc_groups(["Projects"]) def project_stats(user: User, project_id: int) -> dict: """ Get infos from given project: - number of descendants - number of descendant resources - number of resources - number of children collections """ try: project = Project.objects.get(pk=project_id) _check_project_permission(user, project, PERM_COLLECTION_READ) _check_project_permission(user, project, PERM_RESOURCE_READ) root = Collection.objects.get(title=ROOT_COLLECTION_TITLE, parent_id=None) return { "descendants_count": Collection.objects.filter( project=project, deleted_at__isnull=True ).count(), "descendants_resources_count": Resource.objects.filter( project=project, deleted_at__isnull=True ).count(), "children_count": Collection.objects.filter( project=project, deleted_at__isnull=True, parent=root ).count(), "resources_count": Resource.objects.filter( project=project, deleted_at__isnull=True, collectionmembership__isnull=True, ).count(), } except Project.DoesNotExist: raise ServiceException(NO_SUCH_PROJECT) @_rpc_groups(["Collections", "Resources"]) def collection_stats(user: User, collection_id: int) -> dict: """ Loading Loading
rpc/methods.py +34 −0 Original line number Diff line number Diff line Loading @@ -2222,6 +2222,40 @@ def move_items( return results @_rpc_groups(["Projects"]) def project_stats(user: User, project_id: int) -> dict: """ Get infos from given project: - number of descendants - number of descendant resources - number of resources - number of children collections """ try: project = Project.objects.get(pk=project_id) _check_project_permission(user, project, PERM_COLLECTION_READ) _check_project_permission(user, project, PERM_RESOURCE_READ) root = Collection.objects.get(title=ROOT_COLLECTION_TITLE, parent_id=None) return { "descendants_count": Collection.objects.filter( project=project, deleted_at__isnull=True ).count(), "descendants_resources_count": Resource.objects.filter( project=project, deleted_at__isnull=True ).count(), "children_count": Collection.objects.filter( project=project, deleted_at__isnull=True, parent=root ).count(), "resources_count": Resource.objects.filter( project=project, deleted_at__isnull=True, collectionmembership__isnull=True, ).count(), } except Project.DoesNotExist: raise ServiceException(NO_SUCH_PROJECT) @_rpc_groups(["Collections", "Resources"]) def collection_stats(user: User, collection_id: int) -> dict: """ Loading