summaryrefslogtreecommitdiff
path: root/coip/apps/membership
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps/membership')
-rw-r--r--coip/apps/membership/forms.py8
-rw-r--r--coip/apps/membership/models.py11
-rw-r--r--coip/apps/membership/views.py32
3 files changed, 46 insertions, 5 deletions
diff --git a/coip/apps/membership/forms.py b/coip/apps/membership/forms.py
index 9adab0d..c74307b 100644
--- a/coip/apps/membership/forms.py
+++ b/coip/apps/membership/forms.py
@@ -5,7 +5,13 @@ Created on Jun 23, 2010
'''
from django import forms
from coip.apps.membership.models import Membership
+from django.forms.widgets import Textarea
class MembershipForm(forms.ModelForm):
class Meta:
- model = Membership \ No newline at end of file
+ model = Membership
+
+class InvitationForm(forms.Form):
+ email = forms.EmailField()
+ expires = forms.DateTimeField()
+ message = forms.CharField(widget=Textarea) \ No newline at end of file
diff --git a/coip/apps/membership/models.py b/coip/apps/membership/models.py
index 2186607..72b102a 100644
--- a/coip/apps/membership/models.py
+++ b/coip/apps/membership/models.py
@@ -7,17 +7,21 @@ from django.db import models
from django.contrib.auth.models import User
from coip.apps.name.models import Name
import datetime
+from pprint import pprint
class Membership(models.Model):
'''
Membership in a namespace/group
'''
user = models.ForeignKey(User,unique=True,blank=True)
+ inviter = models.ForeignKey(User,unique=True,blank=True)
+ name = models.ForeignKey(Name,related_name='memberships')
+ email = models.EmailField(blank=True,null=True)
+ nonce = models.CharField(max_length=255,blank=True,null=True)
enabled = models.BooleanField()
timecreated = models.DateTimeField(auto_now_add=True)
lastupdated = models.DateTimeField(auto_now=True)
expires = models.DateTimeField(blank=True)
- name = models.ForeignKey(Name,related_name='memberships')
def __unicode__(self):
return "%s in %s" % (self.user,self.name)
@@ -30,3 +34,8 @@ class Membership(models.Model):
return "active"
else:
return "inactive";
+
+ def send_email(self):
+ pprint("sent email to "+self.to)
+ return
+
diff --git a/coip/apps/membership/views.py b/coip/apps/membership/views.py
index 7a06a21..6a500d9 100644
--- a/coip/apps/membership/views.py
+++ b/coip/apps/membership/views.py
@@ -5,9 +5,35 @@ Created on Jun 23, 2010
'''
from django.contrib.auth.decorators import login_required
from coip.apps.membership.models import Membership
+from coip.apps.membership.forms import InvitationForm
+from django.http import HttpResponseRedirect
+from coip.apps.auth.utils import nonce
+from coip.multiresponse import respond_to
+#@login_required
+#def memberships(request,name):
+#
+# Membership.objects.get(name)
+
+
@login_required
-def memberships(request,name):
+def invite(request):
+ user = request.user
+ if request.method == 'POST':
+ form = InvitationForm(request.POST)
+ if form.is_valid():
+ email = form.cleaned_data["email"]
+ expires = form.cleaned_data["expires"]
+ message = form.cleaned_data["message"]
+ membership = Membership(inviter=user,email=email,message=message,expires=expires,nonce=nonce())
+ membership.save()
+ membership.send_email()
+ return HttpResponseRedirect("/membership/id/"+membership.id)
+ else:
+ form = InvitationForm({});
- Membership.objects.get(name)
- \ No newline at end of file
+ return respond_to(request,{'text/html': 'apps/invitation/create.html'},{'form': form})
+
+def accept(request,nonce):
+ user = request.user
+ membership = Membership.objects.get(nonce=nonce) \ No newline at end of file