diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-12-03 00:00:34 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-12-03 00:00:34 +0100 | 
| commit | e7165c5915d5ecddf1248f0cbfb03e5efccd45a7 (patch) | |
| tree | b6ea35231e2ee8406be9e6ee7b930b5180655c6b /archaeological_finds/models_finds.py | |
| parent | df84c1f2b6d7bf469e2a914e43a2f268c90cdd23 (diff) | |
| download | Ishtar-e7165c5915d5ecddf1248f0cbfb03e5efccd45a7.tar.bz2 Ishtar-e7165c5915d5ecddf1248f0cbfb03e5efccd45a7.zip  | |
Search: manage complex queries - Find search: loan status
Diffstat (limited to 'archaeological_finds/models_finds.py')
| -rw-r--r-- | archaeological_finds/models_finds.py | 22 | 
1 files changed, 21 insertions, 1 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index ee6253109..08fb15f0e 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -23,7 +23,7 @@ from django.conf import settings  from django.contrib.gis.db import models  from django.core.urlresolvers import reverse  from django.db import connection -from django.db.models import Max, Q +from django.db.models import Max, Q, F  from django.db.models.signals import m2m_changed, post_save, post_delete, \      pre_delete  from django.core.exceptions import ObjectDoesNotExist @@ -668,6 +668,20 @@ class FBulkView(object):      """ +def query_loan(is_true=True): +    """ +    Query to get loan find + +    :return: (filter, exclude, extra) +    """ +    if is_true: +        return Q(container_ref__isnull=False, container__isnull=False), \ +               Q(container_ref=F('container')), None +    else: +        return Q(container_ref__isnull=False, container__isnull=False, +                 container_ref=F('container')), None, None + +  class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,             MainItem):      EXTERNAL_ID_KEY = 'find_external_id' @@ -954,6 +968,10 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,              pgettext_lazy("key for text search", u"created-by"),              'history_creator__ishtaruser__person__cached_label__iexact'          ), +        'loan': ( +            pgettext_lazy("key for text search", u"loan"), +            query_loan +        )      }      for v in ALT_NAMES.values():          for language_code, language_lbl in settings.LANGUAGES: @@ -961,6 +979,8 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,              EXTRA_REQUEST_KEYS[unicode(v[0])] = v[1]              deactivate() +    EXTRA_REQUEST_FUNC = {""} +      PARENT_SEARCH_VECTORS = ['base_finds']      BASE_SEARCH_VECTORS = [          "cached_label", "label", "description", "container__location__name",  | 
