django-waitinglist

Provides a waiting list for running a private beta with cohorts support.

Development

The source repository can be found at https://github.com/pinax/django-waitinglist/

Contents

Installation

  • To install django-waitinglist (no releases have been yet):

    pip install django-waitinglist
    
  • Add waitinglist to your INSTALLED_APPS setting:

    INSTALLED_APPS = (
        # ...
        "waitinglist",
        # ...
    )
    
  • See the list of Settings to modify the default behavior of django-waitinglist and make adjustments for your website.

  • Add waitinglist.urls to your URLs definition:

    urlpatterns = patterns("",
        ...
        url(r"^waitinglist/", include("waitinglist.urls")),
        ...
    )
    
  • Since Django 1.7 the manage.py syncdb option is deprecated there is a fallback option manage.py migrate –run-syncdb To grant a user access the waitinglist management views, first ensure you’ve synced the database to create the waitinglist.manage_cohorts permission:

    from django.conf import settings
    from django.contrib.auth.models import Permission
    
    
    User = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
    
    
    user = User.objects.get(username="finnegan")
    permission = Permission.objects.get(codename="manage_cohorts")
    user.user_permissions.add(permission)
    
Dependencies
django.contrib.auth

This is bundled with Django. It is enabled by default with all new Django projects, but if you’re adding django-waitinglist to an existing project you need to make sure django.contrib.auth is installed.

django-appconf

We use django-appconf for app settings. It is listed in install_requires and will be installed when pip installs.

django-user-accounts

We use this app to handle all the sign up aspects. django-waitinglist is integrated to some hooks provided by this app.

Usage

This document covers the usage of django-waitinglist. It assumes you’ve read Installation.

Settings

@@@ todo

Templates

@@@ todo

Signals

@@@ todo

CHANGELOG

1.1
  • remove is_staff requirement to access cohort views.
  • restrict access to cohort views by a login required and a custom permission: waitinglist.manage_cohorts
1.0

Migration from Pinax

django-waitinglist is based on pinax.apps.waitinglist and adds cohorts support developed internally at Eldarion.

This document will outline the changes needed to migrate from Pinax to using this app in your Django project. If you are new to django-waitinglist then this guide will not be useful to you.

Database changes
# @@@ todo
URL changes

@@@ todo

View changes

All views have been converted to class-based views. This is a big departure from the traditional function-based, but has the benefit of being much more flexible.

@@@ todo: table of changes

Settings changes

@@@ todo

General changes

django-waitinglist requires Django 1.4. This means we can take advantage of many of the new features offered by Django. This app implements all of the best practices of Django 1.4. If there is something missing you should let us know!

FAQ

This document is a collection of frequently asked questions about django-waitinglist.