Added new models and model admins to Python3 sample project.

master
Brandon Taylor 2014-09-21 18:45:46 -04:00
parent 3a3392a7a1
commit 588fc7a4cd
4 changed files with 78 additions and 2 deletions

View File

@ -1,10 +1,11 @@
from django.contrib import admin from django.contrib import admin
from adminsortable.admin import (SortableAdmin, SortableTabularInline, from adminsortable.admin import (SortableAdmin, SortableTabularInline,
SortableStackedInline, SortableGenericStackedInline) SortableStackedInline, SortableGenericStackedInline,
NonSortableParentAdmin)
from adminsortable.utils import get_is_sortable from adminsortable.utils import get_is_sortable
from app.models import (Category, Widget, Project, Credit, Note, GenericNote, from app.models import (Category, Widget, Project, Credit, Note, GenericNote,
Component, Person) Component, Person, NonSortableCategory, SortableCategoryWidget)
admin.site.register(Category, SortableAdmin) admin.site.register(Category, SortableAdmin)
@ -65,3 +66,14 @@ class PersonAdmin(SortableAdmin):
list_display = ['__str__', 'is_board_member'] list_display = ['__str__', 'is_board_member']
admin.site.register(Person, PersonAdmin) admin.site.register(Person, PersonAdmin)
class SortableCategoryWidgetInline(SortableStackedInline):
model = SortableCategoryWidget
extra = 0
class NonSortableCategoryAdmin(NonSortableParentAdmin):
inlines = [SortableCategoryWidgetInline]
admin.site.register(NonSortableCategory, NonSortableCategoryAdmin)

View File

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import adminsortable.fields
class Migration(migrations.Migration):
dependencies = [
('app', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='NonSortableCategory',
fields=[
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
('title', models.CharField(max_length=50)),
],
options={
'verbose_name': 'Non-Sortable Category',
'verbose_name_plural': 'Non-Sortable Categories',
'abstract': False,
},
bases=(models.Model,),
),
migrations.CreateModel(
name='SortableCategoryWidget',
fields=[
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
('order', models.PositiveIntegerField(db_index=True, editable=False, default=1)),
('title', models.CharField(max_length=50)),
('non_sortable_category', adminsortable.fields.SortableForeignKey(to='app.NonSortableCategory')),
],
options={
'ordering': ['order'],
'verbose_name': 'Sortable Category Widget',
'abstract': False,
'verbose_name_plural': 'Sortable Category Widgets',
},
bases=(models.Model,),
),
]

View File

@ -119,3 +119,23 @@ class Person(Sortable):
def __str__(self): def __str__(self):
return '{0} {1}'.format(self.first_name, self.last_name) return '{0} {1}'.format(self.first_name, self.last_name)
class NonSortableCategory(SimpleModel):
class Meta(SimpleModel.Meta):
verbose_name = 'Non-Sortable Category'
verbose_name_plural = 'Non-Sortable Categories'
def __str__(self):
return self.title
class SortableCategoryWidget(SimpleModel, Sortable):
class Meta(Sortable.Meta):
verbose_name = 'Sortable Category Widget'
verbose_name_plural = 'Sortable Category Widgets'
non_sortable_category = SortableForeignKey(NonSortableCategory)
def __str__(self):
return self.title