Package: django-xadmin-extras
Extra features fordjango-xadminNew features:Form wizard class working like django form wizard.Allow adding custom menu entries via AppConfig.django-hstoresupport when editing objects.Views for external apps:django-celerydjango-settingsdjango-mail-factoryForm wizardIntegrate Django FormWizards with xadmin views:Any view using a wizard should inherit from FormWizardAdminViewfromxadmin_extras.wizardimportFormWizardAdminView,SessionWizardViewMixinclassNotificateView(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 CookieWizardViewMixinFor more info about Form wizard, seedjango documentationTo register a view to be available at admin, with name and protected, useregister_view():importxadminxadmin.site.register_view(r'fbapps/notificate/$',NotificateView,name='fbapps_notification_view')Custom menu entriesUsing anAppConfig-like class(available for Django 1.7), custom entries can be added for the menu of each App.Create a file calledapps.pyat your app folder, create a class and editinit_menu()# coding=utf-8# from django.apps import AppConfig (commented for django 1.6)fromxadmin_extras.appsimportAdminAppMixinclassFooConfig(AdminAppMixin):"""name and verbose_name are going to be used for django AppConfig too

    """name='foo'verbose_name='Foo app.'icon='foo'definit_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 themimportxadminimport.modelsasmodelsclassAppAdmin(object):app_config=AppConfigxadmin.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.viewsimportxadmin.viewsasviewsimportxadmin_extrasasviews_extraxadmin.site.register(views.CommAdminView,views_extra.AppConfigViewMixin)django-hstore supportAdd the widgetXadminHStoreWidgetto your form definition:fromdjango_hstore.formsimportDictionaryFieldfromxadmin_extras.django_hstore.widgetsimportXAdminHStoreWidgetfromdjangoimportformsclassHStoreForm(forms.Form):data=DictionaryField(widget=XadminHStoreWidget())External apps supportApps with custom views are defined atextfolderdjango-celeryimportxadmin_extras.ext.celeryasext_celeryxadmin.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-settingsimportxadmin_extras.ext.settingsasext_settingsxadmin.site.register(ext_settings.models.Setting,ext_settings.SettingsAdmin)django-mail-factory(By default, the mails will be at URL: /admin/mails/)fromxadmin.viewsimportCommAdminView,filter_hook,FormAdminViewimportxadmin_extras.ext.mailfactoryasext_mailfactoryxadmin.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')