diff options
Diffstat (limited to 'ishtar_common/views_item.py')
| -rw-r--r-- | ishtar_common/views_item.py | 18 | 
1 files changed, 13 insertions, 5 deletions
| diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 746d359c1..3b09bc7da 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -29,7 +29,7 @@ from weasyprint.fonts import FontConfiguration  from ishtar_common.utils import check_model_access_control, CSV_OPTIONS, \      get_all_field_names  from ishtar_common.models import HistoryError, get_current_profile, \ -    PRIVATE_FIELDS +    PRIVATE_FIELDS, GeneralType  from menus import Menu  import models @@ -492,6 +492,12 @@ def _manage_dated_fields(dated_fields, dct):                  dct.pop(k) +def _clean_type_val(val): +    for prefix in GeneralType.PREFIX_CODES: +        val = val.replace(prefix, u"") +    return val.strip() + +  def _manage_facet_search(model, dct, and_reqs):      general_types = model.general_types()      for base_k in general_types: @@ -501,7 +507,7 @@ def _manage_facet_search(model, dct, and_reqs):          if k not in dct or not dct[k].startswith(u'"') \                  or not dct[k].startswith(u'"'):              continue -        val = dct.pop(k) +        val = _clean_type_val(dct.pop(k))          if u";" in val:              # OR request              values = val.split(u";") @@ -533,7 +539,7 @@ def _manage_facet_search(model, dct, and_reqs):  def _manage_hierarchic_fields(dct, and_reqs):      for req in dct.copy():          if req.endswith('areas__pk'): -            val = dct.pop(req) +            val = _clean_type_val(dct.pop(req))              reqs = Q(**{req: val})              base_req = req[:-2] + '__'              req = base_req[:] @@ -550,7 +556,7 @@ def _manage_hierarchic_fields(dct, and_reqs):              continue          if req.endswith('town__pk') or req.endswith('towns__pk'): -            val = dct.pop(req) +            val = _clean_type_val(dct.pop(req))              reqs = Q(**{req: val})              base_req = req[:-2] + '__'              req = base_req[:] @@ -571,6 +577,7 @@ def _manage_hierarchic_fields(dct, and_reqs):                  val = dct.pop(req)                  q = None                  for idx, r in enumerate(req): +                    r = _clean_type_val(r)                      if not idx:                          q = Q(**{r: val})                      else: @@ -578,7 +585,7 @@ def _manage_hierarchic_fields(dct, and_reqs):                  and_reqs.append(q)                  break              elif req.endswith(k_hr + '__pk'): -                val = dct.pop(req) +                val = _clean_type_val(dct.pop(req))                  if u";" in val:                      # OR request @@ -619,6 +626,7 @@ def _manage_clean_search_field(dct):          # clean quoted search field          if type(dct[k]) == unicode:              dct[k] = dct[k].replace(u'"', '') +            dct[k] = _clean_type_val(dct[k])  def _manage_relation_types(relation_types, dct, query, or_reqs): | 
