diff options
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 8b066194f..056385918 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -33,9 +33,9 @@ from weasyprint import HTML, CSS from weasyprint.fonts import FontConfiguration from ishtar_common.utils import check_model_access_control, CSV_OPTIONS, \ - get_all_field_names, Round + get_all_field_names, Round, PRIVATE_FIELDS from ishtar_common.models import HistoryError, get_current_profile, \ - PRIVATE_FIELDS, GeneralType, SearchAltName + GeneralType, SearchAltName from .menus import Menu from . import models @@ -507,21 +507,21 @@ def _parse_query_string(string, query_parameters, current_dct, exc_dct, string = string.strip().lower() match = RE_FACET.search(string) - if match or u"=" in string: + if match or "=" in string: queries = [] if match: for idx, gp in enumerate(match.groups()): if not idx: base_term = gp elif gp: - queries.append(u'"{}"'.format(gp)) + queries.append('"{}"'.format(gp)) else: - splited = string.split(u"=") + splited = string.split("=") if len(splited) == 2: base_term = splited[0] queries.append(splited[1]) if queries: - excluded = base_term.startswith(u"-") + excluded = base_term.startswith("-") if excluded: base_term = base_term[1:] if base_term in query_parameters: @@ -687,7 +687,7 @@ def _search_manage_search_vector(model, dct, exc_dct, distinct_queries, if search_query: # remove inside parenthesis search_query = \ - search_query.replace(u'(', u'').replace(u')', u'').strip() + search_query.replace('(', '').replace(')', '').strip() if search_query: if 'extras' not in dct: dct['extras'] = [] @@ -830,10 +830,14 @@ def _manage_facet_search(model, dct, and_reqs): if not hasattr(model, "general_types"): return general_types = model.general_types() + hierarchic_fields = HIERARCHIC_FIELDS[:] for base_k in general_types: - if base_k in HIERARCHIC_FIELDS: # already managed + if base_k in hierarchic_fields: # already managed continue - k = base_k + "__pk" + if base_k.endswith("_id"): + k = base_k + else: + k = base_k + "__pk" if k not in dct or not dct[k].startswith('"') \ or not dct[k].startswith('"'): continue |