17 lines
534 B
Python
Executable File
17 lines
534 B
Python
Executable File
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()
|