Esempio n. 1
0
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))
Esempio n. 2
0
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))