Django JET
==========

![image](https://travis-ci.org/geex-arts/django-jet.svg?branch=master%0A%20:target:%20https://travis-ci.org/geex-arts/django-jet)

**Modern template for Django admin interface with improved
functionality**

+--------------------------------------------------------------------------+
| Attention! **NEW JET**                                                   |
+==========================================================================+
| **We are proud to announce completely new Jet. Please check out Live     |
| Demo.**                                                                  |
|                                                                          |
| Developing of new features for Django Jet will be frozen, only critical  |
| bugs will be fixed.                                                      |
+--------------------------------------------------------------------------+
| [Live Demo](https://github.com/jet-admin/jet-bridge)                     |
+--------------------------------------------------------------------------+

Django JET has two kinds of licenses: open-source (AGPLv3) and
commercial. Please note that using AGPLv3 code in your programs make
them AGPL compatible too. So if you don't want to comply with that we
can provide you a commercial license (visit Home page). The commercial
license is designed for using Django JET in commercial products and
applications without the provisions of the AGPLv3.

![image](https://raw.githubusercontent.com/geex-arts/jet/static/logo.png%0A%20:width:%20500px%0A%20:height:%20500px%0A%20:scale:%2050%%0A%20:alt:%20Logo%0A%20:align:%20center)

-   Home page: <http://jet.geex-arts.com/>
-   **New Jet**: [Live
    Demo](https://app.jetadmin.io/demo?utm_source=jet&utm_medium=banner&utm_campaign=github&utm_content=link&utm_term=promo)
-   Live Demo: <http://demo.jet.geex-arts.com/admin/>
-   Documentation: <http://jet.readthedocs.org/>
-   libi.io <http://libi.io/library/1683/django-jet>
-   PyPI: <https://pypi.python.org/pypi/django-jet>
-   Support: <support@jet.geex-arts.com>

Why Django JET?
---------------

-   New fresh look
-   Responsive mobile interface
-   Useful admin home page
-   Minimal template overriding
-   Easy integration
-   Themes support
-   Autocompletion
-   Handy controls

Screenshots
-----------

![image](https://raw.githubusercontent.com/geex-arts/django-jet/static/screen1_720.png%0A%20:alt:%20Screenshot%20#1%0A%20:align:%20center%0A%20:target:%20https://raw.githubusercontent.com/geex-arts/django-jet/static/screen1.png)

![image](https://raw.githubusercontent.com/geex-arts/django-jet/static/screen2_720.png%0A%20:alt:%20Screenshot%20#2%0A%20:align:%20center%0A%20:target:%20https://raw.githubusercontent.com/geex-arts/django-jet/static/screen2.png)

![image](https://raw.githubusercontent.com/geex-arts/django-jet/static/screen3_720.png%0A%20:alt:%20Screenshot%20#3%0A%20:align:%20center%0A%20:target:%20https://raw.githubusercontent.com/geex-arts/django-jet/static/screen3.png)

Installation
------------

-   Download and install latest version of Django JET:

``` {.sourceCode .python}
pip install django-jet
# or
easy_install django-jet
```

-   Add 'jet' application to the INSTALLED\_APPS setting of your Django
    project settings.py file (note it should be before
    'django.contrib.admin'):

``` {.sourceCode .python}
INSTALLED_APPS = (
    ...
    'jet',
    'django.contrib.admin',
)
```

-   Make sure `django.template.context_processors.request` context
    processor is enabled in settings.py (Django 1.8+ way):

``` {.sourceCode .python}
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                ...
                'django.template.context_processors.request',
                ...
            ],
        },
    },
]
```

> **warning**
>
> Before Django 1.8 you should specify context processors different way.
> Also use `django.core.context_processors.request` instead of
> `django.template.context_processors.request`.
>
> ``` {.sourceCode .python}
> from django.conf import global_settings
>
> TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
>     'django.core.context_processors.request',
> )
> ```

-   Add URL-pattern to the urlpatterns of your Django project urls.py
    file (they are needed for related–lookups and autocompletes):

``` {.sourceCode .python}
urlpatterns = patterns(
    '',
    url(r'^jet/', include('jet.urls', 'jet')),  # Django JET URLS
    url(r'^admin/', include(admin.site.urls)),
    ...
)
```

-   Create database tables:

``` {.sourceCode .python}
python manage.py migrate jet
# or 
python manage.py syncdb
```

-   Collect static if you are in production environment:

``` {.sourceCode .python}
python manage.py collectstatic
```

-   Clear your browser cache

Dashboard installation
----------------------

> **note**
>
> Dashboard is located into a separate application. So after a typical JET installation it won't be active.
> :   To enable dashboard application follow these steps:
>
-   Add 'jet.dashboard' application to the INSTALLED\_APPS setting of
    your Django project settings.py file (note it should be before
    'jet'):

``` {.sourceCode .python}
INSTALLED_APPS = (
    ...
    'jet.dashboard',
    'jet',
    'django.contrib.admin',
    ...
)
```

-   Add URL-pattern to the urlpatterns of your Django project urls.py
    file (they are needed for related–lookups and autocompletes):

``` {.sourceCode .python}
urlpatterns = patterns(
    '',
    url(r'^jet/', include('jet.urls', 'jet')),  # Django JET URLS
    url(r'^jet/dashboard/', include('jet.dashboard.urls', 'jet-dashboard')),  # Django JET dashboard URLS
    url(r'^admin/', include(admin.site.urls)),
    ...
)
```

-   **For Google Analytics widgets only** install python package:

``` {.sourceCode .}
pip install google-api-python-client==1.4.1
```

-   Create database tables:

``` {.sourceCode .python}
python manage.py migrate dashboard
# or
python manage.py syncdb
```

-   Collect static if you are in production environment:

``` {.sourceCode .python}
python manage.py collectstatic
```
