Initial installation and mixins for django-waffle

This commit is contained in:
2013-04-02 00:49:02 +01:00
parent cfee7c0821
commit 60ec1b0c0e
3 changed files with 40 additions and 1 deletions

View File

@@ -1,6 +1,42 @@
from django.http import Http404
from haystack.query import SearchQuerySet
from haystack.inputs import AutoQuery
from waffle import switch_is_active, flag_is_active
class WaffleSwitchMixin(object):
"""
Checks that as switch is active, or 404. Operates like the FBV decorator waffle_switch
"""
waffle_switch = None
def dispatch(self, request, *args, **kwargs):
if self.waffle_switch.startswith('!'):
active = not switch_is_active(self.waffle_switch[1:])
else:
active = switch_is_active(self.waffle_switch)
if not active:
raise Http404
return super(WaffleSwitchMixin, self).dispatch(request, *args, **kwargs)
class WaffleFlagMixin(object):
"""
Checks that as flag is active, or 404. Operates like the FBV decorator waffle_flag
"""
waffle_flag = None
def dispatch(self, request, *args, **kwargs):
if self.waffle_flag.startswith('!'):
active = not flag_is_active(request, self.waffle_flag[1:])
else:
active = flag_is_active(request, self.waffle_flag)
if not active:
raise Http404
return super(WaffleFlagMixin, self).dispatch(request, *args, **kwargs)
class EditorCheckMixin(object):
"""

View File

@@ -71,6 +71,7 @@ INSTALLED_APPS = [
'gunicorn',
'raven.contrib.django.raven_compat',
'south',
'waffle',
'storages',
'markdown_deux',
'epiceditor',
@@ -88,6 +89,7 @@ MIDDLEWARE_CLASSES = [
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'waffle.middleware.WaffleMiddleware',
]
TEMPLATE_CONTEXT_PROCESSORS += (

View File

@@ -18,4 +18,5 @@ gevent
psycopg2
django-storages
boto
raven>=3
raven>=3
django-waffle>=0.9.1