Esempio n. 1
0
File: utils.py Progetto: emjemj/ni
def get_unique_node_handle(node_name,
                           node_type_name,
                           node_meta_type,
                           case_insensitive=True):
    """
    Takes the arguments needed to create a NodeHandle, if there already
    is a NodeHandle with the same name and type it will be considered
    the same one.
    Returns a NodeHandle object.
    """
    user = get_user()
    node_type = get_node_type(node_type_name)
    query = {
        'node_type': node_type,
        'defaults': {
            'node_meta_type': node_meta_type,
            'creator': user,
            'modifier': user,
            'node_name': node_name
        }
    }
    if case_insensitive:
        query['node_name__iexact'] = node_name
    else:
        query['node_name'] = node_name
    node_handle, created = NodeHandle.objects.get_or_create(**query)
    if created:
        print('Created node: {}'.format(node_name))
        activitylog.create_node(user, node_handle)
    return node_handle
Esempio n. 2
0
def get_unique_node_handle(node_name,
                           node_type_name,
                           node_meta_type,
                           allowed_node_types=None):
    """
    Takes the arguments needed to create a NodeHandle, if there already
    is a NodeHandle with the same name considered the same one.

    If the allowed_node_types is set the supplied node types will be used for filtering.

    Returns a NodeHandle object.
    """
    node_handle = None
    user = get_user()
    try:
        if not allowed_node_types:
            allowed_node_types = [node_type_name]
        query = NodeHandle.objects.filter(
            node_type__type__in=allowed_node_types)
        node_handle = query.get(node_name=node_name)
    except NodeHandle.DoesNotExist:
        node_type = get_node_type(node_type_name)
        defaults = {
            'node_meta_type': node_meta_type,
            'creator': user,
            'modifier': user
        }
        node_handle, created = NodeHandle.objects.get_or_create(
            node_name=node_name, node_type=node_type, defaults=defaults)
        if created:
            activitylog.create_node(user, node_handle)
    except NodeHandle.MultipleObjectsReturned:
        logger.error("Assumed unique node not unique: {0}".format(node_name))
    return node_handle
Esempio n. 3
0
def create_node_handle(node_name, node_type_name, node_meta_type):
    """
    Takes the arguments needed to create a NodeHandle.
    Returns a NodeHandle object.
    """
    user = get_user()
    node_type = get_node_type(node_type_name)
    node_handle = NodeHandle.objects.create(node_name=node_name, node_type=node_type, node_meta_type=node_meta_type,
                                            creator=user, modifier=user)
    node_handle.save()
    activitylog.create_node(user, node_handle)
    return node_handle
Esempio n. 4
0
def get_unique_node_handle(node_name, node_type_name, node_meta_type):
    """
    Takes the arguments needed to create a NodeHandle, if there already
    is a NodeHandle with the same name and type it will be considered
    the same one.
    Returns a NodeHandle object.
    """
    user = get_user()
    node_type = get_node_type(node_type_name)
    defaults = {
        'node_meta_type': node_meta_type,
        'creator': user,
        'modifier': user
    }
    node_handle, created = NodeHandle.objects.get_or_create(node_name=node_name, node_type=node_type, defaults=defaults)
    if created:
        activitylog.create_node(user, node_handle)
    return node_handle