diff options
Diffstat (limited to 'coip/apps/link')
-rw-r--r-- | coip/apps/link/__init__.py | 0 | ||||
-rw-r--r-- | coip/apps/link/admin.py | 4 | ||||
-rw-r--r-- | coip/apps/link/forms.py | 12 | ||||
-rw-r--r-- | coip/apps/link/models.py | 18 | ||||
-rw-r--r-- | coip/apps/link/views.py | 40 |
5 files changed, 74 insertions, 0 deletions
diff --git a/coip/apps/link/__init__.py b/coip/apps/link/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/coip/apps/link/__init__.py diff --git a/coip/apps/link/admin.py b/coip/apps/link/admin.py new file mode 100644 index 0000000..0d6e1fb --- /dev/null +++ b/coip/apps/link/admin.py @@ -0,0 +1,4 @@ +from django.contrib import admin +from coip.apps.link.models import Link + +admin.site.register(Link)
\ No newline at end of file diff --git a/coip/apps/link/forms.py b/coip/apps/link/forms.py new file mode 100644 index 0000000..cc4a995 --- /dev/null +++ b/coip/apps/link/forms.py @@ -0,0 +1,12 @@ +''' +Created on Aug 4, 2010 + +@author: leifj +''' +from django import forms +from coip.apps.link.models import Link + +class AddRelatedLinkForm(forms.ModelForm): + class Meta: + model = Link + fields = ['url','text']
\ No newline at end of file diff --git a/coip/apps/link/models.py b/coip/apps/link/models.py new file mode 100644 index 0000000..25c26b4 --- /dev/null +++ b/coip/apps/link/models.py @@ -0,0 +1,18 @@ +''' +Created on Aug 4, 2010 + +@author: leifj +''' +from django.db import models +from coip.apps.name.models import Name + +class Link(models.Model): + name = models.ForeignKey(Name,related_name='links') + url = models.URLField() + tag = models.CharField(max_length=255) + text = models.CharField(max_length=255) + timecreated = models.DateTimeField(auto_now_add=True) + lastupdated = models.DateTimeField(auto_now=True) + + def __unicode__(self): + return "%s:%s (%s) on %s" % (self.tag,self.url,self.text,self.name)
\ No newline at end of file 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 |