from django.db.models import Q from outbo.apps.core.rules import is_client, is_agency, is_supplier def read_product_query(user): assigned_to_user_query = ( Q(project__member__user=user, project__member__deleted_at__isnull=True) if user.is_observer is False and user.is_trader is False else Q() ) if is_client.test(user): return assigned_to_user_query & Q(project__published=True) elif (is_agency | is_supplier).test(user): return assigned_to_user_query & Q() return ~Q()