Example #1
0
 def check_single_type_duplicates() -> List[List[str]]:
     from openatlas.models.node import Node
     from openatlas.models.entity import Entity
     data = []
     for node in g.nodes.values():
         if node.root or node.multiple or node.value_type:
             continue  # pragma: no cover
         node_ids = Node.get_all_sub_ids(node)
         if not node_ids:
             continue  # pragma: no cover
         for id_ in Db.check_single_type_duplicates(node_ids):
             offending_nodes = []
             entity = Entity.get_by_id(id_, nodes=True)
             for entity_node in entity.nodes:
                 if g.nodes[entity_node.root[-1]].id != node.id:
                     continue  # pragma: no cover
                 offending_nodes.append(
                     '<a href="{url}">{label}</a> {name}'.format(
                         label=uc_first(_('remove')),
                         name=entity_node.name,
                         url=url_for('admin_delete_single_type_duplicate',
                                     entity_id=entity.id,
                                     node_id=entity_node.id)))
             data.append([
                 link(entity), entity.class_.name,
                 link(g.nodes[node.id]),
                 '<br><br><br><br><br>'.join(offending_nodes)
             ])
     return data
Example #2
0
 def check_single_type_duplicates() -> list[dict[str, Any]]:
     from openatlas.models.type import Type
     from openatlas.models.entity import Entity
     data = []
     for type_ in g.types.values():
         if type_.root or type_.multiple or type_.category == 'value':
             continue  # pragma: no cover
         type_ids = Type.get_all_sub_ids(type_)
         if not type_ids:
             continue  # pragma: no cover
         for id_ in Db.check_single_type_duplicates(type_ids):
             offending_types = []
             entity = Entity.get_by_id(id_, types=True)
             for entity_types in entity.types:
                 if g.types[entity_types.root[0]].id != type_.id:
                     continue  # pragma: no cover
                 offending_types.append(entity_types)
             data.append({
                 'entity': entity,
                 'type': type_,
                 'offending_types': offending_types
             })
     return data