[SQL-CVS] r2176 - SQLObject/trunk/sqlobject/versioning
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2007-01-08 17:11:32
|
Author: novalis
Date: 2007-01-08 10:11:21 -0700 (Mon, 08 Jan 2007)
New Revision: 2176
Modified:
SQLObject/trunk/sqlobject/versioning/__init__.py
Log:
gee, that was a dumb way to add methods to a class
Modified: SQLObject/trunk/sqlobject/versioning/__init__.py
===================================================================
--- SQLObject/trunk/sqlobject/versioning/__init__.py 2007-01-04 20:40:02 UTC (rev 2175)
+++ SQLObject/trunk/sqlobject/versioning/__init__.py 2007-01-08 17:11:21 UTC (rev 2176)
@@ -9,6 +9,24 @@
del values['dateArchived']
self.masterClass.get(self.masterID).set(**values)
+ def nextVersion(self):
+ version = self.select(AND(self.q.masterID == self.masterID, self.q.id > self.id), limit=1, orderBy=self.q.id)
+ if version.count():
+ return version[0]
+ else:
+ return self.master
+
+ def getChangedFields(self):
+ next = self.nextVersion()
+ columns = self.__class__.sqlmeta.columns
+ fields = []
+ for column in columns:
+ if column not in ["dateArchived", "id", "masterID"]:
+ if getattr(self, column) != getattr(next, column):
+ fields.append(column.title())
+
+ return fields
+
def getColumns(columns, cls):
for column, defi in cls.sqlmeta.columnDefinitions.items():
if column.endswith("ID") and isinstance(defi, ForeignKey):
@@ -19,25 +37,7 @@
if cls.sqlmeta.parentClass:
getColumns(columns, cls.sqlmeta.parentClass)
-#these two are methods for a versionable object
-def _nextVersion(self):
- version = self.select(AND(self.q.masterID == self.masterID, self.q.id > self.id), limit=1, orderBy=self.q.id)
- if version.count():
- return version[0]
- else:
- return self.master
-def _getChangedFields(self):
- next = self.nextVersion()
- columns = self.__class__.sqlmeta.columns
- fields = []
- for column in columns:
- if column not in ["dateArchived", "id", "masterID"]:
- if getattr(self, column) != getattr(next, column):
- fields.append(column.title())
-
- return fields
-
class Versioning(object):
def __init__(self):
pass
@@ -55,8 +55,6 @@
attrs = {'dateArchived': DateTimeCol(default=datetime.now),
'master': ForeignKey(self.soClass.__name__),
'masterClass' : self.soClass,
- 'nextVersion' : _nextVersion,
- 'getChangedFields' : _getChangedFields,
'_connection' : conn,
}
|