def repositories_manage_add(request): if request.method == 'POST': form = RepositoryForm(request.user, request.POST) if form.is_valid(): repo = form.save(commit=False) repo.user = request.user repo.slug = slugify(repo.title) repo.save() repo.repositoryuser_set.create( user=request.user, can_read=True, can_write=True, can_admin=True ) register_repository_update(request.user, 'created', repo) messages.success(request, _('Repository added.')) return redirect('accounts_profile') else: form = RepositoryForm(request.user) return render(request, 'repositories/repository_manage_add.html', { 'form': form, })
def repositories_manage_change(request, repo): if request.method == 'POST': if request.POST.get('method', None) == 'add_repouser': result = False error_msg = 'No error message' try: user = User.objects.get(email=request.POST.get('email', None)) if repo.user == user: error_msg = 'You cannot re-add the repository owner.' elif user.repositoryuser_set.filter(repo=repo).exists(): error_msg = 'User already added to repository' else: repo.repositoryuser_set.create(user=user) register_repository_update(user, 'changed', repo) result = True except User.DoesNotExist: error_msg ='Invalid email address' return HttpResponse('{"result": "%s", "error_msg": "%s"}' % ( int(result), error_msg) ) repo_form = RepositoryForm( request.user, request.POST, instance=repo, prefix='repository') users_formset = RepositoryUserFormSet(request.POST, prefix='users') if repo_form.is_valid(): repo_form.save() if users_formset.is_valid(): for instance in users_formset.save(commit=False): if not instance.pk: instance.repo = repo instance.save() register_repository_update(request.user, 'changed', repo) messages.success(request, _('Repository updated.')) return redirect('accounts_profile') else: repo_form = RepositoryForm(request.user, instance=repo, prefix='repository') users_formset = RepositoryUserFormSet( prefix='users', queryset=repo.alterable_users ) return render(request, 'repositories/repository_manage_change.html', { 'repo': repo, 'form': repo_form, 'delete_form': RepositoryDeleteForm(), 'users': users_formset, })
def repositories_manage_add(request): if request.method == "POST": form = RepositoryForm(request.user, request.POST) if form.is_valid(): repo = form.save(commit=False) repo.user = request.user repo.slug = slugify(repo.title) repo.save() repo.repositoryuser_set.create(user=request.user, can_read=True, can_write=True, can_admin=True) register_repository_update(request.user, "created", repo) messages.success(request, _("Repository added.")) return redirect("accounts_profile") else: form = RepositoryForm(request.user) return render(request, "repositories/repository_manage_add.html", {"form": form})
def manage_change(request, repo): if request.method == 'POST': if 'lookup_username' in request.POST: username = request.POST['lookup_username'] result = {'error': False} try: user = User.objects.get(Q(Q(email=username) | Q(username=username))) if user.repositoryuser_set.filter(repo=repo).exists(): result['error'] = 'User has already access to this repository.' else: result['username'] = user.username result['id'] = user.pk except User.DoesNotExist: result['error'] = 'Username or e-mail address not found.' return HttpResponse(json.dumps(result), mimetype='application/json') repo_form = RepositoryForm( request.user, request.POST, instance=repo, prefix='repository') users_formset = RepositoryUserFormSet(request.POST, prefix='users') if repo_form.is_valid(): repo_form.save() if users_formset.is_valid(): for instance in users_formset.save(commit=False): if not instance.pk: instance.repo = repo instance.save() messages.success(request, _('Repository updated.')) return redirect('accounts_profile') else: repo_form = RepositoryForm(request.user, instance=repo, prefix='repository') users_formset = RepositoryUserFormSet( prefix='users', queryset=repo.alterable_users ) return render(request, 'repositories/manage_change.html', { 'repo': repo, 'form': repo_form, 'users': users_formset, })
def repositories_manage_change(request, repo): if request.method == "POST": if request.POST.get("method", None) == "add_repouser": result = False error_msg = "No error message" try: user = User.objects.get(email=request.POST.get("email", None)) if repo.user == user: error_msg = "You cannot re-add the repository owner." elif user.repositoryuser_set.filter(repo=repo).exists(): error_msg = "User already added to repository" else: repo.repositoryuser_set.create(user=user) register_repository_update(user, "changed", repo) result = True except User.DoesNotExist: error_msg = "Invalid email address" return HttpResponse('{"result": "%s", "error_msg": "%s"}' % (int(result), error_msg)) repo_form = RepositoryForm(request.user, request.POST, instance=repo, prefix="repository") users_formset = RepositoryUserFormSet(request.POST, prefix="users") if repo_form.is_valid(): repo_form.save() if users_formset.is_valid(): for instance in users_formset.save(commit=False): if not instance.pk: instance.repo = repo instance.save() register_repository_update(request.user, "changed", repo) messages.success(request, _("Repository updated.")) return redirect("accounts_profile") else: repo_form = RepositoryForm(request.user, instance=repo, prefix="repository") users_formset = RepositoryUserFormSet(prefix="users", queryset=repo.alterable_users) return render( request, "repositories/repository_manage_change.html", {"repo": repo, "form": repo_form, "delete_form": RepositoryDeleteForm(), "users": users_formset}, )