Changeset 364

Show
Ignore:
Timestamp:
05/19/08 22:20:37 (8 months ago)
Author:
johnbywater
Message:

Straightened out temporal and bi-temporal timepoints.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/dm/dom/temporaltest.py

    r307 r364  
    66from dm.ioc import RequiredFeature 
    77import mx.DateTime 
     8import dm.times 
    89from time import sleep 
    910from dm.dom.temporal import TemporalProperty, BitemporalProperty, BitemporalActual 
     
    6869        instance = self.collection[''] 
    6970        self.failUnlessEqual(instance.title, title1) 
    70         revision1 = mx.DateTime.now() 
     71        revision1 = self.timepoint.now() 
    7172        sleep(1) 
    7273        self.instance.title = title2 
     
    7475        self.instance.title = title3 
    7576        self.instance.save() 
    76         revision3 = mx.DateTime.now() 
     77        revision3 = self.timepoint.now() 
    7778        sleep(1) 
    7879        self.instance.title = title4 
     
    101102        grant1 = self.instance.grants.create(permission1) 
    102103        self.instance.save() 
    103         revision1 = mx.DateTime.now() 
     104        revision1 = self.timepoint.now() 
    104105        instance = self.collection[''] 
    105106        self.failUnless(permission1 in instance.grants) 
     
    113114        grant3 = self.instance.grants.create(permission3) 
    114115        self.instance.save() 
    115         revision3 = mx.DateTime.now() 
     116        revision3 = self.timepoint.now() 
    116117        sleep(1) 
    117118        grant4 = self.instance.grants.create(permission4) 
    118119        self.instance.save() 
    119         revision4 = mx.DateTime.now() 
     120        revision4 = self.timepoint.now() 
    120121 
    121122        #print "Sleeping" 
     
    439440    "Temporally attributed domain object." 
    440441 
     442    timepoint = RequiredFeature('Timepoint') 
     443 
    441444    # Todo: Exception when register key attribute is temporal. 
    442445    name = String(default='', isIndexed=True) 
    443446    description = String(default='', isTemporal=True) 
    444     firstkiss = DateTime(isTemporal=True, default=mx.DateTime.now()) 
     447    firstkiss = DateTime(isTemporal=True, default=timepoint.now()) 
    445448    state = HasA('State', isTemporal=True, isRequired=False) 
    446449    haircolor = String(default='My Natural Color', isBitemporal=True) 
     
    541544        temporal.haircolor = haircolor1 
    542545        temporal.save() 
    543         revisionTime = mx.DateTime.now() 
     546        revisionTime = self.timepoint.now() 
    544547        sleep(3) 
    545548        temporal.description = description2 
  • trunk/src/dm/timepoint.py

    r306 r364  
    1 import mx.DateTime 
     1import dm.times 
    22 
    3 class Timepoint(object): 
     3""" 
     4Timepoint is used with the temporal model classes, used to represent a point 
     5in universal time. There are two properties, recorded and actual. 
     6 
     7Most temporal aspects are (uni-)temporal, and time-travelling is achieved by 
     8setting the recorded time property before object retrieval. 
     9 
     10If you have a bi-temporal aspect you can also time-travel in actual time. Set 
     11the actual property to see what an aspect is at some time in the past,  
     12according to how things were recorded at some particular time. 
     13""" 
     14 
     15class Timepoint(object):     
    416 
    517    def __init__(self): 
     
    3951     
    4052    def now(self): 
    41         return mx.DateTime.now() 
     53        return dm.times.getUniversalNow() 
    4254