Metadata-Version: 1.0
Name: django-envi
Version: 0.2.1
Summary: Lightweight set of middleware classes that inject visual indicators for each type of environment that a project is deployed to.
Home-page: https://github.com/teapow/django-envi
Author: Thomas Power
Author-email: thomaspwr@gmail.com
License: BSD License
Description: ===========
        django-envi
        ===========
        
        .. contents:: Table of contents
        
        
        Introduction
        ============
        
        Lightweight set of middleware classes that inject visual indicators for
        each type of environment that a project is deployed to. Inspired by
        `this article`_.
        
        .. _this article: https://goo.gl/7cLsOH
        
        .. image:: https://i.imgur.com/flSPk7w.png
        
        
        Quickstart
        ==========
        
        1. Install the package: ``pip install django-envi``.
        2. Add the ``'envi'`` app to your ``INSTALLED_APPS``.
        3. Install the desired middleware class to ``MIDDLEWARE_CLASSES``:
        
           * ``envi.middleware.EnviFooterMiddleware`` injects a sticky footer to
             all pages that displays the current environment.
        
        4. In each environment's settings file, add the ``ENVIRONMENT_KEY`` setting,
           with the corresponding environment key string. See below.
        
        
        Built-in environments
        =====================
        
        There are a number of built-in environment definitions:
        
        * ``'local'``: A striped grey banner. Appears site-wide (default).
        
        * ``'dev'``: A striped blue banner. Appears site-wide.
        
        * ``'staging'``: A striped yellow banner. Appears site-wide.
        
        * ``'production'``: A striped red banner. Only appears in ``/admin``.
        
        
        Configuration
        =============
        
        The following settings are supported in your ``settings.py``:
        
        * ``ENVI_ENVIRONMENT_KEY``: A string representing the key to use to search
          the ``ENVI_ENVIRONMENTS`` settings dictionary. Defaults to ``'local'``.
        
        * ``ENVI_ENVIRONMENTS``: A dictionary containing key-value pairs consisting
          of environment keys (as strings) mapped to dictionaries representing an
          environment definition. By default, there are 4 `built-in environments`_
          available for selection.
        
        * ``ENVI_ENVIRONMENT``: The current environment. This can either be defined
          explicitly (see `Creating environments`_), otherwise it will be set to the
          corresponding dictionary by looking up the ``ENVI_ENVIRONMENT_KEY`` within
          the ``ENVI_ENVIRONMENTS`` dictionary.
        
        Creating environments
        =====================
        
        Environments can be created using the following dictionary structure:
        
        .. code-block:: python
        
          CUSTOM_ENV = {
              # Required for all subclasses of EnviBaseMiddleware.
              "SHOW_IN_ADMIN": True,
              "SHOW_IN_SITE": True,
        
              # Only required for subclasses of EnviBaseTemplateMiddleware.
              "CONTEXT": {
                  # The contents of this dictionary will be passed to the template
                  # being rendered. You can add anything you want here.
                  "CONTENT": "ENVIRONMENT: STAGING",
                  "COLOR_A": "#ffba1e",
                  "COLOR_B": "#dba11a",
              },
          }
        
        Then, this environment definition can be either:
        
        * Added to the ``ENVI_ENVIRONMENTS`` dictionary, and activated by setting
          the ``ENVI_ENVIRONMENT_KEY`` to the respective key.
        
          .. code-block:: python
        
            ENVI_ENVIRONMENTS = {
                "custom_key_1": CUSTOM_ENV,
                "custom_key_2": OTHER_CUSTOM_ENV,
            }
        
            ENVI_ENVIRONMENT_KEY = "custom_key_1"
        
        * Used to set the ``ENVI_ENVIRONMENT`` value directly.
        
          .. code-block:: python
        
            ENVI_ENVIRONMENT = CUSTOM_ENV
        
        
        Advanced usage
        ==============
        
        The implementation of ``django-envi`` makes it easy to customize.
        
        
        Extending via templates
        -----------------------
        
        TODO: How to.
        
        
        Extending via subclassing
        -------------------------
        
        TODO: How to.
        
        
        Compatability
        =============
        
        The latest build of ``django-envi`` has been tested on the following
        versions of Django:
        
        * ``2.0.1``
        
        * ``1.11.9 (LTS)``
        
        * ``1.8.18 (LTS)``
        
        
        Changelog
        =========
        
        +----------------+-----------------------------------------------------------+
        | Version        | Description                                               |
        +================+===========================================================+
        | 0.2.1          | Bugfix to prevent adding the banner to AJAX requests.     |
        |                | Thanks to @marksweb for the PR. Also adds backwards       |
        |                | compatability for Django versions < 1.10.                 |
        +----------------+-----------------------------------------------------------+
        | 0.2            | Repackaged without unnecessary docs/images directory. All |
        |                | documentation can be found in README.rst.                 |
        +----------------+-----------------------------------------------------------+
        | 0.1.2          | Fixes reference to nonexistent template. Manifest issue.  |
        +----------------+-----------------------------------------------------------+
        | 0.1.1          | Renamed to django-envi.                                   |
        +----------------+-----------------------------------------------------------+
        | 0.1            | Initial version.                                          |
        +----------------+-----------------------------------------------------------+
        
Platform: UNKNOWN
