Example #1
0
 def relate_neuron_to_skeleton(neuron, skeleton):
     return _create_relation(request.user, project_id,
                             relation_map['model_of'], skeleton, neuron)
Example #2
0
 def relate_neuron_to_skeleton(neuron, skeleton):
     return _create_relation(creator, project_id, relation_map['model_of'],
                             skeleton, neuron)
Example #3
0
def create_assembly_and_neuron(request, project_id=None, stack_id=None):

    relation_map = get_relation_to_id_map(project_id)
    class_map = get_class_to_id_map(project_id)
    user = request.user

    try:
        staging_group = ClassInstance.objects.get(project=project_id, name="Staging")
    except ObjectDoesNotExist as e:
        # Doesn't exist, create it:
        staging_group = ClassInstance()
        staging_group.user = user
        staging_group.project_id = project_id
        staging_group.class_column_id = class_map["group"]
        staging_group.name = "Staging"
        staging_group.save()
        root = ClassInstance.objects.get(project=project_id, class_column=class_map["root"])

        _create_relation(user, project_id, relation_map["part_of"], staging_group.id, root.id)

    # Get the staging folder for the user doing the request
    name = user.first_name + " " + user.last_name + " (" + user.username + ")"
    try:
        group = ClassInstance.objects.get(project=project_id, name=name)
    except ObjectDoesNotExist as e:
        # Group does not exist: create it
        group = ClassInstance()
        group.user = user
        group.project_id = project_id
        group.class_column_id = class_map["group"]
        group.name = name
        group.save()
        _create_relation(user, project_id, relation_map["part_of"], group.id, staging_group.id)
        is_new = True

    response_on_error = "Failed to insert new instance of a neuron."
    new_neuron = ClassInstance()
    new_neuron.user = request.user
    new_neuron.project_id = project_id
    new_neuron.class_column_id = class_map["neuron"]
    new_neuron.name = "neuron"
    new_neuron.save()
    new_neuron.name = "neuron %d" % new_neuron.id
    new_neuron.save()

    _create_relation(user, project_id, relation_map["part_of"], new_neuron.id, group.id)

    response_on_error = "Failed to insert new instance of an assembly."
    new_assembly = ClassInstance()
    new_assembly.user = request.user
    new_assembly.project_id = project_id
    new_assembly.class_column_id = class_map["assembly"]
    new_assembly.name = "assembly"
    new_assembly.save()
    new_assembly.name = "assembly %d" % new_neuron.id
    new_assembly.save()

    _create_relation(user, project_id, relation_map["model_of"], new_assembly.id, new_neuron.id)

    insert_into_log(
        project_id,
        request.user.id,
        "create_assembly",
        None,
        "Created neuron with ID %s and assembly with ID %s" % (new_neuron.id, new_assembly.id),
    )

    return HttpResponse(json.dumps({"assembly_id": new_assembly.id, "neuron_id": new_neuron.id}))