def edit(request, slug): user = request.user project = get_object_or_404(Project, slug=slug) members = project.projectmember_set.all() if user in [member.user for member in members]: member = members.get(user=user) level = member.level if request.POST: form = ProjectEditForm(request.POST, instance=project) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('project-detail', args=[project.slug])) else: form = ProjectEditForm(instance=project) return render_to_response('edit_project.html', locals(), context_instance=RequestContext(request))
def update(self, request, slug): "update a project" p = Project.objects.filter(slug=slug) if not p: return rc.NOT_FOUND elif len(p) > 1: return rc.BAD_REQUEST elif "has_admin_perm" in p[0].get_perms(request.user): p = p[0] initial = model_to_dict(p) data = request.PUT data._mutable = True if "admins" not in data: data["admins"] = ",".join([a.username for a in p.admins.all()]) if "members" not in data: data["members"] = ",".join([m.username for m in p.members.all()]) filt = lambda v: v not in data.keys() for field in filter(filt, [f.name for f in p._meta.fields]): data[field] = initial.get(field, None) form = ProjectEditForm(data=data, instance=p) if form.is_valid(): p = form.save() return p return rc.BAD_REQUEST else: return rc.FORBIDDEN
def edit_project(request, id): user = request.user page_title = "Edit Project" instance = get_object_or_404(Project, id=id) if request.user == instance.user: form = ProjectEditForm(request.POST or None, request.FILES or None, instance=instance) if form.is_valid(): instance = form.save(commit=False) instance.save() return redirect("get_project", id=instance.id) context = { 'instance': instance, 'page_title': page_title, 'form': form, } return render(request, 'project_edit.html', context) else: return HttpResponse(status=403)
def edit(request, slug): user = request.user project = get_object_or_404(Project, slug=slug) members = project.projectmember_set.all() if user in [member.user for member in members]: member = members.get(user=user) level = member.level if request.POST: form = ProjectEditForm(request.POST, instance=project) if form.is_valid(): form.save() return HttpResponseRedirect( reverse('project-detail', args=[project.slug])) else: form = ProjectEditForm(instance=project) return render_to_response('edit_project.html', locals(), context_instance=RequestContext(request))