Loading rpc/methods.py +17 −8 Original line number Diff line number Diff line Loading @@ -2910,6 +2910,8 @@ def _find_items_sets_from_selection_dict( } } ``` If no include, all items from parent are selected and then excludes are applied. """ if not selection: selection = {} Loading @@ -2918,28 +2920,35 @@ def _find_items_sets_from_selection_dict( parent_collection = Collection.objects.filter(pk=from_collection_id).first() if not parent_collection: raise ServiceException(NO_SUCH_COLLECTION) # Par défaut, tout sélectionner depuis la collec parente children_collections_set = parent_collection.children() resources_set = parent_collection.resources.all() if selection.get("include"): # Si liste d'inclusion... ne rien sélectionner par défaut children_collections_set = Collection.objects.none() resources_set = Resource.objects.none() if selection["include"].get("collections_ids"): children_collections_set = children_collections_set.filter( children_collections_set = Collection.objects.filter( id__in=selection["include"].get("collections_ids") ) if selection["include"].get("resources_ids"): resources_set = Resource.objects.filter( id__in=selection["include"].get("resources_ids") ) # Appliquer les exclusions sur les query set précédents if selection.get("exclude"): if selection["exclude"].get("collections_ids"): children_collections_set = children_collections_set.exclude( id__in=selection["exclude"].get("collections_ids") ) resources_set = parent_collection.resources.all() if selection.get("include"): if selection["include"].get("resources_ids"): resources_set = resources_set.filter( id__in=selection["include"].get("resources_ids") ) if selection.get("exclude"): if selection["exclude"].get("resources_ids"): resources_set = resources_set.exclude( id__in=selection["exclude"].get("resources_ids") ) return resources_set, children_collections_set Loading Loading
rpc/methods.py +17 −8 Original line number Diff line number Diff line Loading @@ -2910,6 +2910,8 @@ def _find_items_sets_from_selection_dict( } } ``` If no include, all items from parent are selected and then excludes are applied. """ if not selection: selection = {} Loading @@ -2918,28 +2920,35 @@ def _find_items_sets_from_selection_dict( parent_collection = Collection.objects.filter(pk=from_collection_id).first() if not parent_collection: raise ServiceException(NO_SUCH_COLLECTION) # Par défaut, tout sélectionner depuis la collec parente children_collections_set = parent_collection.children() resources_set = parent_collection.resources.all() if selection.get("include"): # Si liste d'inclusion... ne rien sélectionner par défaut children_collections_set = Collection.objects.none() resources_set = Resource.objects.none() if selection["include"].get("collections_ids"): children_collections_set = children_collections_set.filter( children_collections_set = Collection.objects.filter( id__in=selection["include"].get("collections_ids") ) if selection["include"].get("resources_ids"): resources_set = Resource.objects.filter( id__in=selection["include"].get("resources_ids") ) # Appliquer les exclusions sur les query set précédents if selection.get("exclude"): if selection["exclude"].get("collections_ids"): children_collections_set = children_collections_set.exclude( id__in=selection["exclude"].get("collections_ids") ) resources_set = parent_collection.resources.all() if selection.get("include"): if selection["include"].get("resources_ids"): resources_set = resources_set.filter( id__in=selection["include"].get("resources_ids") ) if selection.get("exclude"): if selection["exclude"].get("resources_ids"): resources_set = resources_set.exclude( id__in=selection["exclude"].get("resources_ids") ) return resources_set, children_collections_set Loading