diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-10-01 15:10:07 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-10-24 12:06:08 +0200 |
commit | 95f9959de49ab5271e95451831837c87ead88237 (patch) | |
tree | 8d6e00ce0a1a19b41869b6b6b2ebc5afbb133b64 /ishtar_common/views.py | |
parent | f0e8bab97707a729bada5b7fa17d81202ab8eaa8 (diff) | |
download | Ishtar-95f9959de49ab5271e95451831837c87ead88237.tar.bz2 Ishtar-95f9959de49ab5271e95451831837c87ead88237.zip |
Manage site and warehouse in shortcut menu - Many fixes on pin
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 8214f22d7..55b5fce1e 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -52,7 +52,8 @@ from archaeological_finds.forms import DashboardTreatmentForm, \ DashboardTreatmentFileForm from archaeological_finds.models import Find, Treatment, TreatmentFile from archaeological_operations.forms import DashboardForm as DashboardFormOpe -from archaeological_operations.models import Operation +from archaeological_operations.models import Operation, ArchaeologicalSite +from archaeological_warehouse.models import Warehouse from ishtar_common import forms_common as forms from ishtar_common import wizards from ishtar_common.forms import FinalForm, FinalDeleteForm @@ -62,8 +63,8 @@ from ishtar_common.utils import clean_session_cache, CSV_OPTIONS, \ get_field_labels_from_path, get_random_item_image_link, shortify from ishtar_common.widgets import JQueryAutoComplete -from views_item import CURRENT_ITEM_KEYS, check_permission, display_item, \ - get_item, new_item, show_item +from views_item import CURRENT_ITEM_KEYS, CURRENT_ITEM_KEYS_DICT, \ + check_permission, display_item, get_item, new_item, show_item logger = logging.getLogger(__name__) @@ -250,8 +251,12 @@ def shortcut_menu(request): if profile.files: CURRENT_ITEMS.append((_(u"Archaeological file"), File)) CURRENT_ITEMS.append((_(u"Operation"), Operation)) + if profile.archaeological_site: + CURRENT_ITEMS.append((profile.get_site_label(), ArchaeologicalSite)) if profile.context_record: CURRENT_ITEMS.append((_(u"Context record"), ContextRecord)) + if profile.warehouse: + CURRENT_ITEMS.append((_(u"Warehouse"), Warehouse)) if profile.find: CURRENT_ITEMS.append((_(u"Find"), Find)) if profile.warehouse: @@ -323,7 +328,7 @@ def shortcut_menu(request): continue current_items.append(pk) selected = pk == current - item_label = shortify(item['cached_label'], 60) + item_label = shortify(item[lbl_key], 60) if selected: cls = shortmenu_class new_selected_item = pk @@ -365,8 +370,7 @@ def get_current_items(request): def unpin(request, item_type): - if item_type not in ('find', 'contextrecord', 'operation', 'file', - 'treatment', 'treatmentfile'): + if item_type not in CURRENT_ITEM_KEYS_DICT.keys(): logger.warning("unpin unknow type: {}".format(item_type)) return HttpResponse('nok') request.session['treatment'] = '' @@ -378,9 +382,15 @@ def unpin(request, item_type): request.session['find'] = '' if item_type == 'find': return HttpResponse('ok') + request.session['warehouse'] = '' + if item_type == 'warehouse': + return HttpResponse('ok') request.session['contextrecord'] = '' if item_type == 'contextrecord': return HttpResponse('ok') + request.session['site'] = '' + if item_type == 'site': + return HttpResponse('ok') request.session['operation'] = '' if item_type == 'operation': return HttpResponse('ok') @@ -401,16 +411,19 @@ def update_current_item(request, item_type=None, pk=None): request.session['SHORTCUT_SEARCH'] = 'all' currents = get_current_items(request) + # re-init when descending item are not relevant if item_type == 'file' and currents['file'] and currents['operation'] and \ currents['operation'].associated_file != currents['file']: request.session["operation"] = '' currents['operation'] = None + if item_type in ('operation', 'file') and currents['contextrecord'] and \ (not request.session.get("operation", None) or currents['contextrecord'].operation != currents['operation']): request.session["contextrecord"] = '' currents['contextrecord'] = None + from archaeological_finds.models import Find if item_type in ('contextrecord', 'operation', 'file') and \ currents['find'] and \ |