Merge pull request #96 from MagicSolutions/fix_js_for_inlines

Make inlines to work corectly with non sortable inlines
master
Brandon Taylor 2014-11-18 10:17:12 -05:00
commit 81fc032c8b
5 changed files with 49 additions and 8 deletions

View File

@ -1,12 +1,16 @@
(function($){
$(function() {
if ($(':hidden[name="admin_sorting_url"]').length > 0)
var sorting_urls = $(':hidden[name="admin_sorting_url"]');
if (sorting_urls.length > 0)
{
var sortable_inline_rows = $('.inline-group .inline-related');
var sortable_inline_groups = sorting_urls.closest('.inline-group')
var sortable_inline_rows = sortable_inline_groups.find('.inline-related');
sortable_inline_groups.addClass('sortable')
sortable_inline_rows.addClass('sortable');
$('.inline-group').sortable({
sortable_inline_groups.sortable({
axis : 'y',
containment : 'parent',
create: function(event, ui) {

View File

@ -1,11 +1,15 @@
(function($){
$(function() {
if ($(':hidden[name="admin_sorting_url"]').length > 0)
var sorting_urls = $(':hidden[name="admin_sorting_url"]');
if (sorting_urls.length)
{
var tabular_inline_rows = $('.tabular table tbody tr');
var sortable_inline_group = sorting_urls.closest('.inline-group')
var tabular_inline_rows = sortable_inline_group.find('.tabular table tbody tr');
tabular_inline_rows.addClass('sortable');
$('.tabular.inline-related').sortable({
sortable_inline_group.find('.tabular.inline-related').sortable({
axis : 'y',
containment : 'parent',
create: function(event, ui) {

View File

@ -6,7 +6,7 @@ from adminsortable.admin import (SortableAdmin, SortableTabularInline,
from adminsortable.utils import get_is_sortable
from app.models import (Category, Widget, Project, Credit, Note, GenericNote,
Component, Person, NonSortableCategory, SortableCategoryWidget,
SortableNonInlineCategory)
SortableNonInlineCategory, NonSortableCredit, NonSortableNote)
admin.site.register(Category, SortableAdmin)
@ -56,8 +56,21 @@ class GenericNoteInline(SortableGenericStackedInline):
extra = 0
class NonSortableCreditInline(admin.TabularInline):
model = NonSortableCredit
extra = 1
class NonSortableNoteInline(admin.StackedInline):
model = NonSortableNote
extra = 0
class ProjectAdmin(SortableAdmin):
inlines = [CreditInline, NoteInline, GenericNoteInline]
inlines = [
CreditInline, NoteInline, GenericNoteInline,
NonSortableCreditInline, NonSortableNoteInline
]
list_display = ['__unicode__', 'category']
admin.site.register(Project, ProjectAdmin)

View File

@ -71,6 +71,25 @@ class Note(Sortable):
return self.text
# Registered as a tabular inline on `Project` which can't be sorted
class NonSortableCredit(models.Model):
project = models.ForeignKey(Project)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
def __unicode__(self):
return '{0} {1}'.format(self.first_name, self.last_name)
# Registered as a stacked inline on `Project` which can't be sorted
class NonSortableNote(models.Model):
project = models.ForeignKey(Project)
text = models.CharField(max_length=100)
def __unicode__(self):
return self.text
# A generic bound model
class GenericNote(SimpleModel, Sortable):
content_type = models.ForeignKey(ContentType,
@ -97,6 +116,7 @@ class Component(SimpleModel, Sortable):
return self.title
class Person(Sortable):
class Meta(Sortable.Meta):
verbose_name_plural = 'People'