Metadata-Version: 2.1
Name: dj-optimizely
Version: 0.0.3
Summary: Store Optimizely datafile in a Django model
Home-page: https://github.com/genesluder/dj-optimizely
Author: Gene Sluder
Author-email: gene@gobiko.com
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/genesluder/dj-optimizely/issues
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: django
Requires-Dist: requests
Requires-Dist: optimizely-sdk

# dj-optimizely

Store optimizely datafile in a Django model

## WORK IN PROGRESS

This app is in the very early stages and I'll be fleshing it out over the coming weeks. 
Though it is currently in use. 


## Usage
-----------------

### Settings

```
INSTALLED_APPS = [
    ...
    'djoptimizely',
    ...
]

MIDDLEWARE = [
    ...
    'djoptimizely.middleware.optimizely_middleware',
    ...
]

OPTIMIZELY_ENVIRONMENT = 'staging'
OPTIMIZELY_WEBHOOK_SECRET = os.getenv('OPTIMIZELY_WEBHOOK_SECRET')
OPTIMIZELY_DATAFILE_URL = os.getenv('OPTIMIZELY_DATAFILE_URL')
OPTIMIZELY_USER_ID = 'myapp.module.get_user_id' # Specify a function to get user id (required)
OPTIMIZELY_USER_ATTRIBS = 'myapp.module.get_user_attribs' # Specify a function to get user attribs (optional)
```

### Urls

```
urlpatterns = [
    ...
    path('webhooks/', include('djoptimizely.urls')),
    ...
]
```

### Check if a feature should be enabled:

```
from djoptimizely.services import get_feature_enabled
...
if get_feature_enabled(request, 'cool_stuff'):
    print('Cool!')
```

### With a template tag

```
{% load djoptimizely_tags %}
...
{% show_feature 'cool_stuff' as show_cool_stuff %}
{% if show_cool_stuff %}
    <p>COOL Stuff!</p>
{% endif %}
```

### View mixin: (serve if enabled else 404)

```
from djoptimizely.mixins import OptimizelyFeatureViewMixin
from django.views.generic.base import TemplateView

class CoolView(OptimizelyFeatureViewMixin, TemplateView):
    feature_key = 'cool_stuff'
    ...
```


