Merge remote-tracking branch 'wjt/2935-findDocuments-performance'

This commit is contained in:
j 2016-06-30 15:43:09 +02:00
commit 3d95d7013a
3 changed files with 38 additions and 8 deletions

View file

@ -39,14 +39,18 @@ def parseCondition(condition, user, item=None):
def buildCondition(k, op, v):
import entity.models
if k == 'id':
v = ox.fromAZ(v)
return Q(**{k: v})
if isinstance(v, bool):
key = k
elif k == 'entity':
entity_key, v = entity.managers.namePredicate(op, v)
key = 'entities__' + entity_key
entity_key, entity_v = entity.managers.namePredicate(op, v)
key = 'id__in'
v = entity.models.DocumentProperties.objects.filter(**{
'entity__' + entity_key: entity_v
}).values_list('document_id', flat=True)
else:
key = k + get_operator(op, 'istr')
key = str(key)