@@ 132-151 (lines=20) @@ | ||
129 | ||
130 | return removed |
|
131 | ||
132 | def _get_or_create_ecategories(self, entity, cached_entity_categories): |
|
133 | entity_categories = [] |
|
134 | efed = Entity_Federations.objects.get_or_create(federation=self, entity=entity)[0] |
|
135 | cur_cached_categories = [ |
|
136 | t.category_id for t in efed.entity_categories.all()] |
|
137 | for ecategory in entity.xml_categories: |
|
138 | if ecategory in cur_cached_categories: |
|
139 | break |
|
140 | ||
141 | if cached_entity_categories is None: |
|
142 | entity_category, _ = EntityCategory.objects.get_or_create( |
|
143 | category_id=ecategory) |
|
144 | else: |
|
145 | if ecategory in cached_entity_categories: |
|
146 | entity_category = cached_entity_categories[ecategory] |
|
147 | else: |
|
148 | entity_category = EntityCategory.objects.create( |
|
149 | category_id=ecategory) |
|
150 | entity_categories.append(entity_category) |
|
151 | return entity_categories |
|
152 | ||
153 | def _update_entities(self, entities_to_update, entities_to_add): |
|
154 | for e in entities_to_update: |
@@ 368-385 (lines=18) @@ | ||
365 | else: |
|
366 | raise ValueError("Not metadata loaded") |
|
367 | ||
368 | def _get_or_create_etypes(self, cached_entity_types): |
|
369 | entity_types = [] |
|
370 | cur_cached_types = [t.xmlname for t in self.types.all()] |
|
371 | for etype in self.xml_types: |
|
372 | if etype in cur_cached_types: |
|
373 | break |
|
374 | ||
375 | if cached_entity_types is None: |
|
376 | entity_type, _ = EntityType.objects.get_or_create(xmlname=etype, |
|
377 | name=DESCRIPTOR_TYPES_DISPLAY[etype]) |
|
378 | else: |
|
379 | if etype in cached_entity_types: |
|
380 | entity_type = cached_entity_types[etype] |
|
381 | else: |
|
382 | entity_type = EntityType.objects.create(xmlname=etype, |
|
383 | name=DESCRIPTOR_TYPES_DISPLAY[etype]) |
|
384 | entity_types.append(entity_type) |
|
385 | return entity_types |
|
386 | ||
387 | def process_metadata(self, auto_save=True, entity_data=None, cached_entity_types=None, federation=None): |
|
388 | if not entity_data: |