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()
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()
def ajax_rename_project(request): """ Make a new version that renames the project. """ form = RenameProjectForm(request.POST) if form.is_valid(): new_title = form.cleaned_data.get('title') comments = form.cleaned_data.get('comments', '') project_id = form.cleaned_data.get('project') try: project = Project.objects.get(pk=project_id) except Project.DoesNotExist: return json_failure(design.bad_project_id) if not project.band.permission_to_work(request.user): return json_failure( design.you_dont_have_permission_to_work_on_this_band) if project.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 because only renaming version.new_title = new_title version.old_title = project.title version.save() node.version = version node.save() project.title = new_title project.save() return json_success() return json_failure(form_errors(form))
def ajax_rename_project(request): """ Make a new version that renames the project. """ form = RenameProjectForm(request.POST) if form.is_valid(): new_title = form.cleaned_data.get('title') comments = form.cleaned_data.get('comments', '') project_id = form.cleaned_data.get('project') try: project = Project.objects.get(pk=project_id) except Project.DoesNotExist: return json_failure(design.bad_project_id) if not project.band.permission_to_work(request.user): return json_failure(design.you_dont_have_permission_to_work_on_this_band) if project.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 because only renaming version.new_title = new_title version.old_title = project.title version.save() node.version = version node.save() project.title = new_title project.save() return json_success() return json_failure(form_errors(form))