diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-09-19 13:24:34 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-09-19 13:24:34 +0200 |
| commit | bc77ba9c7c21bdcb42a4b45a1011f9219d712f6d (patch) | |
| tree | a2c33843cf4c6636fbd51d02bae8bee9529d7422 | |
| parent | 2248ec72d22c91142d568857b8a8d8f785860fe5 (diff) | |
| download | Chimère-bc77ba9c7c21bdcb42a4b45a1011f9219d712f6d.tar.bz2 Chimère-bc77ba9c7c21bdcb42a4b45a1011f9219d712f6d.zip | |
Admin: simplify category management
| -rw-r--r-- | chimere/admin.py | 14 | ||||
| -rw-r--r-- | chimere/forms.py | 4 | ||||
| -rw-r--r-- | chimere/static/chimere/js/menu-sort.js | 20 | ||||
| -rw-r--r-- | chimere/widgets.py | 2 |
4 files changed, 31 insertions, 9 deletions
diff --git a/chimere/admin.py b/chimere/admin.py index f7acabf..b6437f9 100644 --- a/chimere/admin.py +++ b/chimere/admin.py @@ -169,13 +169,6 @@ class AreaAdmin(admin.ModelAdmin): exclude = ['upper_left_corner', 'lower_right_corner'] inlines = [LayerInline] -class SubCategoryAdmin(admin.ModelAdmin): - """ - Specialized the subcategory admin - """ - list_display = ('name', 'category', 'available') - list_filter = ('category',) - def importing(modeladmin, request, queryset): for importer in queryset: importer.state = unicode(tasks.IMPORT_MESSAGES['import_pending'][0]) @@ -219,11 +212,17 @@ class NewsAdmin(admin.ModelAdmin): """ form = NewsAdminForm +class SubcatInline(admin.TabularInline): + model = SubCategory + extra = 1 + class CategoryAdmin(admin.ModelAdmin): """ Use the TinyMCE widget for categories """ form = CategoryAdminForm + inlines = [SubcatInline] + list_display = ['name', 'order'] class ColorInline(admin.TabularInline): model = Color @@ -256,7 +255,6 @@ class PictureFileAdmin(admin.ModelAdmin): admin.site.register(News, NewsAdmin) admin.site.register(Category, CategoryAdmin) admin.site.register(Icon, IconAdmin) -admin.site.register(SubCategory, SubCategoryAdmin) admin.site.register(Marker, MarkerAdmin) admin.site.register(RouteFile, RouteFileAdmin) admin.site.register(Route, RouteAdmin) diff --git a/chimere/forms.py b/chimere/forms.py index e465a8f..a2a721b 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -110,6 +110,10 @@ class CategoryAdminForm(forms.ModelForm): Main form for categories """ description = forms.CharField(widget=TextareaWidget, required=False) + class Media: + js = list(settings.JQUERY_JS_URLS) + [ + '%schimere/js/menu-sort.js' % settings.STATIC_URL, + ] class Meta: model = Category diff --git a/chimere/static/chimere/js/menu-sort.js b/chimere/static/chimere/js/menu-sort.js new file mode 100644 index 0000000..ad1da39 --- /dev/null +++ b/chimere/static/chimere/js/menu-sort.js @@ -0,0 +1,20 @@ +jQuery(function($) { + $('div.inline-group tbody').sortable({ + /*containment: 'parent', + zindex: 10, */ + update: function() { + $(this).find('tr').each(function(i) { + if ($(this).find('input[id$=name]').val()) { + $(this).find('input[id$=order]').val(i+1); + } + }); + } + }); + $('div.inline-group tbody tr').css('cursor', 'move'); + $('div.inline-group tbody tr td').each(function (idx){ + if($(this).is('*.field-order')){ + $(this).hide(); + $('div.inline-group thead th:nth-child('+idx+')').hide(); + } + }); +}); diff --git a/chimere/widgets.py b/chimere/widgets.py index ce848ea..e113305 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2011 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as |
