Revision: 8071
http://svn.sourceforge.net/mailman/?rev=8071&view=rev
Author: mindlace23
Date: 2006-10-18 09:41:02 -0700 (Wed, 18 Oct 2006)
Log Message:
-----------
Table rearrangement, object mapping for clarity's sake
Modified Paths:
--------------
branches/soc2006-webui/Mailman/DB/object_mappers.py
branches/soc2006-webui/Mailman/DB/table_schema.py
branches/soc2006-webui/XUI/xui/web/post.py
Modified: branches/soc2006-webui/Mailman/DB/object_mappers.py
===================================================================
--- branches/soc2006-webui/Mailman/DB/object_mappers.py 2006-10-17 16:38:21 UTC
(rev 8070)
+++ branches/soc2006-webui/Mailman/DB/object_mappers.py 2006-10-18 16:41:02 UTC
(rev 8071)
@@ -2,9 +2,30 @@
"""Data mappers providing object-oriented access to the schema."""
+from table_schema import DB
+
+db = DB()
+
+class Access(object):
+ pass
+mapper(Access, db.access)
+
+class EmailAddress(object):
+ pass
+mapper(EmailAddress,db.email_address)
+
+class Setting(object):
+ pass
+mapper(Setting,db.setting)
+
class User(object):
pass
-
+mapper(User, db.user_id_pass, properties= {
+ 'email_addresses': relation(EmailAddress),
+ 'settings': relation(Settings),
+ 'access': relation(Access)
+ }
+ )
class List(object):
"""opaque key = KEY, lower-cased email address = LCE, case-preserved email
= CPE"""
@@ -47,6 +68,17 @@
"""
raise NotImplementedError
+mapper(List, db.list, properties = dict(
+ members = relation(User, secondary=db.list_member, lazy=False),
+ settings = relation(Setting),
+ )
+ )
class Domain(object):
- pass
\ No newline at end of file
+ pass
+mapper(List, db.list, properties = {
+ 'users': relation(User),
+ 'lists': relation(List),
+ 'settings': relation(Setting)
+ }
+ )
\ No newline at end of file
Modified: branches/soc2006-webui/Mailman/DB/table_schema.py
===================================================================
--- branches/soc2006-webui/Mailman/DB/table_schema.py 2006-10-17 16:38:21 UTC
(rev 8070)
+++ branches/soc2006-webui/Mailman/DB/table_schema.py 2006-10-18 16:41:02 UTC
(rev 8071)
@@ -11,53 +11,54 @@
def __init__(self,db='sqlite:///mailman.db'):
self.engine = create_engine(db)
self.metadata = BoundMetaData(db)
- self.atom = Table('atom',self.metadata,
+ self.user_id_pass = Table('user_id_pass',self.metadata,
Column('uuid',String(36),primary_key=True,default=uuidgen),
- Column('type',Integer,ForeignKey('atom_type.id'))
+ Column('password',Unicode(50)),
+ Column('username',Unicode(255)),
+
Column('domain',String(36),ForeignKey('domain.uuid'))
)
- self.atom_type = Table('atom_type',self.metadata,
- Column('id',Integer,primary_key=True),
- Column('name',String(20),unique=True,nullable=False)
- )
self.email_address = Table('email_address', self.metadata,
- Column('user_uuid', String(36),
ForeignKey('atom.uuid')),
- Column('string',Unicode(255),unique=True)
+ Column('user_uuid', String(36),
ForeignKey('user_id_pass.uuid')),
+ Column('string',Unicode(255),unique=True),
+ Column('default',Boolean,default=False)
)
- self.username = Table('username', self.metadata,
- Column('user_uuid', String(36), ForeignKey('atom.uuid'),
primary_key=True),
- Column('string',Unicode(255),primary_key=True)
- )
- self.password = Table('password', self.metadata,
- Column('user_uuid', String(36),
ForeignKey('atom.uuid'),primary_key=True),
- Column('string',Unicode(50))
- )
+
self.access = Table('access', self.metadata,
+
Column('uuid',String(36),primary_key=True,default=uuidgen),
Column('level',Integer,ForeignKey('access_level_type.id') ),
- Column('holder',String(36),
ForeignKey('atom.uuid'), nullable=False),
- Column('context',String(36),
ForeignKey('atom.uuid')),
+ Column('holder',String(36),
ForeignKey('user_id_pass.uuid'), nullable=False),
+ Column('domain',String(36),
ForeignKey('domain.uuid')),
+ Column('list',String(36),
ForeignKey('list.uuid')),
)
self.access_level_type = Table('access_level_type',self.metadata,
Column('id',Integer,primary_key=True),
Column('name',String(20),nullable=False,unique=True),
)
self.domain = Table('domain',self.metadata,
- Column('uuid',String(36), ForeignKey('atom.uuid')),
+ Column('uuid',String(36),primary_key=True,default=uuidgen),
Column('name',Unicode(255)),
)
self.list = Table('list',self.metadata,
- Column('id',String(36), ForeignKey('atom.uuid')),
- Column('real_name',Unicode(255),nullable = False),
+ Column('uuid',String(36),primary_key=True,default=uuidgen),
+ Column('name',Unicode(255),nullable = False),
)
+ self.list_member = Table('list_member',self.metadata,
+
Column('user_uuid',String(36),ForeignKey('user_id_pass.uuid')),
+
Column('list_uuid',String(36),ForeignKey('list.uuid'))
+ )
+
self.setting = Table('setting',self.metadata,
- Column('uuid', String(36), ForeignKey('atom.uuid'),
primary_key=True),
- Column('applied_to',String(36),ForeignKey('atom.uuid') ),
+ 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('integer_value',Integer),
Column('float_value',Float),
Column('text_value',TEXT),
- Column('applied_by',String(36), ForeignKey('atom.uuid') ),
+ Column('applied_by',String(36),
ForeignKey('user_id_pass.uuid') ),
Column('applied_at',TIMESTAMP),
)
self.setting_type = Table('setting_type',self.metadata,
@@ -65,25 +66,21 @@
Column('name', String(36), primary_key=True),
)
- self.setting_past = Table('past_setting',self.metadata,
- Column('uuid', String(36), ForeignKey('atom.uuid'),
primary_key=True),
- Column('applied_to',String(36),ForeignKey('atom.uuid')
),
-
Column('type',String(36),ForeignKey('setting_type.name') ),
- Column('boolean_value',Boolean),
- Column('integer_value',Integer),
- Column('float_value',Float),
- Column('text_value',TEXT),
- Column('applied_by',String(36),
ForeignKey('atom.uuid') ),
- Column('applied_at',TIMESTAMP),
- )
+ self.setting_past = Table('setting',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('integer_value',Integer),
+ Column('float_value',Float),
+ Column('text_value',TEXT),
+ Column('applied_by',String(36),
ForeignKey('user_id_pass.uuid') ),
+ Column('applied_at',TIMESTAMP),
+ )
def create(self):
- atom_types = ({'id':0,'name':'user'},
- {'id':1,'name':'list'},
- {'id':2,'name':'domain'},
- {'id':3,'name':'setting'},
- )
-
access_level_types = ({'id':0,'name':'anonymous'},
{'id':1,'name':'authenticated'},
{'id':2,'name':'member'},
@@ -91,9 +88,7 @@
{'id':4,'name':'administrator'},
)
- self.atom_type.create()
- self.atom_type.insert().execute(atom_types)
- self.atom.create()
+ self.user_id_pass.create()
self.email_address.create()
self.username.create()
self.password.create()
Modified: branches/soc2006-webui/XUI/xui/web/post.py
===================================================================
--- branches/soc2006-webui/XUI/xui/web/post.py 2006-10-17 16:38:21 UTC (rev
8070)
+++ branches/soc2006-webui/XUI/xui/web/post.py 2006-10-18 16:41:02 UTC (rev
8071)
@@ -3,4 +3,4 @@
class post(SitePage):
def respond(self):
-
\ No newline at end of file
+ pass
\ No newline at end of file
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