summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-11-09 17:35:30 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-11-09 17:35:30 +0100
commit680d66127f7eb596f7ae6b934d3ac37834c6336b (patch)
treea7c596683feaeff9a148259bd7b9519b09c8f2fb /ishtar_common/views.py
parent327d4709b2329eed9ee52c1c12cf323941f8dc19 (diff)
downloadIshtar-680d66127f7eb596f7ae6b934d3ac37834c6336b.tar.bz2
Ishtar-680d66127f7eb596f7ae6b934d3ac37834c6336b.zip
Pin searches on the search bar (refs #4308)
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py34
1 files changed, 25 insertions, 9 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index e4b55cae2..6fce21953 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -369,33 +369,33 @@ def get_current_items(request):
return currents
-def unpin(request, item_type):
+def unpin(request, item_type, cascade=False):
if item_type not in CURRENT_ITEM_KEYS_DICT.keys():
logger.warning("unpin unknow type: {}".format(item_type))
return HttpResponse('nok')
request.session['treatment'] = ''
- if item_type == 'treatment':
+ if item_type == 'treatment' and not cascade:
return HttpResponse('ok')
request.session['treatmentfile'] = ''
- if item_type == 'treatmentfile':
+ if item_type == 'treatmentfile' and not cascade:
return HttpResponse('ok')
request.session['find'] = ''
- if item_type == 'find':
+ if item_type == 'find' and not cascade:
return HttpResponse('ok')
request.session['warehouse'] = ''
- if item_type == 'warehouse':
+ if item_type == 'warehouse' and not cascade:
return HttpResponse('ok')
request.session['contextrecord'] = ''
- if item_type == 'contextrecord':
+ if item_type == 'contextrecord' and not cascade:
return HttpResponse('ok')
request.session['site'] = ''
- if item_type == 'site':
+ if item_type == 'site' and not cascade:
return HttpResponse('ok')
request.session['operation'] = ''
- if item_type == 'operation':
+ if item_type == 'operation' and not cascade:
return HttpResponse('ok')
request.session['file'] = ''
- if item_type == 'file':
+ if item_type == 'file' and not cascade:
return HttpResponse('ok')
@@ -455,6 +455,22 @@ def update_current_item(request, item_type=None, pk=None):
return HttpResponse('ok')
+def pin_search(request, item_type):
+ key = "pin-search-" + item_type
+ if not item_type or not (request.is_ajax() and request.method == 'POST'):
+ raise Http404
+ if 'value' in request.POST:
+ request.session[key] = request.POST['value']
+ else:
+ request.session[key] = request.POST['value']
+ if not request.POST['value']:
+ # empty all
+ unpin(request, item_type, cascade=True)
+ else:
+ unpin(request, item_type)
+ return HttpResponse('ok')
+
+
def get_by_importer(request, slug, data_type='json', full=False,
force_own=False, **dct):
q = models.ImporterType.objects.filter(slug=slug)