Added new models and model admins to Python3 sample project.
parent
3a3392a7a1
commit
588fc7a4cd
|
|
@ -1,10 +1,11 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from adminsortable.admin import (SortableAdmin, SortableTabularInline,
|
||||
SortableStackedInline, SortableGenericStackedInline)
|
||||
SortableStackedInline, SortableGenericStackedInline,
|
||||
NonSortableParentAdmin)
|
||||
from adminsortable.utils import get_is_sortable
|
||||
from app.models import (Category, Widget, Project, Credit, Note, GenericNote,
|
||||
Component, Person)
|
||||
Component, Person, NonSortableCategory, SortableCategoryWidget)
|
||||
|
||||
|
||||
admin.site.register(Category, SortableAdmin)
|
||||
|
|
@ -65,3 +66,14 @@ class PersonAdmin(SortableAdmin):
|
|||
list_display = ['__str__', 'is_board_member']
|
||||
|
||||
admin.site.register(Person, PersonAdmin)
|
||||
|
||||
|
||||
class SortableCategoryWidgetInline(SortableStackedInline):
|
||||
model = SortableCategoryWidget
|
||||
extra = 0
|
||||
|
||||
|
||||
class NonSortableCategoryAdmin(NonSortableParentAdmin):
|
||||
inlines = [SortableCategoryWidgetInline]
|
||||
|
||||
admin.site.register(NonSortableCategory, NonSortableCategoryAdmin)
|
||||
|
|
|
|||
|
|
@ -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,),
|
||||
),
|
||||
]
|
||||
|
|
@ -119,3 +119,23 @@ class Person(Sortable):
|
|||
|
||||
def __str__(self):
|
||||
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
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in New Issue