summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py24
1 files changed, 22 insertions, 2 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index e49918d78..e8a7efb40 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -283,10 +283,18 @@ def shortcut_menu(request):
if 'SHORTCUT_SHOW' in request.session else 'on'
}
+ current_selected_labels = []
for lbl, model in CURRENT_ITEMS:
model_name = model.SLUG
current = model_name in request.session \
and request.session[model_name]
+ if current:
+ try:
+ item = model.objects.get(pk=int(current))
+ item_label = shortify(unicode(item), 60)
+ current_selected_labels.append(item_label)
+ except model.DoesNotExist:
+ pass
dct['menu'].append((
lbl, model_name, current or 0,
JQueryAutoComplete(
@@ -294,6 +302,7 @@ def shortcut_menu(request):
model).render(
model.SLUG + '-shortcut', value=current,
attrs={'id': 'current_' + model.SLUG})))
+ dct['current_selected_labels'] = current_selected_labels
return render(
request, 'ishtar/blocks/advanced_shortcut_menu.html', dct
)
@@ -302,7 +311,9 @@ def shortcut_menu(request):
'SHORTCUT_SHOW': request.session['SHORTCUT_SHOW']
if 'SHORTCUT_SHOW' in request.session else 'off'
}
+ current_selected_labels = []
current_selected_item = {}
+ labels = {}
for lbl, model in CURRENT_ITEMS:
new_selected_item = None
model_name = model.SLUG
@@ -310,6 +321,7 @@ def shortcut_menu(request):
current = model_name in request.session and request.session[model_name]
items = []
current_items = []
+ labels[model_name] = {}
for item, shortmenu_class in model.get_owns(
request.user, menu_filtr=current_selected_item, limit=100,
values=['id', 'cached_label'], get_short_menu_class=True):
@@ -321,17 +333,21 @@ def shortcut_menu(request):
continue
current_items.append(pk)
selected = pk == current
+ item_label = shortify(item['cached_label'], 60)
if selected:
cls = shortmenu_class
new_selected_item = pk
- items.append((pk, shortify(item['cached_label'], 60),
+ labels[model_name][str(pk)] = item_label
+ items.append((pk, item_label,
selected, shortmenu_class))
# selected is not in owns - add it to the list
if not new_selected_item and current:
try:
item = model.objects.get(pk=int(current))
new_selected_item = item.pk
- items.append((item.pk, shortify(unicode(item), 60),
+ item_label = shortify(unicode(item), 60)
+ labels[model_name][str(item.pk)] = item_label
+ items.append((item.pk, item_label,
True, item.get_short_menu_class(item.pk)))
except (model.DoesNotExist, ValueError):
pass
@@ -339,6 +355,10 @@ def shortcut_menu(request):
dct['current_menu'].append((lbl, model_name, cls, items))
if new_selected_item:
current_selected_item[model_name] = new_selected_item
+ if str(new_selected_item) in labels[model_name]:
+ current_selected_labels.append(
+ labels[model_name][str(new_selected_item)])
+ dct['current_selected_labels'] = current_selected_labels
return render(request, 'ishtar/blocks/shortcut_menu.html', dct)