Revision: 8072
http://svn.sourceforge.net/mailman/?rev=8072&view=rev
Author: mindlace23
Date: 2006-10-18 10:23:30 -0700 (Wed, 18 Oct 2006)
Log Message:
-----------
Simplified schema, enhanced object mappers.
Modified Paths:
--------------
branches/soc2006-webui/Mailman/DB/object_mappers.py
branches/soc2006-webui/Mailman/DB/table_schema.py
Modified: branches/soc2006-webui/Mailman/DB/object_mappers.py
===================================================================
--- branches/soc2006-webui/Mailman/DB/object_mappers.py 2006-10-18 16:41:02 UTC
(rev 8071)
+++ branches/soc2006-webui/Mailman/DB/object_mappers.py 2006-10-18 17:23:30 UTC
(rev 8072)
@@ -1,3 +1,5 @@
+import types
+
from sqlalchemy import *
"""Data mappers providing object-oriented access to the schema."""
@@ -15,7 +17,27 @@
mapper(EmailAddress,db.email_address)
class Setting(object):
- pass
+ def _set_value(self, value):
+ if type(value) is types.BooleanType:
+ self.boolean_value = value
+ elif type(value) is types.IntType:
+ self.integer_value = value
+ elif type(value) is types.FloatType:
+ self.float_value = value
+ else:
+ self.text_value = value
+
+ def _get_value(self):
+ if self.boolean_value in (True, False):
+ return self.boolean_value
+ if self.integer_value is not None:
+ return self.integer_value
+ if self.float_value is not None:
+ return self.float_value
+ if self.text_value is not None:
+ return self.text_value
+ value = property(_get_value,_set_value)
+
mapper(Setting,db.setting)
class User(object):
Modified: branches/soc2006-webui/Mailman/DB/table_schema.py
===================================================================
--- branches/soc2006-webui/Mailman/DB/table_schema.py 2006-10-18 16:41:02 UTC
(rev 8071)
+++ branches/soc2006-webui/Mailman/DB/table_schema.py 2006-10-18 17:23:30 UTC
(rev 8072)
@@ -53,7 +53,7 @@
Column('target_user',String(36),ForeignKey('user_id_pass.uuid') ),
Column('target_list',String(36),ForeignKey('list.uuid') ),
Column('target_domain',String(36),ForeignKey('domain.uuid') ),
- Column('type',String(36),ForeignKey('setting_type.name') ),
+ Column('type',String(50),nullable=False),
Column('boolean_value',Boolean),
Column('integer_value',Integer),
Column('float_value',Float),
@@ -61,18 +61,13 @@
Column('applied_by',String(36),
ForeignKey('user_id_pass.uuid') ),
Column('applied_at',TIMESTAMP),
)
- self.setting_type = Table('setting_type',self.metadata,
- Column('id',Integer, primary_key=True),
- Column('name', String(36), primary_key=True),
- )
- self.setting_past = Table('setting',self.metadata,
+ self.setting_past = Table('setting_past',self.metadata,
Column('uuid', String(36), primary_key=True,default=uuidgen),
Column('target_user',String(36),ForeignKey('user_id_pass.uuid') ),
Column('target_list',String(36),ForeignKey('list.uuid') ),
Column('target_domain',String(36),ForeignKey('domain.uuid') ),
- Column('type',String(36),ForeignKey('setting_type.name') ),
- Column('boolean_value',Boolean),
+ Column('type',Integer,ForeignKey('setting_type.id') ),
Column('boolean_value',Boolean),
Column('integer_value',Integer),
Column('float_value',Float),
Column('text_value',TEXT),
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe:
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org