~divmod-dev/divmod.org/combinator-wants-user-site-packages-3002

« back to all changes in this revision

Viewing changes to Quotient/xquotient/compose.py

  • Committer: exarkun
  • Date: 2009-07-16 00:52:55 UTC
  • Revision ID: svn-v4:866e43f7-fbfc-0310-8f2a-ec88d1da2979:trunk:17773
Merge quotient-scheduler-2925

Author: exarkun
Reviewer: mithrandi
Fixes: #2925

Remove all code from Quotient which instantiates Schedulers or SubSchedulers and
upgrade away persistent attributes which refer to existing such items.  Replace
this with simple adaption of Stores to IScheduler where necessary.

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
from nevow import inevow, rend, json
14
14
from nevow.athena import expose
15
15
 
16
 
from axiom import attributes, item, scheduler
 
16
from axiom import attributes, item
17
17
from axiom.upgrade import (
18
18
    registerUpgrader, registerAttributeCopyingUpgrader,
19
19
    registerDeletionUpgrader)
156
156
    implements(ixmantissa.INavigableElement, iquotient.IMessageSender)
157
157
 
158
158
    typeName = 'quotient_composer'
159
 
    schemaVersion = 5
 
159
    schemaVersion = 6
160
160
 
161
161
    powerupInterfaces = (ixmantissa.INavigableElement, iquotient.IMessageSender)
162
162
 
163
163
    privateApplication = dependsOn(PrivateApplication)
164
 
    scheduler = dependsOn(scheduler.SubScheduler)
165
164
    mda = dependsOn(MailDeliveryAgent)
166
165
    deliveryAgent = dependsOn(DeliveryAgent)
167
166
    prefs = dependsOn(ComposePreferenceCollection)
376
375
    composer = old.upgradeVersion(old.typeName, 3, 4)
377
376
    s = old.store
378
377
    composer.privateApplication = s.findOrCreate(PrivateApplication)
379
 
    composer.scheduler = s.findOrCreate(scheduler.SubScheduler)
380
378
    composer.mda = s.findOrCreate(MailDeliveryAgent)
381
379
    composer.deliveryAgent = s.findOrCreate(DeliveryAgent)
382
380
    composer.prefs = s.findOrCreate(ComposePreferenceCollection)
402
400
    return old.upgradeVersion(
403
401
        old.typeName, 4, 5,
404
402
        privateApplication=old.privateApplication,
405
 
        scheduler=old.scheduler,
406
403
        mda=old.mda,
407
404
        deliveryAgent=old.deliveryAgent,
408
405
        prefs=old.prefs)
410
407
 
411
408
registerUpgrader(composer4to5, Composer.typeName, 4, 5)
412
409
 
 
410
item.declareLegacyItem(Composer.typeName, 5,
 
411
                       dict(privateApplication=attributes.reference(),
 
412
                            scheduler=attributes.reference(),
 
413
                            mda=attributes.reference(),
 
414
                            deliveryAgent=attributes.reference(),
 
415
                            prefs=attributes.reference()))
 
416
 
 
417
def composer5to6(old):
 
418
    """
 
419
    Upgrader to remove the C{scheduler} attribute.
 
420
    """
 
421
    return old.upgradeVersion(
 
422
        old.typeName, 5, 6,
 
423
        privateApplication=old.privateApplication,
 
424
        mda=old.mda,
 
425
        deliveryAgent=old.deliveryAgent,
 
426
        prefs=old.prefs)
 
427
 
 
428
registerUpgrader(composer5to6, Composer.typeName, 5, 6)
413
429
 
414
430
 
415
431
class _ComposeFragmentMixin: