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

Reply via email to