X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/537012c60af1ea1c0e39949c58df4647ddadc72b..c6080aa55a8852f1c9aa05d80c2fd0c91ff48f12:/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..de48ceda --- 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'(': @@ -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