summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-11-30 17:49:39 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-11-30 17:49:39 +0100
commite5291ad557e97c1aa2d516494d25fd72ea33ae91 (patch)
tree13469ff4be4d6d84ae1272633b3f77ff25304246 /ishtar_common/views.py
parent8b666443667f92e014d70a4247c7885375bba610 (diff)
downloadIshtar-e5291ad557e97c1aa2d516494d25fd72ea33ae91.tar.bz2
Ishtar-e5291ad557e97c1aa2d516494d25fd72ea33ae91.zip
Treatment searches and sheet
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index cb6afe8c4..4a7c7e2e8 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -528,7 +528,7 @@ HIERARCHIC_FIELDS = ['periods', 'period', 'unit', 'material_types',
def get_item(model, func_name, default_name, extra_request_keys=[],
- base_request={}, bool_fields=[], reversed_bool_fields=[],
+ base_request=None, bool_fields=[], reversed_bool_fields=[],
dated_fields=[], associated_models=[], relative_session_names=[],
specific_perms=[], own_table_cols=None, relation_types_prefix={}):
"""
@@ -577,10 +577,12 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
my_extra_request_keys = copy(model.EXTRA_REQUEST_KEYS)
else:
my_extra_request_keys = copy(extra_request_keys)
- if not base_request and hasattr(model, 'BASE_REQUEST'):
+ if base_request is None and hasattr(model, 'BASE_REQUEST'):
my_base_request = copy(model.BASE_REQUEST)
- else:
+ elif base_request is not None:
my_base_request = copy(base_request)
+ else:
+ my_base_request = {}
if not bool_fields and hasattr(model, 'BOOL_FIELDS'):
my_bool_fields = model.BOOL_FIELDS[:]
else:
@@ -677,7 +679,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
request.session[default_name].split('-')[-1]}
else:
dct = {"pk": request.session[default_name]}
- elif dct == base_request:
+ elif dct == (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]:
@@ -931,10 +933,14 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
v = v()
new_vals.append(v)
elif val:
- val = getattr(val, ky)
- if callable(val):
- val = val()
- new_vals.append(val)
+ try:
+ val = getattr(val, ky)
+ if callable(val):
+ val = val()
+ new_vals.append(val)
+ except AttributeError:
+ # must be a query key such as "contains"
+ pass
vals = new_vals
# manage last related objects
if vals and hasattr(vals[0], 'all'):