diff options
Diffstat (limited to 'coip/apps/invitation')
-rw-r--r-- | coip/apps/invitation/__init__.py | 0 | ||||
-rw-r--r-- | coip/apps/invitation/admin.py | 4 | ||||
-rw-r--r-- | coip/apps/invitation/forms.py | 11 | ||||
-rw-r--r-- | coip/apps/invitation/models.py | 34 | ||||
-rw-r--r-- | coip/apps/invitation/views.py | 33 |
5 files changed, 82 insertions, 0 deletions
diff --git a/coip/apps/invitation/__init__.py b/coip/apps/invitation/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/coip/apps/invitation/__init__.py diff --git a/coip/apps/invitation/admin.py b/coip/apps/invitation/admin.py new file mode 100644 index 0000000..722b147 --- /dev/null +++ b/coip/apps/invitation/admin.py @@ -0,0 +1,4 @@ +from django.contrib import admin +from coip.apps.invitation.models import Invitation + +admin.site.register(Invitation)
\ No newline at end of file diff --git a/coip/apps/invitation/forms.py b/coip/apps/invitation/forms.py new file mode 100644 index 0000000..3370597 --- /dev/null +++ b/coip/apps/invitation/forms.py @@ -0,0 +1,11 @@ +''' +Created on Jul 5, 2010 + +@author: leifj +''' +from django import forms +from coip.apps.invitation.models import Invitation + +class InvitationForm(forms.ModelForm): + class Meta: + model = Invitation
\ No newline at end of file diff --git a/coip/apps/invitation/models.py b/coip/apps/invitation/models.py new file mode 100644 index 0000000..951fa59 --- /dev/null +++ b/coip/apps/invitation/models.py @@ -0,0 +1,34 @@ +''' +Created on Jun 23, 2010 + +@author: leifj +''' + +from django.db import models +from django.contrib.auth.models import User +from coip.apps.membership.models import Membership +from pprint import pprint +from uuid import uuid4 +import datetime + +class Invitation(models.Model): + ''' + Represents an invitation to an application + ''' + sender = models.ForeignKey(User, unique=True) + membership = models.ForeignKey(Membership, unique=True) + timecreated = models.DateTimeField(auto_now_add=True) + lastupdated = models.DateTimeField(auto_now=True) + expires = models.DateTimeField() + token = models.TextField(unique=True) + + + def __init__(self): + self.token = uuid4() + + def valid(self): + return datetime.date.today() > self.expires + + def send_email(self): + pprint("sent email to "+self.to) + return
\ No newline at end of file diff --git a/coip/apps/invitation/views.py b/coip/apps/invitation/views.py new file mode 100644 index 0000000..fe1c6af --- /dev/null +++ b/coip/apps/invitation/views.py @@ -0,0 +1,33 @@ +''' +Created on Jun 23, 2010 + +@author: leifj +''' +from django.contrib.auth.decorators import login_required +from apps.invitation.forms import InvitationForm +from apps.invitation.models import Invitation +from django.shortcuts import render_to_response +from django.http import HttpResponseRedirect + +@login_required +def create(request): + user = request.user + if request.method == 'POST': + form = InvitationForm(request.POST) + if form.is_valid(): + to = form.cleaned_data["to"] + expires = form.cleaned_data["expires"] + invitation = Invitation(sender=user,to=to,expires=expires) + invitation.save() + invitation.send_email() + return HttpResponseRedirect("/user/home") + else: + form = InvitationForm({}); + + return render_to_response('apps/invitation/create.html') + +def accept(request,token): + user = request.user + invitation = Invitation.objects.get(token=token) + +
\ No newline at end of file |