示例#1
0
 def migrate_node(node):
     if isinstance(node, str):
         return migrate_template(node)
     if isinstance(node, list):
         for n in range(len(node)):
             node[n] = migrate_node(node[n])
     if isinstance(node, dict):
         for key, val in node.items():
             node[key] = migrate_node(val)
     return node
示例#2
0
 def migrate_node(node):
     if isinstance(node, basestring):
         return migrate_template(node)
     if isinstance(node, list):
         for n in range(len(node)):
             node[n] = migrate_node(node[n])
     if isinstance(node, dict):
         for key, val in node.iteritems():
             node[key] = migrate_node(val)
     return node
示例#3
0
 def migrate_node(node):
     if isinstance(node, six.string_types):
         return migrate_template(node)
     if isinstance(node, list):
         for n in range(len(node)):
             node[n] = migrate_node(node[n])
     if isinstance(node, dict):
         for key, val in six.iteritems(node):
             node[key] = migrate_node(val)
     return node
def migrate_broadcasts(apps, schema_editor):
    Broadcast = apps.get_model('msgs', 'Broadcast')

    num_migrated = 0
    num_unchanged = 0

    for broadcast in Broadcast.objects.filter(Q(status='I') | ~Q(schedule=None)):
        migrated = migrate_template(broadcast.text)
        if migrated != broadcast.text:
            broadcast.text = migrated
            broadcast.save(update_fields=('text',))
            print '"%s" -> "%s"' % (broadcast.text, migrated)
            num_migrated += 1
        else:
            num_unchanged += 1

    if num_migrated or num_unchanged:
        print "Migrated expressions in %d broadcasts (%d unchanged)" % (num_migrated, num_unchanged)