diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/templatetags/window_tables.py | 2 | ||||
| -rw-r--r-- | ishtar_common/views.py | 22 | 
2 files changed, 16 insertions, 8 deletions
diff --git a/ishtar_common/templatetags/window_tables.py b/ishtar_common/templatetags/window_tables.py index acb3d4a0a..566d1dfbc 100644 --- a/ishtar_common/templatetags/window_tables.py +++ b/ishtar_common/templatetags/window_tables.py @@ -45,6 +45,8 @@ ASSOCIATED_MODELS['context_records_relations'] = (  ASSOCIATED_MODELS['finds'] = (Find, 'get-find', 'get-find-full')  ASSOCIATED_MODELS['finds_for_ope'] = (      Find, 'get-find-for-ope', 'get-find-full') +ASSOCIATED_MODELS['finds_for_treatment'] = ( +    Find, 'get-find-for-treatment', 'get-find-full')  ASSOCIATED_MODELS['finds_docs'] = (      FindSource, 'get-findsource', 'get-findsource-full')  ASSOCIATED_MODELS['finds_upstreamtreatments'] = ( 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'):  | 
