On Friday 10 February 2006 05:15, Lorenzo Gil Sanchez wrote: > Any pointer to documentation about this or to an example application > that does this will be very helpful.
Here is a generations script (snippet) I wrote for SchoolTool: def fixPermissionMap(obj): if isinstance(obj, PersistentSecurityMap): for pkey, data in obj._byrow.items(): if pkey.startswith('schoolbell'): obj._byrow['schooltool' + pkey[10:]] = data del obj._byrow[pkey] for key, data in obj._bycol.items(): for pkey, pdata in data.items(): if pkey.startswith('schoolbell'): obj._bycol[key]['schooltool' + pkey[10:]] = pdata del obj._bycol[key][pkey] def evolve(context): storage = context.connection._storage next_oid = None # Note: Loop through all persistent, active objects. while True: oid, tid, data, next_oid = storage.record_iternext(next_oid) obj = context.connection.get(oid) # Make sure that we tell all objects that they have been changed. Who # cares whether it is true! :-) # Note: Only needed if you want to only update class references obj._p_activate() obj._p_changed = True # Now fix up other things fixAnnotations(obj) fixCalendar(obj) fixTimetables(obj) fixOverlaidCalendars(obj) fixPermissionMap(obj) if next_oid is None: break Regards, Stephan -- Stephan Richter CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student) Web2k - Web Software Design, Development and Training _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users