Пример #1
0
def ajax_upload_samples_as_version(request):
    """
    Upload some samples and then add each uploaded sample
    to a new project version.
    """
    project = get_obj_from_request(request.POST, 'project', Project)
    comments = request.POST.get('comments', '')

    if project is None:
        return json_failure(design.bad_project_id)

    band = project.band

    if not band.permission_to_work(request.user):
        return json_failure(
            design.you_dont_have_permission_to_work_on_this_band)

    if band.is_read_only():
        return json_failure(design.band_in_readonly_mode)

    node = SongCommentNode()
    node.owner = request.user
    node.content = comments
    node.save()

    version = ProjectVersion()
    version.project = project
    version.owner = request.user
    version.comment_node = node
    version.version = project.latest_version.version  # no +1, only adding samples.
    version.save()  # so we can add provided_samples

    node.version = version
    node.save()

    def add_sample_to_version(sample):
        version.provided_samples.add(sample)

    files = request.FILES.getlist('file')

    for item in files:
        handle_sample_upload(item,
                             request.user,
                             band,
                             callback=add_sample_to_version)

    band.save()
    version.save()
    version.makeLogEntry()

    return json_success()
Пример #2
0
def ajax_upload_samples_as_version(request):
    """
    Upload some samples and then add each uploaded sample
    to a new project version.
    """
    project = get_obj_from_request(request.POST, 'project', Project)
    comments = request.POST.get('comments', '')

    if project is None:
        return json_failure(design.bad_project_id)

    band = project.band

    if not band.permission_to_work(request.user):
        return json_failure(design.you_dont_have_permission_to_work_on_this_band)

    if band.is_read_only():
        return json_failure(design.band_in_readonly_mode)

    node = SongCommentNode()
    node.owner = request.user
    node.content = comments
    node.save()

    version = ProjectVersion()
    version.project = project
    version.owner = request.user
    version.comment_node = node
    version.version = project.latest_version.version # no +1, only adding samples.
    version.save() # so we can add provided_samples

    node.version = version
    node.save()
    
    def add_sample_to_version(sample):
        version.provided_samples.add(sample)
        
    files = request.FILES.getlist('file')

    for item in files:
        handle_sample_upload(item, request.user, band, callback=add_sample_to_version)

    band.save()
    version.save()
    version.makeLogEntry()

    return json_success()