summaryrefslogtreecommitdiff
path: root/coip/apps/link/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps/link/views.py')
-rw-r--r--coip/apps/link/views.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/coip/apps/link/views.py b/coip/apps/link/views.py
new file mode 100644
index 0000000..484d129
--- /dev/null
+++ b/coip/apps/link/views.py
@@ -0,0 +1,40 @@
+'''
+Created on Aug 4, 2010
+
+@author: leifj
+'''
+from django.contrib.auth.decorators import login_required
+from django.shortcuts import get_object_or_404
+from coip.apps.name.models import Name
+from coip.multiresponse import render403, respond_to
+from coip.apps.link.models import Link
+from coip.apps.link.forms import AddRelatedLinkForm
+from django.http import HttpResponseRedirect
+
+@login_required
+def add(request,id):
+ name = get_object_or_404(Name,pk=id)
+ if not name.has_permission(request.user,'w'):
+ return render403("You do not have permission to add a link on %s" % (name))
+
+ if request.method == 'POST':
+ link = Link(tag='related',name=name)
+ form = AddRelatedLinkForm(request.POST,instance=link)
+ if form.is_valid():
+ link = form.save()
+ return HttpResponseRedirect("/name/id/%d" % name.id)
+ else:
+ form = AddRelatedLinkForm()
+
+ return respond_to(request,{'text/html': 'apps/link/edit.html'},{'form': form,'name': name,'formtitle': 'Add link','submitname': 'Add link'})
+
+@login_required
+def remove(request,id):
+ link = get_object_or_404(Link,pk=id)
+ name = link.name
+ if not name.has_permission(request.user,'w'):
+ return render403("You do not have permission to remove a link on %s" % (name))
+
+ link.delete()
+
+ return HttpResponseRedirect("/name/id/%d" % name.id) \ No newline at end of file