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  | 
