def repo_edit(request, user_name, repo_name): owner = get_object_or_404(User, username=user_name) user = request.user repo = get_object_or_404(Repository, owner=owner, name=repo_name) access = repo.user_access(user) if access != 'O': return HttpResponse("You can't edit this", status=401) if request.method == 'GET': form = RepositoryForm(model_to_dict(repo)) colab_form = CollaborationFormSet(instance=repo, queryset=repo.collaboration_set.exclude(user=user)) elif request.method == 'POST': form = RepositoryForm(request.POST, instance=repo) colab_form = CollaborationFormSet(request.POST, instance=repo) if form.is_valid() and colab_form.is_valid(): repo = form.save() colab_form.save() return redirect('repo_desc', owner.username, repo.name) context = get_context(request, {'owner': owner, 'repo' : repo, 'form' : form, 'colab': colab_form, 'access': access }) return render_to_response('repo_manage/repo_edit.html', context, context_instance=RequestContext(request))
def repo_simple_new(request): user = request.user if not user.is_authenticated(): return HttpResponse("You can't add this", status=401) if request.method == 'GET': return redirect('repo_new') elif request.method == 'POST': new_form = NewRepositoryForm(request.POST) if new_form.is_valid(): repo = Repository(owner=user) repo.name = new_form.cleaned_data['repo_name'] try: repo.save() repo.collaboration_set.add( Collaboration(user=user, permission='O')) return redirect('repo_edit', user.username, repo.name) except IntegrityError: new_form._errors["repo_name"] = ErrorList( ["You DKDKDK already have a repository named that"]) context = get_context(request, { 'new_form': new_form, 'form': RepositoryForm() }) return render_to_response('repo_manage/repo_edit.html', context, context_instance=RequestContext(request))
def repo_edit(request, user_name, repo_name): owner = get_object_or_404(User, username=user_name) user = request.user repo = get_object_or_404(Repository, owner=owner, name=repo_name) access = repo.user_access(user) if access != 'O': return HttpResponse("You can't edit this", status=401) if request.method == 'GET': form = RepositoryForm(model_to_dict(repo)) colab_form = CollaborationFormSet( instance=repo, queryset=repo.collaboration_set.exclude(user=user)) elif request.method == 'POST': form = RepositoryForm(request.POST, instance=repo) colab_form = CollaborationFormSet(request.POST, instance=repo) if form.is_valid() and colab_form.is_valid(): repo = form.save() colab_form.save() return redirect('repo_desc', owner.username, repo.name) context = get_context( request, { 'owner': owner, 'repo': repo, 'form': form, 'colab': colab_form, 'access': access }) return render_to_response('repo_manage/repo_edit.html', context, context_instance=RequestContext(request))
def repo_new(request): user = request.user if not user.is_authenticated(): return HttpResponse("You can't add this", status=401) if request.method == 'GET': new_form = NewRepositoryForm() form = RepositoryForm() elif request.method == 'POST': new_form = NewRepositoryForm(request.POST) form = RepositoryForm(request.POST) if new_form.is_valid() and form.is_valid(): repo = form.save(commit=False) repo.owner = user repo.name = new_form.cleaned_data['repo_name'] try: repo.save() repo.collaboration_set.add(Collaboration(user=user, permission='O')) return redirect('repo_desc' , user.username, repo.name) except IntegrityError: new_form._errors["repo_name"] = ErrorList(["You already have a repository named that"]) context = get_context(request, { 'new_form':new_form, 'form':form}) return render_to_response('repo_manage/repo_edit.html', context, context_instance=RequestContext(request))