david / django-invitation-backend (http://code.welldev.org/django-invitation/)

A fork of django-invitation to use the new django-registration-backends branch. See http://bitbucket.org/ubernostrum/django-registr... for the reasons.

Changed (Δ408 bytes):

raw changeset »

invitation/views.py (29 lines added, 19 lines removed)

Up to file-list invitation/views.py:

@@ -15,13 +15,16 @@ remaining_invitations_for_user = Invitat
15
15
16
16
# TODO: move the authorization control to a dedicated decorator
17
17
18
def invited(request, invitation_key=None):
18
def invited(request, invitation_key=None, extra_context=None):
19
19
    if 'INVITE_MODE' in settings.get_all_members() and settings.INVITE_MODE:
20
20
        if invitation_key and is_key_valid(invitation_key):
21
            template = 'invitation/invited.html'
21
            template_name = 'invitation/invited.html'
22
22
        else:
23
            template = 'invitation/wrong_invitation_key.html'
24
        return direct_to_template(request, template, {'invitation_key': invitation_key})
23
            template_name = 'invitation/wrong_invitation_key.html'
24
        if extra_context is None:
25
            extra_context = {}
26
        extra_context.update({'invitation_key': invitation_key})
27
        return direct_to_template(request, template_name, extra_context)
25
28
    else:
26
29
        return HttpResponseRedirect(reverse('registration_register'))
27
30
@@ -29,25 +32,31 @@ def register(request, success_url=None,
29
32
            form_class=RegistrationForm, profile_callback=None,
30
33
            template_name='registration/registration_form.html',
31
34
            extra_context=None):
35
    if extra_context is None:
36
        extra_context = {}
32
37
    if 'INVITE_MODE' in settings.get_all_members() and settings.INVITE_MODE:
33
        if 'invitation_key' in request.REQUEST \
34
            and is_key_valid(request.REQUEST['invitation_key']):
35
            invitation_key = request.REQUEST['invitation_key']
36
            if extra_context is None:
37
                extra_context = {'invitation_key': invitation_key}
38
        if 'invitation_key' in request.REQUEST:
39
            if is_key_valid(request.REQUEST['invitation_key']):
40
                invitation_key = request.REQUEST['invitation_key']
41
                extra_context.update({'invitation_key': invitation_key})
42
                return registration_register(request, success_url, form_class, 
43
                            profile_callback, template_name, extra_context)
38
44
            else:
39
                extra_context.update({'invitation_key': invitation_key})
40
            return registration_register(request, success_url, form_class, 
41
                        profile_callback, template_name, extra_context)
45
                extra_context.update({'invalid_key': True})
42
46
        else:
43
            return direct_to_template(request, 'invitation/wrong_invitation_key.html')
47
            extra_context.update({'no_key': True})
48
        template_name = 'invitation/wrong_invitation_key.html'
49
        return direct_to_template(request, template_name, extra_context)
44
50
    else:
45
51
        return registration_register(request, success_url, form_class, 
46
52
                            profile_callback, template_name, extra_context)
47
53
48
def invite(request, success_url=None,
54
def invite(request, success_url=None, 
49
55
            form_class=InvitationKeyForm,
50
            template_name='invitation/invitation_form.html',):
56
            template_name='invitation/invitation_form.html', 
57
            extra_context=None):
58
    if extra_context is None:
59
        extra_context = {}
51
60
    remaining_invitations = remaining_invitations_for_user(request.user)
52
61
    if request.method == 'POST':
53
62
        form = form_class(data=request.POST, files=request.FILES)
@@ -61,8 +70,9 @@ def invite(request, success_url=None,
61
70
            return HttpResponseRedirect(success_url or reverse('invitation_complete'))
62
71
    else:
63
72
        form = form_class()
64
    return direct_to_template(request, template_name, {
65
        'form': form,
66
        'remaining_invitations': remaining_invitations,
67
    })
73
    extra_context.update({
74
            'form': form,
75
            'remaining_invitations': remaining_invitations,
76
        })
77
    return direct_to_template(request, template_name, extra_context)
68
78
invite = login_required(invite)