OpenWISP 2 controller module (built using Python and the Django web-framework).
Table of Contents:
An automated installer is available at ansible-openwisp2.
- Python 2.7 or Python >= 3.4
- OpenSSL
Install from pypi:
pip install openwisp-controller
Install tarball:
pip install https://github.com/openwisp/openwisp-controller/tarball/master
Alternatively you can install via pip using git:
pip install -e git+git://github.com/openwisp/openwisp-controller#egg=openwisp_controller
If you want to contribute, install your cloned fork:
git clone git@github.com:<your_fork>/openwisp-controller.git
cd openwisp_controller
python setup.py develop
INSTALLED_APPS
in settings.py
should look like the following (ordering is important):
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# all-auth
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'django_extensions',
# openwisp2 modules
'openwisp_users',
'openwisp_controller.pki',
'openwisp_controller.config',
# admin
'django_netjsonconfig.admin_theme',
'django.contrib.admin',
# other dependencies
'sortedm2m',
'reversion',
]
Add openwisp_controller.staticfiles.DependencyFinder
to STATICFILES_FINDERS
in your settings.py
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'openwisp_controller.staticfiles.DependencyFinder',
]
Add openwisp_controller.loaders.DependencyLoader
to TEMPLATES
in your settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'OPTIONS': {
'loaders': [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# add the following line
'openwisp_controller.loaders.DependencyLoader'
],
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
}
]
Add the following settings to settings.py
:
LOGIN_REDIRECT_URL = 'admin:index'
ACCOUNT_LOGOUT_REDIRECT_URL = LOGIN_REDIRECT_URL
urls.py
:
from django.conf import settings
from django.conf.urls import include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django_netjsonconfig.admin_theme.admin import admin, openwisp_admin
openwisp_admin()
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'', include('openwisp_controller.urls')),
]
urlpatterns += staticfiles_urlpatterns()
- Announce your intentions in the OpenWISP Mailing List
- Fork this repo and install it
- Follow PEP8, Style Guide for Python Code
- Write code
- Write tests for your code
- Ensure all tests pass
- Ensure test coverage does not decrease
- Document your changes
- Send pull request
See CHANGES.
See LICENSE.