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
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
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
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