X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=bluechips%2Fmodel%2F__init__.py;fp=bluechips%2Fmodel%2F__init__.py;h=fa8d7a88239b5b94e5fa202461847a7a29b2c440;hb=14a694445c9ce5493d644002a42261b39591d228;hp=11fb0e5262cb193ef98c8d69cd122f0b04fcf624;hpb=f4d8f4cc0fa9643c3ca04c7dcc2c87f3790160de;p=bluechips.git diff --git a/bluechips/model/__init__.py b/bluechips/model/__init__.py index 11fb0e5..fa8d7a8 100644 --- a/bluechips/model/__init__.py +++ b/bluechips/model/__init__.py @@ -56,10 +56,15 @@ splits = sa.Table('splits', meta.metadata, tags = sa.Table('tags', meta.metadata, sa.Column('id', sa.types.Integer, primary_key=True), - sa.Column('expenditure_id', sa.types.Integer, - sa.ForeignKey('expenditures.id'), nullable=False), - sa.Column('tag', sa.Text, nullable=False)) + sa.Column('name', sa.Text)) +tag_to_expense_map = sa.Table('tag_to_expense_map', meta.metadata, + sa.Column('tag_id', sa.types.Integer, + sa.ForeignKey('tags.id'), + primary_key=True), + sa.Column('expenditure_id', sa.types.Integer, + sa.ForeignKey('expenditures.id'), + primary_key=True)) subitems = sa.Table('subitems', meta.metadata, sa.Column('id', sa.types.Integer, primary_key=True), @@ -96,8 +101,8 @@ orm.mapper(Expenditure, expenditures, properties={ 'splits': orm.relation(Split, backref='expenditure', cascade='all, delete'), - 'tags': orm.relation(Tag, backref='expenditure', - cascade='all, delete'), + '_tags': orm.relation(Tag, secondary=tag_to_expense_map, + collection_class=set, cascade='all, delete'), 'subitems': orm.relation(Subitem, backref='expenditure', cascade='all, delete') })