summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py18
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):