X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/537012c60af1ea1c0e39949c58df4647ddadc72b..1c4c468783e5f380324c29ebc3b2c452da8cc2a0:/apps/toolbar/management/commands/fixbuttons.py diff --git a/apps/toolbar/management/commands/fixbuttons.py b/apps/toolbar/management/commands/fixbuttons.py old mode 100755 new mode 100644 index 627ef25d..79169d21 --- a/apps/toolbar/management/commands/fixbuttons.py +++ b/apps/toolbar/management/commands/fixbuttons.py @@ -1,20 +1,25 @@ -# -*- conding: utf-8 -__author__="lreqc" -__date__ ="$2009-09-08 14:31:26$" +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# This file is part of FNP-Redakcja, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# + from django.core.management.base import NoArgsCommand -from toolbar.models import Button -from django.utils import simplejson as json +from toolbar.models import Button, ButtonGroup +import json import re + class Command(NoArgsCommand): - + def handle_noargs(self, **options): buttons = Button.objects.all() print "Validating parameters... " for b in buttons: - params = b.params; + params = b.params try: - v = json.loads(b.params) + v = json.loads(b.params) except ValueError, e: print 'Trying to fix button "%s" ...' % b.slug if params[0] == u'(': @@ -22,7 +27,7 @@ class Command(NoArgsCommand): if params[-1] == u')': params = params[:-1] try: - v = son.loads(re.sub(u'([\\w-]+)\\s*:', u'"\\1": ', params).encode('utf-8')) + v = json.loads(re.sub(u'([\\w-]+)\\s*:', u'"\\1": ', params).encode('utf-8')) except ValueError, e: print "Unable to fix '%s' " % b.params print "Try to fix this button manually and rerun the script." @@ -38,7 +43,7 @@ class Command(NoArgsCommand): if b.slug not in hash: hash[b.slug] = b continue - + # duplicate button print "Found duplicate of '%s'" % b.slug a = hash[b.slug] @@ -55,4 +60,14 @@ class Command(NoArgsCommand): b.group.clear() a.save() - b.delete() + if remove_duplicate: + b.delete() + + print "Searching for empty groups and orphaned buttons:" + for g in ButtonGroup.objects.all(): + if len(g.button_set.all()) == 0: + print "Empty group: '%s'" % g.slug + + for b in Button.objects.all(): + if len(b.group.all()) == 0: + print "orphan: '%s'" % b.slug