def _build_instances(self): prompt_select_instances = [ Instance(id=prop.itemset.instance_id, src=prop.itemset.instance_uri) for prop in self.module.search_config.properties if prop.itemset.instance_id ] query_xpaths = [ QuerySessionXPath( self.module.search_config.case_session_var).instance() ] query_xpaths.extend( [datum.ref for datum in self._get_remote_request_query_datums()]) query_xpaths.extend([ self.module.search_config.get_relevant(), self.module.search_config.search_filter ]) query_xpaths.extend([ prop.default_value for prop in self.module.search_config.properties ]) instances, unknown_instances = get_all_instances_referenced_in_xpaths( self.app, query_xpaths) # we use the module's case list/details view to select the datum so also # need these instances to be available instances |= get_instances_for_module(self.app, self.module, self.detail_section_elements) # sorted list to prevent intermittent test failures return sorted(set(list(instances) + prompt_select_instances), key=lambda i: i.id)
def build_instances(self): prompt_select_instances = [ Instance(id=prop.itemset.instance_id, src=prop.itemset.instance_uri) for prop in self.module.search_config.properties if prop.itemset.instance_id ] xpaths = {QuerySessionXPath(self.case_session_var).instance()} xpaths.update(datum.ref for datum in self._remote_request_query_datums) xpaths.add(self.get_post_relevant()) xpaths = xpaths.union(self._get_multi_select_xpaths()) xpaths.add(self.module.search_config.search_filter) xpaths.update(prop.default_value for prop in self.module.search_config.properties) xpaths.update(prop.required for prop in self.module.search_config.properties) # we use the module's case list/details view to select the datum so also # need these instances to be available xpaths.update(self._get_xpaths_for_module()) instances, unknown_instances = get_all_instances_referenced_in_xpaths( self.app, xpaths) # exclude remote instances instances = [ instance for instance in instances if 'remote' not in instance.src ] # sorted list to prevent intermittent test failures return sorted(set(list(instances) + prompt_select_instances), key=lambda i: i.id)
def build_instances(self): query_xpaths = [QuerySessionXPath(self.case_session_var).instance()] query_xpaths.extend( [datum.ref for datum in self._remote_request_query_datums]) query_xpaths.append(self.get_post_relevant()) instances, unknown_instances = get_all_instances_referenced_in_xpaths( self.app, query_xpaths) # sorted list to prevent intermittent test failures return sorted(instances, key=lambda i: i.id)
def _build_instances(self): query_xpaths = [ datum.ref for datum in self._get_remote_request_query_datums() ] claim_relevant_xpaths = [self.module.search_config.relevant] instances, unknown_instances = get_all_instances_referenced_in_xpaths( self.domain, query_xpaths + claim_relevant_xpaths) # sorted list to prevent intermittent test failures return sorted(list(instances), key=lambda i: i.id)
def _build_instances(self): query_xpaths = [datum.ref for datum in self._get_remote_request_query_datums()] claim_relevant_xpaths = [self.module.search_config.relevant] instances, unknown_instances = get_all_instances_referenced_in_xpaths( self.domain, query_xpaths + claim_relevant_xpaths ) # sorted list to prevent intermittent test failures return sorted(list(instances), key=lambda i: i.id)
def _build_instances(self): query_xpaths = [ datum.ref for datum in self._get_remote_request_query_datums() ] claim_relevant_xpaths = [self.module.search_config.relevant] instances, unknown_instances = get_all_instances_referenced_in_xpaths( self.app, query_xpaths + claim_relevant_xpaths) # we use the module's case list/details view to select the datum so also # need these instances to be available instances |= get_instances_for_module(self.app, self.module) # sorted list to prevent intermittent test failures return sorted(list(instances), key=lambda i: i.id)
def _build_instances(self): query_xpaths = [datum.ref for datum in self._get_remote_request_query_datums()] claim_relevant_xpaths = [self.module.search_config.relevant] instances, unknown_instances = get_all_instances_referenced_in_xpaths( self.domain, query_xpaths + claim_relevant_xpaths ) # we use the module's case list/details view to select the datum so also # need these instances to be available instances |= get_instances_for_module(self.app, self.module) # sorted list to prevent intermittent test failures return sorted(list(instances), key=lambda i: i.id)
def get_instances_for_module(app, module, detail_section_elements): """ This method is used by CloudCare when filtering cases. """ modules = list(app.get_modules()) helper = DetailsHelper(app, modules) details = detail_section_elements detail_mapping = {detail.id: detail for detail in details} details_by_id = detail_mapping detail_ids = [ helper.get_detail_id_safe(module, detail_type) for detail_type, detail, enabled in module.get_details() if enabled ] detail_ids = [_f for _f in detail_ids if _f] xpaths = set() for detail_id in detail_ids: xpaths.update(details_by_id[detail_id].get_all_xpaths()) instances, _ = get_all_instances_referenced_in_xpaths(app, xpaths) return instances
def get_instances_for_module(app, module, additional_xpaths=None): """ This method is used by CloudCare when filtering cases. """ modules = list(app.get_modules()) helper = DetailsHelper(app, modules) details = DetailContributor(None, app, modules).get_section_elements() detail_mapping = {detail.id: detail for detail in details} details_by_id = detail_mapping detail_ids = [helper.get_detail_id_safe(module, detail_type) for detail_type, detail, enabled in module.get_details() if enabled] detail_ids = filter(None, detail_ids) xpaths = set() if additional_xpaths: xpaths.update(additional_xpaths) for detail_id in detail_ids: xpaths.update(details_by_id[detail_id].get_all_xpaths()) instances, _ = get_all_instances_referenced_in_xpaths(app.domain, xpaths) return instances
def get_instances_for_module(app, module, additional_xpaths=None): """ This method is used by CloudCare when filtering cases. """ modules = list(app.get_modules()) helper = DetailsHelper(app, modules) details = DetailContributor(None, app, modules).get_section_elements() detail_mapping = {detail.id: detail for detail in details} details_by_id = detail_mapping detail_ids = [helper.get_detail_id_safe(module, detail_type) for detail_type, detail, enabled in module.get_details() if enabled] detail_ids = [_f for _f in detail_ids if _f] xpaths = set() if additional_xpaths: xpaths.update(additional_xpaths) for detail_id in detail_ids: xpaths.update(details_by_id[detail_id].get_all_xpaths()) instances, _ = get_all_instances_referenced_in_xpaths(app.domain, xpaths) return instances