import transaction
import argparse

from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.utils import safe_unicode

from pleiades.dump import getSite, spoofRequest

if __name__ == '__main__':
    app = spoofRequest(app)
    site = getSite(app)

    catalog = getToolByName(site, "portal_catalog")
    connections = catalog(portal_type='Connection')

    total = 0
    for brain in connections:
        conn = brain.getObject()
        if isinstance(getattr(conn, 'relationshipType', None), (list, tuple)):
            conn.relationshipType = conn.relationshipType and safe_unicode(
                conn.relationshipType[0]) or None
            total += 1
            print "bad conneciton type {}".format(brain.getPath())

    transaction.commit()
    print "Fixed {} total connections.".format(total)
Exemplo n.º 2
0
        help="Input filename", metavar="FILE")
    parser.add_option(
        "-u", "--user", dest="user",
        help="Run script as user")

    opts, args = parser.parse_args(sys.argv[1:])
    filename = opts.filename
    data = simplejson.loads(open(filename, 'rb').read())

    # Mapping of TAVO period names to keys
    path = os.path.sep.join(
        [os.path.dirname(sys.argv[0]), "time-periods.csv"])
    f = open(os.path.abspath(path))
    rows = list(csv.reader(f))[1:]
    f.close()
    period_map = dict([
        (title, tid) for title, tid, start, stop, area, note, other 
        in rows ])

    app = spoofRequest(app)
    site = getSite(app)

    setup_cmfuid(site)
    secure(site, opts.user or 'admin')
    
    main(site, data, period_map)

    app._p_jar.sync()