def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) savepoint_counter = 0 # Groups are no longer allowed as members of a section. groups = findObjectsProviding(root, IGroup) for group in groups: targets = getRelatedObjects(group, URIGroup, rel_type=URIMembership) group_members = getRelatedObjects(group, URIMember, rel_type=URIMembership) for target in targets: target_members = getRelatedObjects(target, URIMember, rel_type=URIMembership) for member in group_members: if member not in target_members: relate(URIMembership, (member, URIMember), (target, URIGroup)) savepoint_counter += 1 unrelate(URIMembership, (group, URIMember), (target, URIGroup)) if savepoint_counter % 2000 == 0: transaction.savepoint(optimistic=True) # Courses gained several new attributes, fill in their course_id courses = findObjectsProviding(root, ICourse) for course in courses: if getattr(course, 'course_id', None) is None: course.course_id = course.__name__
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) savepoint_counter = 0 # Groups are no longer allowed as members of a section. groups = findObjectsProviding(root, IGroup) for group in groups: targets = getRelatedObjects( group, URIGroup, rel_type=URIMembership) group_members = getRelatedObjects( group, URIMember, rel_type=URIMembership) for target in targets: target_members = getRelatedObjects( target, URIMember, rel_type=URIMembership) for member in group_members: if member not in target_members: relate(URIMembership, (member, URIMember), (target, URIGroup)) savepoint_counter += 1 unrelate(URIMembership, (group, URIMember), (target, URIGroup)) if savepoint_counter % 2000 == 0: transaction.savepoint(optimistic=True) # Courses gained several new attributes, fill in their course_id courses = findObjectsProviding(root, ICourse) for course in courses: if getattr(course, 'course_id', None) is None: course.course_id = course.__name__
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) for app in findObjectsProviding(root, ISchoolToolApplication): persons = app['persons'] for person in persons.values(): del person.email del person.phone if hasattr(person, 'gradeclass'): del person.gradeclass
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: container = IEmailContainer(app, None) if container is None: continue if getattr(container, 'enabled', None) is None: container.enabled = bool(container.hostname)
def evolve(context): linkcatalogs.ensureEvolved(context) root = getRootFolder(context) old_site = getSite() apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: setSite(app) for person in app['persons'].values(): evolvePerson(person) setSite(old_site)
def evolve(context): linkcatalogs.ensureEvolved(context) root = getRootFolder(context) old_site = getSite() app = root setSite(app) evolveScheduleContainers(app) evolveTimetableContainers(app) setSite(old_site)
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) old_site = getSite() apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: setSite(app) # vivify person contact information persons = findObjectsProviding(app, IPerson) for person in persons: contact = IContact(person, None) setSite(old_site)
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) old_site = getSite() apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: setSite(app) levels = guessMostRecentLevels(app) if levels is not None: del app[LEVELS_APP_KEY] app[LEVELS_APP_KEY] = levels setSite(old_site)
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) old_site = getSite() apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: setSite(app) timetables = findObjectsProviding(root, ITimetable) for tt in timetables: event = ObjectModifiedEvent(tt) update = UpdateSelectedPeriodsSchedules(event, tt) update() setSite(old_site)
def evolve(context): linkcatalogs.ensureEvolved(context) root = getRootFolder(context) old_site = getSite() app = root setSite(app) persons = ISchoolToolApplication(None)['persons'] manager = persons.super_user if manager is not None: syc = ISchoolYearContainer(app) for sy in syc.values(): makeManager(app, sy, manager) setSite(old_site)
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: if DEMOGRAPHICS_FIELDS_KEY not in app: continue fields = app[DEMOGRAPHICS_FIELDS_KEY] for field in fields.values(): if not IEnumFieldDescription.providedBy(field): continue for n, item in enumerate(field.items): if item == u'Native Hawaiian or Other Pasific Islander': field.items[n] = u'Native Hawaiian or Other Pacific Islander'
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: if DEMOGRAPHICS_FIELDS_KEY not in app: continue fields = app[DEMOGRAPHICS_FIELDS_KEY] for field in fields.values(): if not IEnumFieldDescription.providedBy(field): continue for n, item in enumerate(field.items): if item == u'Native Hawaiian or Other Pasific Islander': field.items[ n] = u'Native Hawaiian or Other Pacific Islander'
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) # Mock the renaming of zope.app.catalog and zope.app.intid to # zope.catalog and zope.intid. # This is for Critical Links deployments only - this part of Zope's evolution # was missed somehow. modules = ModulesSnapshot() modules.mock_module('zope.app.catalog') modules.mock_module('zope.app.catalog.interfaces') modules.mock_module('zope.app.catalog.catalog') modules.mock_module('zope.app.intid') modules.mock_module('zope.app.intid.interfaces') modules.mock_attr('zope.app.catalog.catalog', 'Catalog', zope.catalog.catalog.Catalog) modules.mock_attr('zope.app.catalog.interfaces', 'ICatalog', zope.catalog.interfaces.ICatalog) modules.mock_attr('zope.app.intid', 'IntIds', zope.intid.IntIds) modules.mock_attr('zope.app.intid.interfaces', 'IIntIds', zope.intid.interfaces.IIntIds) # Proceed with normal evolution now. old_site = getSite() apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: setSite(app) sm = app.getSiteManager() default = traverse(app, '++etc++site/default') intids = getUtility(zope.intid.interfaces.IIntIds) intids._p_changed = True for key in CATALOG_KEYS: util = queryUtility(ICatalog, name=key, default=None) if util is None: continue name = util.__name__ sm.unregisterUtility(util, ICatalog, key) del default[name] setSite(old_site) modules.restore()
def evolve(context): linkcatalogs.ensureEvolved(context) root = context.connection.root().get(ZopePublication.root_name, None) # Invalidate connection cache # Earlier evolutions (like evolve34) may have cached broken # persistent objects and we'll want to reload them. cache = context.connection._cache cache.invalidate(cache.cache_data.keys()) old_site = getSite() apps = findObjectsProviding(root, ISchoolToolApplication) for app in apps: setSite(app) evolveTimetables(app) setSite(old_site)
def evolve(context): linkcatalogs.ensureEvolved(context) root = getRootFolder(context) old_site = getSite() app = root setSite(app) syc = ISchoolYearContainer(app) if not syc.values(): setSite(old_site) return sy = syc.getActiveSchoolYear() if sy is None: sy = syc.values()[-1] for person in app['persons'].values(): evolvePerson(app, sy, person) setSite(old_site)
def evolve(context): linkcatalogs.ensureEvolved(context)