def get_subject_type_fields(self, field_num_list=False): """ Gets a list of subject-type field objects, limited by a list of field_num if not false """ self.get_examples = True if field_num_list is not False: imp_fields = ImportField.objects\ .filter(source_id=self.source_id, field_type__in=self.DEFAULT_SUBJECT_TYPE_FIELDS, field_num__in=field_num_list) else: imp_fields = ImportField.objects\ .filter(source_id=self.source_id, field_type__in=self.DEFAULT_SUBJECT_TYPE_FIELDS) for field_obj in imp_fields: if field_obj.field_type == 'media': self.has_media_field = True if field_obj.field_type == 'documents': self.has_doc_field = True if field_obj.field_type == 'complex-description': self.has_complex_des_field = True field_obj.examples = self.get_example_entities(field_obj.field_num, field_obj.value_prefix) field_obj.ex_csv = ', '.join(field_obj.examples) if len(field_obj.field_value_cat) > 0: ent = Entity() ent.get_icon = True found = ent.dereference(field_obj.field_value_cat) if found: field_obj.field_value_cat_label = ent.label field_obj.field_value_cat_icon = ent.icon else: field_obj.field_value_cat_icon = False field_obj.field_value_cat_label = '' self.fields.append(field_obj)
def make_dict_from_field_obj(self, field_obj): """ returns an ordered dict for a field_obj """ field_dict = LastUpdatedOrderedDict() field_dict['field_num'] = field_obj.field_num field_dict['label'] = field_obj.label field_dict['ref_name'] = field_obj.ref_name field_dict['field_type'] = field_obj.field_type field_dict['field_data_type'] = field_obj.field_data_type field_dict['field_value_cat'] = field_obj.field_value_cat field_dict['obs_num'] = field_obj.obs_num field_dict['value_prefix'] = field_obj.value_prefix field_dict['unique_count'] = field_obj.unique_count field_dict['f_uuid'] = field_obj.f_uuid if self.get_examples: field_dict['examples'] = self.get_example_entities(field_obj.field_num, field_obj.value_prefix) field_dict['ex_csv'] = ', '.join(field_dict['examples']) if len(field_obj.field_value_cat) > 0: ent = Entity() ent.get_icon = True found = ent.dereference(field_obj.field_value_cat) if found: field_dict['field_value_cat_label'] = ent.label field_dict['field_value_cat_icon'] = ent.icon return field_dict
def get_subject_type_fields(self, field_num_list=False): """ Gets a list of subject-type field objects, limited by a list of field_num if not false """ self.get_examples = True if field_num_list is not False: imp_fields = ImportField.objects\ .filter(source_id=self.source_id, field_type__in=self.DEFAULT_SUBJECT_TYPE_FIELDS, field_num__in=field_num_list) else: imp_fields = ImportField.objects\ .filter(source_id=self.source_id, field_type__in=self.DEFAULT_SUBJECT_TYPE_FIELDS) for field_obj in imp_fields: if field_obj.field_type == 'media': self.has_media_field = True if field_obj.field_type == 'documents': self.has_doc_field = True if field_obj.field_type == 'complex-description': self.has_complex_des_field = True field_obj.examples = self.get_example_entities( field_obj.field_num, field_obj.value_prefix) field_obj.ex_csv = ', '.join(field_obj.examples) if len(field_obj.field_value_cat) > 0: ent = Entity() ent.get_icon = True found = ent.dereference(field_obj.field_value_cat) if found: field_obj.field_value_cat_label = ent.label field_obj.field_value_cat_icon = ent.icon else: field_obj.field_value_cat_icon = False field_obj.field_value_cat_label = '' self.fields.append(field_obj)
def make_dict_from_field_obj(self, field_obj): """ returns an ordered dict for a field_obj """ field_dict = LastUpdatedOrderedDict() field_dict['field_num'] = field_obj.field_num field_dict['label'] = field_obj.label field_dict['ref_name'] = field_obj.ref_name field_dict['field_type'] = field_obj.field_type field_dict['field_data_type'] = field_obj.field_data_type field_dict['field_value_cat'] = field_obj.field_value_cat field_dict['obs_num'] = field_obj.obs_num field_dict['value_prefix'] = field_obj.value_prefix field_dict['unique_count'] = field_obj.unique_count field_dict['f_uuid'] = field_obj.f_uuid if self.get_examples: field_dict['examples'] = self.get_example_entities( field_obj.field_num, field_obj.value_prefix) field_dict['ex_csv'] = ', '.join(field_dict['examples']) if len(field_obj.field_value_cat) > 0: ent = Entity() ent.get_icon = True found = ent.dereference(field_obj.field_value_cat) if found: field_dict['field_value_cat_label'] = ent.label field_dict['field_value_cat_icon'] = ent.icon return field_dict
def add_child_entity(self, child_id, children_dict): """ creates a child entity dictionary object if found in the dictionary object of children and if the child entity can be dereferenced """ active_child = False if child_id in children_dict: active_child = LastUpdatedOrderedDict() ent = Entity() ent.get_icon = True found = ent.dereference(child_id) if found: active_child['label'] = ent.label active_child['id'] = child_id active_child['icon'] = ent.icon if children_dict[child_id] is not False: active_child['children'] = [] for child_child_id in children_dict[child_id]: child_child = self.add_child_entity( child_child_id, children_dict) if child_child is not False: active_child['children'].append(child_child) active_child['children'] = self.sort_children_by_label( active_child['children']) return active_child
def get_cache_entity(self, identifier, get_icon=False): """ gets an entity either from memory or from the database, if from the database, cache the entity in memory to make lookups faster """ output = False if identifier in self.mem_entities: # found in memory output = self.mem_entities[identifier] else: ent = Entity() ent.get_icon = get_icon found = ent.dereference(identifier) if found: self.mem_entities[identifier] = ent output = ent return output
def add_child_entity(self, child_id, children_dict): """ creates a child entity dictionary object if found in the dictionary object of children and if the child entity can be dereferenced """ active_child = False if child_id in children_dict: active_child = LastUpdatedOrderedDict() ent = Entity() ent.get_icon = True found = ent.dereference(child_id) if found: active_child['label'] = ent.label active_child['id'] = child_id active_child['icon'] = ent.icon if children_dict[child_id] is not False: active_child['children'] = [] for child_child_id in children_dict[child_id]: child_child = self.add_child_entity(child_child_id, children_dict) if child_child is not False: active_child['children'].append(child_child) active_child['children'] = self.sort_children_by_label(active_child['children']) return active_child