Skip to main content

Extra features for django-xadmin

New features:

Form wizard

Integrate Django FormWizards with xadmin views:

Any view using a wizard should inherit from FormWizardAdminView

from xadmin_extras.wizard import FormWizardAdminView, SessionWizardViewMixin

class NotificateView(SessionWizardViewMixin, FormWizardAdminView):
    """A wizard view working together with xadmin, using
    SessionWizard backend

    """
    form_list = [SelectFilterForm, NotificateForm]
    form_template = 'admin/fbapps/notificate_form.html'
    title = 'FB Push notifications'

Other wizard backends are available: SessionWizardViewMixin and CookieWizardViewMixin

For more info about Form wizard, see django documentation

To register a view to be available at admin, with name and protected, use register_view():

import xadmin
xadmin.site.register_view(
    r'fbapps/notificate/$', NotificateView,
    name='fbapps_notification_view')

Custom menu entries

Using an AppConfig-like class (available for Django 1.7), custom entries can be added for the menu of each App.

Create a file called apps.py at your app folder, create a class and edit init_menu()

# coding=utf-8

# from django.apps import AppConfig (commented for django 1.6)
from xadmin_extras.apps import AdminAppMixin


class FooConfig(AdminAppMixin):
    """name and verbose_name are going to be used for django AppConfig too

    """
    name = 'foo'
    verbose_name = 'Foo app.'
    icon = 'foo'

    def init_menu(self):
        """Add custom menu entries to the menu displayed for this app

        Return a list of dicts, each dict will be a entry for the submenu of
        the app:
            {'url': '/admin/.../', 'icon': 'bolt', 'title': 'Custom'}
        also 'perm' and 'order' keys can be added.

        """
        return [{
            'url': '/admin/foo/notification/', 'icon': 'bolt',
            'title': u'Send notifications', 'order': '', 'perm': None}]


APP_CONFIG = FooConfig()

Now, assign the app to each model you want to get grouped and register them

import xadmin
import .models as models

class AppAdmin(object):
    app_config = AppConfig

xadmin.site.register(models.Foo, AppAdmin)

After that, you just need to extend CommAdminView (maybe you have already done this if you wanted to change menu style, site title, base template, etc.), with AppConfigViewMixin available at xadmin_extras.views

import xadmin.views as views
import xadmin_extras as views_extra

xadmin.site.register(views.CommAdminView, views_extra.AppConfigViewMixin)

django-hstore support

Add the widget XadminHStoreWidget to your form definition:

from django_hstore.forms import DictionaryField
from xadmin_extras.django_hstore.widgets import XAdminHStoreWidget
from django import forms


class HStoreForm(forms.Form):
        data = DictionaryField(widget=XadminHStoreWidget())

External apps support

Apps with custom views are defined at ext folder

django-celery

import xadmin_extras.ext.celery as ext_celery

xadmin.site.register(
        ext_celery.celery_models.PeriodicTask, ext_celery.PeriodicTaskAdmin)
xadmin.site.register(
        ext_celery.celery_models.IntervalSchedule,
        ext_celery.IntervalScheduleAdmin)
xadmin.site.register(
        ext_celery.celery_models.CrontabSchedule,
        ext_celery.CrontabScheduleAdmin)

django-settings

import xadmin_extras.ext.settings as ext_settings

xadmin.site.register(ext_settings.models.Setting, ext_settings.SettingsAdmin)

django-mail-factory

(By default, the mails will be at URL: /admin/mails/)

from xadmin.views import CommAdminView, filter_hook, FormAdminView

import xadmin_extras.ext.mailfactory as ext_mailfactory

xadmin.site.register_view(
        r'^mails/$', ext_mailfactory.MailListView, name='mail_factory_list')
xadmin.site.register_view(
        r'^mails/(?P<mail_name>.*)/$',ext_mailfactory.MailFormView, name='mail_factory_form')
xadmin.site.register_view(
        r'^mails/(?P<mail_name>.*)/preview/(?P<lang>\w+)/$',
        ext_mailfactory.MailPreviewMessageView, name='mail_factory_preview_message')

Release files for django-xadmin-extras 0.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-xadmin-extras 0.15
File Size Uploaded
django-xadmin-extras-0.15.tar.gz 15.8 kB Details

Release files / django-xadmin-extras-0.15.tar.gz

Download URL django-xadmin-extras-0.15.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4f7e9db86993bb81943a2589fc13036021641951e0b50bf341517c2602d8cd39
BLAKE2b-256 checksum
How to use checksums
a1f3191ebe9248cf1500c5fdffb2a70694392731303928e4f96c607d4f66dd30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.15 This release

1 release file

0.14

1 release file

0.13

1 release file

0.12

1 release file

0.11

1 release file

0.10

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page