[POS-commit] r6352 - stoqlib/trunk/external/sqlobject
Johan Dahlin
jdahlin at async.com.br
Mon Apr 9 13:00:14 BRT 2007
Author: jdahlin
Date: Mon Apr 9 13:00:14 2007
New Revision: 6352
Modified:
stoqlib/trunk/external/sqlobject/viewable.py
Log:
#3198: Ao alternar entre os aplicativos um erro é gerado. Make sure that sqlmeta in viewable subclasses do not share any state.
Modified: stoqlib/trunk/external/sqlobject/viewable.py
==============================================================================
--- stoqlib/trunk/external/sqlobject/viewable.py (original)
+++ stoqlib/trunk/external/sqlobject/viewable.py Mon Apr 9 13:00:14 2007
@@ -13,10 +13,10 @@
class ViewableMeta(object):
table = None
defaultOrder = None
- columnList = []
- columnNames = []
+ columnList = None
+ columnNames = None
idName = 'id'
- columns = {}
+ columns = None
parentClass = None
@@ -47,6 +47,12 @@
clause = None
def __classinit__(cls, new_attrs):
+ if not cls.__bases__ == (object,):
+ cls.sqlmeta = type('sqlmeta', (cls.sqlmeta,), {})
+ cls.sqlmeta.columns = {}
+ cls.sqlmeta.columnList = []
+ cls.sqlmeta.columnNames = []
+
setup_attributes(cls, new_attrs)
columns = new_attrs['columns']
@@ -55,11 +61,12 @@
cols = columns.copy()
if not 'id' in cols:
- raise TypeError("You need a id column in %r" % Viewable)
+ raise TypeError("You need a id column in %r" % cls)
idquery = cols.pop('id')
cls.sqlmeta.table = idquery.tableName
+ assert not cls.sqlmeta.columns
for colName in sorted(cols):
cls.addColumn(colName, cols[colName])
More information about the POS-commit
mailing list