Send notifications when invites are accepted. Fixes #8

This commit is contained in:
Trever Fischer
2012-03-10 20:25:59 -05:00
parent 8ee0ce3365
commit eb442b9c96
5 changed files with 24 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
from django.db.models.signals import post_syncdb
from notification import models as notification
def create_notice_types(app, created_models, verbosity, **kwargs):
notification.create_notice_type("invite_accepted", "Invite Accepted", "An invitation you sent has been accepted.")
post_syncdb.connect(create_notice_types, sender=notification)

View File

@@ -2,6 +2,7 @@ from django.test import TestCase
from django.contrib.auth.models import User
from django.test.client import Client
from django.core.urlresolvers import reverse
from django.core import mail
import models
class InviteTest(TestCase):
@@ -37,6 +38,18 @@ class InviteTest(TestCase):
resp = self.client.get(reverse('local.views.claimInvite', kwargs={'code':self.invite.code}), follow=True)
self.assertEqual(200, resp.status_code)
def testRegisterViaInvite(self):
resp = self.client.get(reverse('local.views.claimInvite', kwargs={'code':self.invite.code}), follow=True)
self.assertEqual(200, resp.status_code)
data = {}
data['user-username'] = 'TestUser'
data['user-password'] = 'abcd'
data['user-password_confirm'] = 'abcd'
data['user-email'] = 'email@example.com'
data['profile-mc_username'] = 'Testificate'
resp = self.client.post(reverse('local.views.register' ), data)
self.assertEqual(len(mail.outbox), 1)
class AccountCreationTest(TestCase):
def testCreation(self):
user = User.objects.create_user('ValidUser', 'test@example.com')

View File

@@ -2,6 +2,7 @@ from django.contrib.auth.decorators import login_required
from django.contrib.sites.models import Site
from django.http import HttpResponseRedirect, Http404
from django.shortcuts import render_to_response
from notification import models as notification
from django.template import RequestContext
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
@@ -64,6 +65,7 @@ def register(request):
profile.mc_username = profileForm.cleaned_data['mc_username']
profile.save()
user = authenticate(username=userForm.cleaned_data['username'], password=userForm.cleaned_data['password'])
notification.send_now([invite.creator], "invite_accepted", {"new_user": user})
login(request, user)
del request.session['profile-invite']
return HttpResponseRedirect("/")

View File

@@ -0,0 +1 @@
{{new_user}} has accepted your invite.

View File

@@ -18,6 +18,7 @@ urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^forums/', include('forums.urls')),
url(r'^api/', include('api.urls')),
url(r'^notification/', include('notification.urls')),
url(r'^i/(?P<code>.+)', 'local.views.claimInvite')
)