Skip to content

Extendable, adaptable rewrite of django.contrib.admin

License

Notifications You must be signed in to change notification settings

chrisjones-brack3t/django-admin2

 
 

Repository files navigation

django-admin2

Build Status

One of the most useful parts of django.contrib.admin is the ability to configure various views that touch and alter data. django-admin2 is a complete rewrite of that library using modern Class-Based Views and enjoying a design focused on extendibility and adaptability. By starting over, we can avoid the legacy code and make it easier to write extensions and themes.

Features

  • Rewrite of the Django Admin backend
  • Drop-in themes
  • Built-in RESTful API

Screenshots

Site administration Select user

Requirements

Installation

Use pip to install from PyPI:

pip install django-admin2

Add djadmin2 and rest_framework to your settings file:

INSTALLED_APPS = (
   ...
   'djadmin2',
   'rest_framework', # for the browsable API templates
   ...
)

Add djadmin2 urls to your URLconf:

# urls.py
from django.conf.urls import patterns, include

import djadmin2

djadmin2.default.autodiscover()


urlpatterns = patterns(
   ...
   url(r'^admin2/', include(djadmin2.default.urls)),
)

How to write django-admin2 modules

# myapp/admin2.py
# Import your custom models
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.models import User

from .models import Post, Comment

import djadmin2


class UserAdmin2(djadmin2.ModelAdmin2):
    # Replicates the traditional admin for django.contrib.auth.models.User
    create_form_class = UserCreationForm
    update_form_class = UserChangeForm


#  Register each model with the admin
djadmin2.default.register(Post)
djadmin2.default.register(Comment)
djadmin2.default.register(User, UserAdmin2)

Drop-In Themes

The default theme is whatever bootstrap is most current. Specifically:

# settings.py
ADMIN2_THEME_DIRECTORY = "admin2/bootstrap/"

If you create a new theme, you define it thus:

# settings.py
ADMIN2_THEME_DIRECTORY = "admin2/foundation/"

History

0.4.0 (2013-06-30)

  • Implemented both Function- and Class-based Action views
  • Implemented ModelAdmin2.list_display
  • Implemented ModelAdmin2.fieldsets
  • Dropdown widget now displays the selected choice
  • Added support for callables in ModelAdmin2.list_display
  • Added screenshots to README
  • Added second example project
  • Fixed breadcrumbs
  • Default theme: Proper closing of template and media blocks
  • Default theme: Standardized indentation in default theme templates
  • Default theme: Pointed to CDN for JQuery
  • Default theme: Added basic style for login form
  • Default theme: Internationalized all text strings

0.3.0 (2013-05-31)

  • HTML5 forms via floppyforms.
  • Many API improvements.
  • Added Breadcrumbs.
  • Added Login, Logout, ChangePassword views.
  • Added Actions.
  • Added support for inlines.
  • Added view based permission controls
  • Implement delete confirmations for child models.
  • Testrunner now can run on a specific test set or module.
  • Internal code refactoring to follow standards.
  • Moved to git-flow for accepting pull requests.
  • Model create/update pages now have save options.
  • Added i18n to all templates, much of internal code.
  • All print statements replaced with proper logging.
  • Design goals specified in the documentation.

0.2.0 (2013-05-19)

  • Birth! (Working Prototype)
  • Easy-to-extend API that follows similar patterns to django.contrib.admin.
  • Built-in RESTFUL API powered by django-rest-framework.
  • Default theme built on Twitter Bootstrap.
  • Easy to implement theme system.
  • Basic permission controls.
  • Testrunner
  • Documentation

0.1.1 (2013-05-17)

  • Code adoption from django-mongonaut.
  • Preperation for Django Circus sprints.

0.1 (2013-05-13)

  • Discussion with Russell Keith-Magee.
  • Inception.

About

Extendable, adaptable rewrite of django.contrib.admin

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 95.6%
  • Shell 3.8%
  • JavaScript 0.6%