Josh Ourisman avatar Josh Ourisman committed 59e69ad Merge

merged in unlimited-invitations branch

Comments (0)

Files changed (2)

docs/overview.txt

     invitation keys will remain valid after an invitation is sent.
   * ``INVITATIONS_PER_USER`` - Integer.  The number of invitations
     that are initially allotted to each newly registered user.
+  * ``UNLIMITED_INVITATIONS`` - Boolean (optional). Allows users to
+    send an unlimited number of invitations
 
 3. Add this line to your site's root URLConf **before registration urls**::
    

invitation/views.py

 from django.conf import settings
 from django.views.generic.simple import direct_to_template
+from django.core.exceptions import ValidationError
 from django.core.urlresolvers import reverse
 from django.http import HttpResponseRedirect
 from django.contrib.auth.decorators import login_required
     remaining_invitations = remaining_invitations_for_user(request.user)
     if request.method == 'POST':
         form = form_class(data=request.POST, files=request.FILES)
-        if remaining_invitations > 0 and form.is_valid():
+        unlimited_invitations = getattr(settings, 'UNLIMITED_INVITATIONS', False)
+        if (unlimited_invitations or remaining_invitations > 0) \
+                and form.is_valid():
             invitation = InvitationKey.objects.create_invitation(request.user)
             invitation.send_to(form.cleaned_data["email"])
             # success_url needs to be dynamically generated here; setting a
             # problems with the default URLConf for this application, which
             # imports this file.
             return HttpResponseRedirect(success_url or reverse('invitation_complete'))
+        else:
+            form.errors["email"] = form.error_class(["You have no invitations left!"])
     else:
         form = form_class()
     extra_context.update({
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.