[Repoze-checkins] r1623 - repoze.shootout/trunk/repoze/shootout
Carlos de la Guardia
cguardia at yahoo.com
Sun Aug 17 02:48:36 EDT 2008
Author: Carlos de la Guardia <cguardia at yahoo.com>
Date: Sun Aug 17 02:48:36 2008
New Revision: 1623
Log:
created initial model and mappers for tag handling
Modified:
repoze.shootout/trunk/repoze/shootout/models.py
Modified: repoze.shootout/trunk/repoze/shootout/models.py
==============================================================================
--- repoze.shootout/trunk/repoze/shootout/models.py (original)
+++ repoze.shootout/trunk/repoze/shootout/models.py Sun Aug 17 02:48:36 2008
@@ -71,6 +71,30 @@
user_mapper = mapper(User, users_table)
+tags_table = Table(
+ 'tags',
+ metadata,
+ Column('tag_id', Integer, primary_key=True),
+ Column('name', String(50), index=True)
+)
+
+ideas_tags_table = Table(
+ 'ideas_tags',
+ metadata,
+ Column('idea_id', Integer, ForeignKey('ideas.idea_id'), primary_key=True),
+ Column('tag_id', Integer, ForeignKey('tags.tag_id'), primary_key=True),
+)
+
+class ITag(Interface):
+ pass
+
+class Tag(object):
+ implements(ITag)
+ def __init__(self, name):
+ self.name = name
+
+tag_mapper = mapper(Tag, tags_table)
+
ideas_table = Table(
'ideas',
metadata,
@@ -104,6 +128,7 @@
((ideas_table.c.hits>0 or ideas_table.c.misses>0) and (ideas_table.c.hits/(ideas_table.c.hits+ideas_table.c.misses)*100) or 0).label('hit_percentage')
),
'users':relation(User, order_by=users_table.c.user_id),
+ 'tags':relation(Tag, secondary=ideas_tags_table, lazy=False),
})
class IRange(Interface):
@@ -126,4 +151,5 @@
root = RoutesMapper(fallback_get_root)
root.connect('ideas/:idea', controller='ideas')
root.connect('users/:user', controller='users')
+ root.connect('tags/:tag', controller='tags')
return root
More information about the Repoze-checkins
mailing list