summaryrefslogtreecommitdiff
path: root/coip/apps/invitation
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps/invitation')
-rw-r--r--coip/apps/invitation/__init__.py0
-rw-r--r--coip/apps/invitation/admin.py4
-rw-r--r--coip/apps/invitation/forms.py11
-rw-r--r--coip/apps/invitation/models.py34
-rw-r--r--coip/apps/invitation/views.py33
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