Ejemplo n.º 1
0
Archivo: views.py Proyecto: gdos/pygame
def create_or_edit_release(request, project_slug, release_slug=None):
    project = get_object_or_404(Project, slug=project_slug)
    if release_slug:
        action = "Edit release"
        release = get_object_or_404(Release, project=project, slug=release_slug)
        if not project.get_perms(request.user).get("has_member_perm", False):
            request.user.message_set.create(message=NEED_MEMBER_PERM)
            return HttpResponseRedirect(release.version.get_absolute_url())
        form_class = forms.ReleaseEditForm
    else:
        action = "Release a new version"
        release = Release(project=project, creator=request.user)
        form_class = forms.ReleaseCreationForm
    
    if request.method == 'POST':
        form = form_class(data=request.POST, files=request.FILES, instance=release)
        if form.is_valid():
            release = form.save(commit=False)
        #    if not release_slug:
        #        release.creator = request.user
            release.last_editor = request.user
        #    release.project = project
            if "submit" in request.POST:
                release.save()
                if hasattr(form, 'save_m2m'):
                    form.save_m2m()
                return HttpResponseRedirect(reverse('view_release', 
                                                args=[project.slug, release.slug]))
            else:
                release.render_markup()
                preview = True
    else:
        form = form_class(instance=release)
        
    return render_to_response('projects/create_or_edit_release.html', locals(),
                               context_instance=RequestContext(request))