Exemplo n.º 1
0
    def migrate_legacy_events(self):
        print cformat('%{white!}migrating legacy events')

        # XXX: removed display manager / internal page manager update
        # don't forget to handle them when updating this for 2.0!
        wfr = self.zodb_root['webfactoryregistry']
        for event in self._committing_iterator(self._get_events()):
            if not hasattr(event, '_old_id'):
                new_id = self.gen_event_id()
                event.unindexConf()
                del self.zodb_root['conferences'][event.id]
                wf = wfr.pop(event.id, None)
                event._old_id = event.id
                event.id = new_id
                if wf is not None:
                    wfr[event.id] = wf
                self.zodb_root['conferences'][event.id] = event
                event.indexConf()
                EventSetting.find(event_id=event._old_id).update({EventSetting.event_id: event.id})
                EventSettingPrincipal.find(event_id=event._old_id).update({EventSettingPrincipal.event_id: event.id})
                db.session.add(LegacyEventMapping(legacy_event_id=event._old_id, event_id=int(event.id)))
                if not self.quiet:
                    self.print_success(cformat('%{cyan}{}').format(event.id), event_id=event._old_id)
            else:
                # happens if this importer was executed before but you want to add the mapping to your DB again
                db.session.add(LegacyEventMapping(legacy_event_id=event._old_id, event_id=int(event.id)))
                if not self.quiet:
                    self.print_success(cformat('%{cyan}{}%{reset} %{yellow}(already updated in zodb)').format(event.id),
                                       event_id=event._old_id)
Exemplo n.º 2
0
 def migrate(self):
     if self.is_legacy_event:
         db.session.add(
             LegacyEventMapping(legacy_event_id=self.conf.id,
                                event_id=self.event.id))
         if not self.quiet:
             self.print_success('-> %[cyan]{}'.format(self.event.id))
def test_legacy_ids(db, dummy_event, test_client, url, legacy_id):
    db.session.add(
        LegacyEventMapping(legacy_event_id=legacy_id, event=dummy_event))
    rv = test_client.get(url.format(legacy_id))
    assert rv.status_code == 301
    assert rv.headers['Location'] == 'http://localhost' + url.format(
        dummy_event.id)