Admin Site¶
Example¶
If you need to override base site class create the files (e.g. <project_name>/admin_webix.py) a Here an example:
import datetime
from django.apps import apps
from django.conf import settings
from django.utils.functional import LazyObject
from django.utils.module_loading import import_string
class CustomSiteAdminWebixSite(LazyObject):
def _setup(self):
AdminWebixSiteClass = import_string(apps.get_app_config('admin_webix').default_site)
AdminWebixSiteClass.site_url = '/'
# texts
AdminWebixSiteClass.site_title = gettext_lazy('Django webix site admin')
AdminWebixSiteClass.site_header = gettext_lazy('Django webix administration')
AdminWebixSiteClass.index_title = gettext_lazy('Site administration')
# form style
AdminWebixSiteClass.login_form = None
AdminWebixSiteClass.label_width = None
# template style
AdminWebixSiteClass.webix_container_id = 'content_right'
AdminWebixSiteClass.webix_menu_type = 'menu' # ['menu', 'sidebar']
AdminWebixSiteClass.webix_menu_width = 180
# templates
AdminWebixSiteClass.index_template = None
AdminWebixSiteClass.login_template = None
AdminWebixSiteClass.logout_template = None
AdminWebixSiteClass.dashboard_template = 'admin_webix/dashboard.js'
AdminWebixSiteClass.password_change_template = None
AdminWebixSiteClass.password_change_done_template = None
# for webgis support
AdminWebixSiteClass.webgis_template = 'webgis_leaflet/init.js'
# context for index
def extra_index_context(self, request):
if request.session.get('year',None) == None:
request.session['year'] = datetime.datetime.today().year
return {
'DEBUG': settings.DEBUG,
'years': list(range(2020, datetime.datetime.today().year + 1)),
}
AdminWebixSiteClass.extra_index_context = extra_index_context
# context for each view
def each_context(self, request):
return super().each_context(request)
AdminWebixSiteClass.each_context = each_context
# dashboard view
def dashboard(self, request, extra_context=None):
return super().dashboard(request, extra_context)
AdminWebixSiteClass.dashboard = dashboard
self._wrapped = AdminWebixSiteClass()
custom_site = CustomSiteAdminWebixSite()
Site texts¶
There are some options for customizate text header into django_webix_admin.
site_title
site_header
index_title
Site templates¶
It’s possibile to change all main templates.
index_template
login_template
logout_template
dashboard_template
password_change_template
password_change_done_template
Form style¶
With some variables is possibile to fit better label and field into forms.
login_form
label_width
Template style¶
There is possibility to customize many and main webix ID key.
webix_container_id = 'content_right'
webix_menu_type = 'menu' # ['menu', 'sidebar']
webix_menu_width = 180
WebGIS support¶
Django webix admin supports gis based on leaflet. It’s posibile to find an example into package templates.
webgis_template
Context¶
It’s possibile to customizate context for each view and specially for index page.
def extra_index_context(self, request):
def each_context(self, request):
Dashboard¶
You can override main dashboard (not work only on his context).
def dashboard(self, request, extra_context=None):