def edit_links(request, slug): project = get_object_or_404(Project, slug=slug) metric_permissions = project.get_metrics_permissions(request.user) profile = request.user.get_profile() if request.method == 'POST': form = project_forms.ProjectLinksForm(request.POST) if form.is_valid(): link = form.save(commit=False) link.project = project link.user = profile link.save() messages.success(request, _('Link added.')) return http.HttpResponseRedirect( reverse('projects_edit_links', kwargs=dict(slug=project.slug))) else: messages.error(request, _('There was an error adding your link.')) else: form = project_forms.ProjectLinksForm() links = Link.objects.select_related('subscription').filter(project=project) return render_to_response('projects/project_edit_links.html', { 'project': project, 'form': form, 'links': links, 'links_tab': True, 'can_view_metric_overview': metric_permissions, }, context_instance=RequestContext(request))
def edit_links_edit(request, slug, link): link = get_object_or_404(Link, id=link) form = project_forms.ProjectLinksForm(request.POST or None, instance=link) profile = get_object_or_404(UserProfile, user=request.user) project = get_object_or_404(Project, slug=slug) if link.project != project: return http.HttpResponseForbidden(_("You can't edit this link")) metric_permissions = project.get_metrics_permissions(request.user) if form.is_valid(): if link.subscription: #UnsubscribeFromFeed.apply_async(args=(link,)) link.subscription = None link.save() link = form.save(commit=False) link.user = profile link.project = project link.save() messages.success(request, _('Link updated.')) return http.HttpResponseRedirect( reverse('projects_edit_links', kwargs=dict(slug=project.slug))) else: form = project_forms.ProjectLinksForm(instance=link) return render_to_response('projects/project_edit_links_edit.html', { 'project': project, 'form': form, 'link': link, 'links_tab': True, 'can_view_metric_overview': metric_permissions, }, context_instance=RequestContext(request))
def edit_links_edit(request, slug, link): link = get_object_or_404(Link, id=link) form = project_forms.ProjectLinksForm(request.POST or None, instance=link) profile = get_object_or_404(UserProfile, user=request.user) project = get_object_or_404(Project, slug=slug) if link.project != project: return http.HttpResponseForbidden() if form.is_valid(): link = form.save(commit=False) link.user = profile link.project = project link.save() messages.success(request, _('Link updated.')) tasks.SubscribeToFeed.apply_async(args=(link, )) return http.HttpResponseRedirect( reverse('projects_edit_links', kwargs=dict(slug=project.slug))) else: form = project_forms.ProjectLinksForm(instance=link) return render_to_response('projects/project_edit_links_edit.html', { 'project': project, 'form': form, 'link': link, }, context_instance=RequestContext(request))