Changeset 304
- Timestamp:
- 02/01/08 02:53:42 (1 year ago)
- Files:
-
- trunk/src/dm/db.py (modified) (2 diffs)
- trunk/src/dm/dom/base.py (modified) (1 diff)
- trunk/src/dm/dom/meta.py (modified) (1 diff)
- trunk/src/dm/dom/registry.py (modified) (1 diff)
- trunk/src/dm/dom/stateful.py (modified) (1 diff)
- trunk/src/dm/dom/temporal.py (modified) (2 diffs)
- trunk/src/dm/dom/temporaltest.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/dm/db.py
r303 r304 453 453 if not domAttr.isList(): 454 454 self.addAttribute(domAttr) 455 self.sortOnDbName = None 456 if self.dom.sortOn: 457 self.sortOnDbName = self.dom.sortOn.dbName 458 self.sortAscending = self.dom.sortAscending 455 459 456 460 def getAttribute(self, attrName): … … 482 486 if self.isCached: 483 487 mapper.sqlmeta.cacheValues = True 488 if self.sortOnDbName: 489 defaultOrder = getattr(mapper.q, self.sortOnDbName) 490 if not self.sortAscending: 491 defaultOrder = DESC(defaultOrder) 492 mapper.sqlmeta.defaultOrder = defaultOrder 493 484 494 # Todo: Figure indexes in sqlmeta. 485 495 #indexes = self.getSQLObjectIndexes() trunk/src/dm/dom/base.py
r303 r304 869 869 870 870 registerKeyName = 'name' 871 name = String( )872 871 name = String(isIndexed=True) 872 trunk/src/dm/dom/meta.py
r303 r304 98 98 self.attributesDeferred = {} 99 99 self.isTemporal = False 100 self.sortOn = None 101 102 def setSortOnAttr(self, sortOnName): 103 if sortOnName and sortOnName != 'id': 104 sortOn = self.attributeNames[sortOnName] 105 super(MetaDomainObject, self).__setattr__('sortOn', sortOn) 100 106 101 107 def __setattr__(self, attrName, attrVal): trunk/src/dm/dom/registry.py
r303 r304 46 46 domainClass.meta.isCached = domainClass.isConstant 47 47 domainClass.meta.isTemporal = domainClass.isTemporal 48 domainClass.meta.setSortOnAttr(domainClass.sortOnName) 49 domainClass.meta.sortAscending = domainClass.sortAscending 48 50 classRegister[domainClassName] = domainClass 49 51 domainClass.isRegistered = True trunk/src/dm/dom/stateful.py
r172 r304 133 133 dateCreated = DateTime( 134 134 default=dm.times.getUniversalNow, 135 isIndexed=True, 135 136 isEditable=False 136 137 ) trunk/src/dm/dom/temporal.py
r303 r304 89 89 isUnique = False 90 90 isConstant = True 91 sortOnName = 'dateCreated' 91 92 sortAscending = False 92 sortOnName = 'id'93 93 94 94 dateCreated = DateTime(isIndexed=True, isRequired=True) 95 # Overidden by HasA(parentClassName) meta attrrbute. 96 parent = Integer(default=1) 95 parent = Integer(default=1) # This gets overidden. 97 96 98 97 def makeTemporalName(self, className, attrName=None): … … 104 103 makeTemporalName = classmethod(makeTemporalName) 105 104 106 107 class BaseTemporalProperty(BaseTemporal):108 109 # Overidden by actually recorded meta attribute.110 recordedValue = String(default='')111 112 113 class TemporalProperty(BaseTemporalProperty):114 115 registerClass = TemporalCollection116 117 118 class BitemporalActual(BaseTemporalProperty):119 120 registerClass = BitemporalActualCollection121 sortOnName = 'dateCreated'122 123 105 def getSortOnValue(self): 124 106 return (self.dateCreated, self.id) 125 107 126 108 127 class BitemporalProperty(BaseTemporalProperty): 109 class TemporalProperty(BaseTemporal): 110 111 registerClass = TemporalCollection 112 recordedValue = String(default='') # This gets overidden. 113 114 115 class BitemporalActual(TemporalProperty): 116 117 registerClass = BitemporalActualCollection 118 119 120 class BitemporalProperty(BaseTemporal): 128 121 129 122 registerClass = BitemporalCollection trunk/src/dm/dom/temporaltest.py
r303 r304 105 105 self.failUnlessEqual(TemporalProperty.isConstant, True) 106 106 self.failUnlessEqual(TemporalProperty.registerKeyName, 'id') 107 self.failUnlessEqual(TemporalProperty.sortOnName, ' id')107 self.failUnlessEqual(TemporalProperty.sortOnName, 'dateCreated') 108 108 self.failUnlessEqual(TemporalProperty.sortAscending, False) 109 109 … … 111 111 self.property = self.collection.create(recordedValue='') 112 112 self.failUnless(self.property.dateCreated) 113 self.failUnlessEqual(self.property.getSortOnValue(), self.property.id) 113 #self.failUnlessEqual(self.property.getSortOnValue(), self.property.id) 114 self.failUnlessEqual(self.property.getSortOnValue(), (self.property.dateCreated, self.property.id)) 114 115 115 116 def test_getReferenceTime(self): … … 201 202 self.failUnlessEqual(TemporalProperty.isConstant, True) 202 203 self.failUnlessEqual(TemporalProperty.registerKeyName, 'id') 203 self.failUnlessEqual(TemporalProperty.sortOnName, ' id')204 self.failUnlessEqual(TemporalProperty.sortOnName, 'dateCreated') 204 205 self.failUnlessEqual(TemporalProperty.sortAscending, False) 205 206
