示例#1
0
 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)
示例#2
0
 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
示例#3
0
 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)
示例#4
0
 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
示例#5
0
 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
示例#6
0
 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
示例#7
0
 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
示例#8
0
 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