def case_hierarchy_context(case, get_case_url, show_view_buttons=True, timezone=None): wrapped_case = get_wrapped_case(case) if timezone is None: timezone = pytz.utc columns = wrapped_case.related_cases_columns type_info = wrapped_case.related_type_info descendent_case_list = get_flat_descendant_case_list( case, get_case_url, type_info=type_info ) parent_cases = [] if case.indices: # has parent case(s) # todo: handle duplicates in ancestor path (bubbling up of parent-child # relationships) for idx in case.indices: try: parent_cases.append(idx.referenced_case) except ResourceNotFound: parent_cases.append(None) for parent_case in parent_cases: if parent_case: parent_case.edit_data = { 'view_url': get_case_url(parent_case.case_id) } last_parent_id = parent_case.case_id else: last_parent_id = None for c in descendent_case_list: if not getattr(c, 'treetable_parent_node_id', None) and last_parent_id: c.treetable_parent_node_id = last_parent_id case_list = parent_cases + descendent_case_list for c in case_list: if not c: continue c.columns = [] case_dict = get_wrapped_case(c).to_full_dict() for column in columns: c.columns.append(get_display_data( case_dict, column, timezone=timezone)) return { 'current_case': case, 'domain': case.domain, 'case_list': case_list, 'columns': columns, 'num_columns': len(columns) + 1, 'show_view_buttons': show_view_buttons, }
timezone=None): wrapped_case = get_wrapped_case(case) if timezone is None: timezone = pytz.utc columns = wrapped_case.related_cases_columns type_info = wrapped_case.related_type_info case_list = get_flat_descendant_case_list(case, get_case_url, type_info=type_info) for c in case_list: if not c: continue c.columns = [] case_dict = get_wrapped_case(c).to_full_dict() for column in columns: c.columns.append( get_display_data(case_dict, column, timezone=timezone)) return { 'current_case': case, 'domain': case.domain, 'case_list': case_list, 'max_child_cases': MAX_CHILD_CASES, 'columns': columns, 'num_columns': len(columns) + 1, 'show_view_buttons': show_view_buttons, }