summaryrefslogtreecommitdiff
path: root/ishtar_common/views_item.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-09-18 11:18:11 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-10-24 12:06:08 +0200
commite4886af839af1194d0153c99234751d7cd4fde27 (patch)
treed0bd953ebe547522206cb9a01ebe1b33dcaa89c4 /ishtar_common/views_item.py
parent1ca13841328bf1aa661b0d6bbb69c4e84950d9df (diff)
downloadIshtar-e4886af839af1194d0153c99234751d7cd4fde27.tar.bz2
Ishtar-e4886af839af1194d0153c99234751d7cd4fde27.zip
Display pined search on search input
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r--ishtar_common/views_item.py58
1 files changed, 39 insertions, 19 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index cfb7a42c3..98dcd3d4c 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -440,7 +440,10 @@ def _search_manage_search_vector(model, dct, exc_dct, request_keys):
if 'search_vector' not in dct:
return dct, exc_dct
- parentheses_groups = _parse_parentheses(dct['search_vector'].strip())
+ # remove inside parenthesis
+ search_vector = \
+ dct['search_vector'].replace(u'(', u'').replace(u')', u'').strip()
+ parentheses_groups = _parse_parentheses(search_vector)
search_query, extra_dct, extra_exc_dct = _parse_parentheses_groups(
parentheses_groups, request_keys)
dct.update(extra_dct)
@@ -960,7 +963,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
if 'basket-' in value:
try:
dct = {"basket__pk":
- request.session[default_name].split('-')[-1]}
+ request.session[default_name].split('-')[-1]}
pinned_search = unicode(FindBasket.objects.get(
pk=dct["basket__pk"]))
except FindBasket.DoesNotExist:
@@ -968,26 +971,43 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
else:
try:
dct = {"pk": request.session[default_name]}
- pinned_search = unicode(model._meta.verbose_name) \
- + u" - " + unicode(
- model.objects.get(pk=dct["pk"]))
+ pinned_search = u'"{}"'.format(
+ model.objects.get(pk=dct["pk"])
+ )
except model.DoesNotExist:
pass
elif dct == (my_base_request or {}):
- # a parent item may be selected in the default menu
- for name, key in my_relative_session_names:
- if name in request.session and request.session[name] \
- and 'basket-' not in request.session[name] \
- and name in CURRENT_ITEM_KEYS_DICT:
- up_model = CURRENT_ITEM_KEYS_DICT[name]
- try:
- dct.update({key: request.session[name]})
- pinned_search = unicode(up_model._meta.verbose_name) \
- + u" - " + unicode(
- up_model.objects.get(pk=dct[key]))
- break
- except up_model.DoesNotExist:
- pass
+ if not hasattr(model, 'UP_MODEL_QUERY'):
+ logger.warning(
+ "**WARN get_item**: - UP_MODEL_QUERY not defined for "
+ "'{}'".format(model.__class__))
+ else:
+ # a parent item may be selected in the default menu
+ for name, key in my_relative_session_names:
+ if name in request.session and request.session[name] \
+ and 'basket-' not in request.session[name] \
+ and name in CURRENT_ITEM_KEYS_DICT:
+ up_model = CURRENT_ITEM_KEYS_DICT[name]
+ try:
+ dct.update({key: request.session[name]})
+ up_item = up_model.objects.get(pk=dct[key])
+ if up_item.short_class_name not in \
+ model.UP_MODEL_QUERY:
+ logger.warning(
+ "**WARN get_item**: - {} not in "
+ "UP_MODEL_QUERY for {}'".format(
+ up_item.short_class_name,
+ model))
+ else:
+ req_key, up_attr = model.UP_MODEL_QUERY[
+ up_item.short_class_name]
+ pinned_search = u'{}="{}"'.format(
+ req_key,
+ getattr(up_item, up_attr)
+ )
+ break
+ except up_model.DoesNotExist:
+ pass
if (not dct or data_type == 'csv') \
and func_name in request.session:
dct = request.session[func_name]