summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/admin.py14
-rw-r--r--chimere/forms.py4
-rw-r--r--chimere/static/chimere/js/menu-sort.js20
-rw-r--r--chimere/widgets.py2
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