david / django-invitation

Built on top of django-registration, it restricts registration to a given number of invited person per active user (strategy introduced by GMail to involve 2.0 users).

Clone this repository (size: 60.7 KB): HTTPS / SSH
$ hg clone http://code.welldev.org/django-invitation
commit 14: 2c779a2dd41a
parent 13: 19027bb758cf
branch: default
invitation.views.invite requires remaining_invitations > 0 to send invitation. Fixes issue #6.
David Montgomery / davidlmontgomery
16 months ago

Changed (Δ144 bytes):

raw changeset »

invitation/views.py (4 lines added, 2 lines removed)

Up to file-list invitation/views.py:

@@ -11,6 +11,7 @@ from invitation.models import Invitation
11
11
from invitation.forms import InvitationKeyForm
12
12
13
13
is_key_valid = InvitationKey.objects.is_key_valid
14
remaining_invitations_for_user = InvitationKey.objects.remaining_invitations_for_user
14
15
15
16
# TODO: move the authorization control to a dedicated decorator
16
17
@@ -47,9 +48,10 @@ def register(request, success_url=None,
47
48
def invite(request, success_url=None,
48
49
            form_class=InvitationKeyForm,
49
50
            template_name='invitation/invitation_form.html',):
51
    remaining_invitations = remaining_invitations_for_user(request.user)
50
52
    if request.method == 'POST':
51
53
        form = form_class(data=request.POST, files=request.FILES)
52
        if form.is_valid():
54
        if remaining_invitations > 0 and form.is_valid():
53
55
            invitation = InvitationKey.objects.create_invitation(request.user)
54
56
            invitation.send_to(form.cleaned_data["email"])
55
57
            # success_url needs to be dynamically generated here; setting a
@@ -61,6 +63,6 @@ def invite(request, success_url=None,
61
63
        form = form_class()
62
64
    return direct_to_template(request, template_name, {
63
65
        'form': form,
64
        'remaining_invitations': InvitationKey.objects.remaining_invitations_for_user(request.user),
66
        'remaining_invitations': remaining_invitations,
65
67
    })
66
68
invite = login_required(invite)