diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-07-04 15:39:22 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-13 18:26:03 +0200 | 
| commit | b4fb01fdbf1df2c01569065986392c9ae831837b (patch) | |
| tree | fef3c93ea1e8c957e14f0e0e8e8f86bb5e221c30 | |
| parent | d3af6e3cce1a22853dd3cc9d25474af4718dc2eb (diff) | |
| download | Ishtar-b4fb01fdbf1df2c01569065986392c9ae831837b.tar.bz2 Ishtar-b4fb01fdbf1df2c01569065986392c9ae831837b.zip | |
Search: manage post process tretment of query (refs #4180)
| -rw-r--r-- | archaeological_operations/models.py | 20 | ||||
| -rw-r--r-- | ishtar_common/views_item.py | 8 | 
2 files changed, 28 insertions, 0 deletions
| diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 9565bf144..b929677b8 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -396,10 +396,20 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,              ),              'towns__cached_label__iexact'          ), +        'towns__numero_insee__startswith': ( +            pgettext_lazy( +                "key for text search (no accent, no spaces)", u"department" +            ), +            'towns__numero_insee__startswith' +        )      }      for v in ALT_NAMES.values():          EXTRA_REQUEST_KEYS[v[0]] = v[1] +    POST_PROCESS_REQUEST = { +        'towns__numero_insee__startswith': '_get_department_code', +    } +      # fields definition      creation_date = models.DateField(_(u"Creation date"),                                       default=datetime.date.today) @@ -567,6 +577,16 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,          values = super(Operation, self).get_values(prefix=prefix)          return get_values_town_related(self, prefix, values) +    @classmethod +    def _get_department_code(cls, value): +        if not settings.ISHTAR_DPTS: +            return u"" +        for k, v in settings.ISHTAR_DPTS: +            if v.lower() == value: +                return k +        return u"" + +      @property      def short_class_name(self):          return _(u"OPE") diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index a818c2719..9941f338c 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -513,6 +513,14 @@ def _manage_facet_search(model, dct, and_reqs):          if reqs:              and_reqs.append(reqs) +    POST_PROCESS_REQUEST = getattr(model, 'POST_PROCESS_REQUEST', None) +    if not POST_PROCESS_REQUEST: +        return +    for k in dct: +        if k in POST_PROCESS_REQUEST and dct[k]: +            dct[k] = getattr(model, POST_PROCESS_REQUEST[k])( +                dct[k].replace(u'"', '')) +  def _manage_hierarchic_fields(dct, and_reqs):      for req in dct.copy(): | 
