diff options
Diffstat (limited to 'coip/apps/membership')
-rw-r--r-- | coip/apps/membership/forms.py | 8 | ||||
-rw-r--r-- | coip/apps/membership/models.py | 11 | ||||
-rw-r--r-- | coip/apps/membership/views.py | 32 |
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 |