+++ /dev/null
-from django.contrib import admin
-from django.utils.translation import ugettext_lazy as _
-
-from explorer import models
-
-admin.site.register(models.Book)
-admin.site.register(models.PullRequest)
-
from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
+from django import forms
+from django.utils import simplejson as json
from toolbar import models
# search_fields = ('name', 'slug',)
# prepopulated_fields = {'slug': ('name',)}
# list_editable = ('position',)
+
+
+class ButtonAdminForm(forms.ModelForm):
+ model = models.Button
+
+ def clean_params(self):
+ value = self.cleaned_data['params']
+ try:
+ return json.dumps(json.loads(value))
+ except Exception, e:
+ raise forms.ValidationError(e)
+
+class ButtonAdmin(admin.ModelAdmin):
+ form = ButtonAdminForm
+ list_display = ('label', 'scriptlet', 'key', 'params')
+ prepopulated_fields = {'slug': ('label',)}
+
+admin.site.register(models.Button, ButtonAdmin)
admin.site.register(models.ButtonGroup)
+admin.site.register(models.Scriptlet)
#class ButtonAdmin(admin.ModelAdmin):
# list_display = ('label', 'action', 'key', 'position',)
# filter_horizontal = ('group',)
# list_editable = ('position',)
-admin.site.register(models.Button)
-admin.site.register(models.Scriptlet)
-
--- /dev/null
+# -*- conding: utf-8
+__author__="lreqc"
+__date__ ="$2009-09-08 14:31:26$"
+from django.core.management.base import NoArgsCommand
+from toolbar.models import Button
+import json
+import re
+
+class Command(NoArgsCommand):
+
+ def handle_noargs(self, **options):
+ buttons = Button.objects.all()
+ for b in buttons:
+ params = b.params;
+ try:
+ v = json.loads(b.params)
+
+ except ValueError, e:
+ print 'On button %s: ' % b.label, b.params
+ print e
+ # try to fix the bad json
+
+ # cut the parenthis
+ if params[0] == u'(':
+ params = params[1:]
+ if params[-1] == u')':
+ params = params[:-1]
+
+ v = json.loads(re.sub(u'([\\w-]+)\\s*:', u'"\\1": ', params).encode('utf-8'))
+ b.params = json.dumps(v)
+ b.save()
+
+
+
+
\ No newline at end of file