details:
http://www.bx.psu.edu/hg/galaxy/rev/6f43113ab087
changeset: 2645:6f43113ab087
user: jeremy goecks <jeremy.goecks(a)emory.edu>
date: Fri Aug 28 15:36:41 2009 -0400
description:
changes to the model to support tags
1 file(s) affected in this change:
lib/galaxy/model/mapping.py
diffs (94 lines):
diff -r b6b4d07ad087 -r 6f43113ab087 lib/galaxy/model/mapping.py
--- a/lib/galaxy/model/mapping.py Fri Aug 28 15:35:27 2009 -0400
+++ b/lib/galaxy/model/mapping.py Fri Aug 28 15:36:41 2009 -0400
@@ -544,6 +544,34 @@
Column( "content", TEXT )
)
+Tag.table = Table( "tag", metadata,
+ Column( "id", Integer, primary_key=True ),
+ Column( "type", Integer ),
+ Column( "parent_id", Integer, ForeignKey( "tag.id" ) ),
+ Column( "name", TrimmedString(255) ),
+ UniqueConstraint( "name" ) )
+
+HistoryTagAssociation.table = Table( "history_tag_association", metadata,
+ Column( "history_id", Integer, ForeignKey( "history.id" ),
index=True ),
+ Column( "tag_id", Integer, ForeignKey( "tag.id" ), index=True ),
+ Column( "user_tname", TrimmedString(255), index=True),
+ Column( "value", TrimmedString(255), index=True),
+ Column( "user_value", TrimmedString(255), index=True) )
+
+DatasetTagAssociation.table = Table( "dataset_tag_association", metadata,
+ Column( "dataset_id", Integer, ForeignKey( "dataset.id" ),
index=True ),
+ Column( "tag_id", Integer, ForeignKey( "tag.id" ), index=True ),
+ Column( "user_tname", TrimmedString(255), index=True),
+ Column( "value", TrimmedString(255), index=True),
+ Column( "user_value", TrimmedString(255), index=True) )
+
+HistoryDatasetAssociationTagAssociation.table = Table(
"history_dataset_association_tag_association", metadata,
+ Column( "history_dataset_association_id", Integer, ForeignKey(
"history_dataset_association.id" ), index=True ),
+ Column( "tag_id", Integer, ForeignKey( "tag.id" ), index=True ),
+ Column( "user_tname", TrimmedString(255), index=True),
+ Column( "value", TrimmedString(255), index=True),
+ Column( "user_value", TrimmedString(255), index=True) )
+
# With the tables defined we can define the mappers and setup the
# relationships between the model objects.
@@ -643,7 +671,8 @@
backref=backref( "parent", primaryjoin=(
HistoryDatasetAssociation.table.c.parent_id == HistoryDatasetAssociation.table.c.id ),
remote_side=[HistoryDatasetAssociation.table.c.id], uselist=False ) ),
visible_children=relation(
HistoryDatasetAssociation,
- primaryjoin=( ( HistoryDatasetAssociation.table.c.parent_id ==
HistoryDatasetAssociation.table.c.id ) & ( HistoryDatasetAssociation.table.c.visible
== True ) ) )
+ primaryjoin=( ( HistoryDatasetAssociation.table.c.parent_id ==
HistoryDatasetAssociation.table.c.id ) & ( HistoryDatasetAssociation.table.c.visible
== True ) ) ),
+ tags=relation(HistoryDatasetAssociationTagAssociation,
backref='history_tag_associations')
) )
assign_mapper( context, Dataset, Dataset.table,
@@ -659,7 +688,8 @@
primaryjoin=( Dataset.table.c.id ==
LibraryDatasetDatasetAssociation.table.c.dataset_id ) ),
active_library_associations=relation(
LibraryDatasetDatasetAssociation,
- primaryjoin=( ( Dataset.table.c.id ==
LibraryDatasetDatasetAssociation.table.c.dataset_id ) & (
LibraryDatasetDatasetAssociation.table.c.deleted == False ) ) )
+ primaryjoin=( ( Dataset.table.c.id ==
LibraryDatasetDatasetAssociation.table.c.dataset_id ) & (
LibraryDatasetDatasetAssociation.table.c.deleted == False ) ) ),
+ tags=relation(DatasetTagAssociation, backref='datasets')
) )
assign_mapper( context, HistoryDatasetAssociationDisplayAtAuthorization,
HistoryDatasetAssociationDisplayAtAuthorization.table,
@@ -678,7 +708,8 @@
assign_mapper( context, History, History.table,
properties=dict( galaxy_sessions=relation( GalaxySessionToHistoryAssociation ),
datasets=relation( HistoryDatasetAssociation,
backref="history", order_by=asc(HistoryDatasetAssociation.table.c.hid) ),
- active_datasets=relation( HistoryDatasetAssociation, primaryjoin=( (
HistoryDatasetAssociation.table.c.history_id == History.table.c.id ) & ( not_(
HistoryDatasetAssociation.table.c.deleted ) ) ), order_by=asc(
HistoryDatasetAssociation.table.c.hid ), viewonly=True )
+ active_datasets=relation( HistoryDatasetAssociation, primaryjoin=( (
HistoryDatasetAssociation.table.c.history_id == History.table.c.id ) & ( not_(
HistoryDatasetAssociation.table.c.deleted ) ) ), order_by=asc(
HistoryDatasetAssociation.table.c.hid ), viewonly=True ),
+ tags=relation(HistoryTagAssociation, backref="histories")
) )
assign_mapper( context, HistoryUserShareAssociation, HistoryUserShareAssociation.table,
@@ -938,6 +969,25 @@
lazy=False )
) )
+assign_mapper( context, Tag, Tag.table,
+ properties=dict( children=relation(Tag, backref=backref( 'parent',
remote_side=[Tag.table.c.id] ) )
+ ) )
+
+assign_mapper( context, HistoryTagAssociation, HistoryTagAssociation.table,
+ properties=dict( tag=relation(Tag, backref="tagged_histories") ),
+ primary_key=[HistoryTagAssociation.table.c.history_id,
HistoryTagAssociation.table.c.tag_id]
+ )
+
+assign_mapper( context, DatasetTagAssociation, DatasetTagAssociation.table,
+ properties=dict( tag=relation(Tag, backref="tagged_datasets") ),
+ primary_key=[DatasetTagAssociation.table.c.dataset_id,
DatasetTagAssociation.table.c.tag_id]
+ )
+
+assign_mapper( context, HistoryDatasetAssociationTagAssociation,
HistoryDatasetAssociationTagAssociation.table,
+ properties=dict( tag=relation(Tag,
backref="tagged_history_dataset_associations") ),
+
primary_key=[HistoryDatasetAssociationTagAssociation.table.c.history_dataset_association_id,
HistoryDatasetAssociationTagAssociation.table.c.tag_id]
+ )
+
def db_next_hid( self ):
"""
Override __next_hid to generate from the database in a concurrency