This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

This app aims at easing implementing drag & drop reordering of inline data in Django Admin.

Recent version of Grappelli includes drag and drop inlines, so if you are already using Grappelli, installing django-inline-ordering does not make sense. If you didn’t evaluate Grappelli yet, I encourage you to do so!

The django-inline-ordering is being tested during development on:

  • Firefox 3.5+
  • Internet Explorer 7+
  • Google Chrome 10+
  • Opera 11+

Suggestions on how to improve django-inline-ordering are very welcome.

Installation

  1. Put ‘inline_ordering’ on your python path
  2. Add ‘inline_ordering’ to INSTALLED_APPS tuple in settings file

Usage

For each model that you want to be reorderable with drag & drop, you need to setup an admin class and slightly modify model declaration. This way you can easily apply reordering to existing model classes. You’ll also have to run collectstatic task or copy one file to your MEDIA_ROOT when using Django < 1.3.

Let’s start with a simple example: Gallery has many Images. User might want to reorder the photos in the gallery to fit his likings.

  1. Setup your admin inline class to inherit after OrderableStackedInline

    from inline_ordering.admin import OrderableStackedInline
    
    
    class ImageInline(OrderableStackedInline):
    
      model = Image
    
    
    class GalleryAdmin(ModelAdmin):
    
        model = Gallery
        inlines = (ImageInline, )
    
  2. Setup your model to inherit after Orderable

    from inline_ordering.models import Orderable
    
    class Image(Orderable):
      src = models.ImageField(upload_to='gallery/images')
      title = models.CharField(max_length=255)
      alt = models.TextField()
    
    class Meta(Orderable.Meta):
      pass
    

    As ordering column was named inline_ordering_position, avoid using this name in your model.

    The Meta class declaration is NOT necessary - add it only if you need to set your own meta attributes.

  3. Make inline_ordering.js accessible over HTTP

    Since Django 1.3, there is a staticfiles app that django-inline-ordering is aware of. Just run manage.py collectstatic to copy/symlink media files.

    The simplest way, back in Django 1.2, was to copy media/inline_ordering.js to your MEDIA_ROOT.

    If you however believe that would make a mess, take advantage of the ‘INLINE_ORDERING_JS’ setting and set it to a location which should be requested when accessing orderable inlines:

    INLINE_ORDERING_JS = STATIC_URL + '/js/third_party/inline_ordering.js'

Known issues

  1. Reordering won’t work for new records until saved. This needs a onchange handler for the record form or some model refactoring.
  2. At this point there is no support for tabular inlines. If you would like to approach this problem, fork the project on Github.

Development

A simple test project has been added in fdc2189 under tests/testproject. Use tools/buildenv.sh to build a virtualenv for development and syncdb to create necessary models and admin permissions.

Version 1.0.1 is likely to be the last one, as I’m planning to release a new library to support ordering in Django admin both of inlines as well as on the change list.

Release History

Release History

1.0.2

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django-inline-ordering-1.0.2.tar.gz (7.4 kB) Copy SHA256 Checksum SHA256 Source Jul 29, 2012

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting