comparison rhodecode/model/db.py @ 1886:50e32940e464 beta

code garden
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 12 Jan 2012 05:51:13 +0200
parents 0614862a20ec
children 4582e6b9e2f6
comparison
equal deleted inserted replaced
1885:350d95dece6f 1886:50e32940e464
145 Session.delete(obj) 145 Session.delete(obj)
146 146
147 147
148 class RhodeCodeSetting(Base, BaseModel): 148 class RhodeCodeSetting(Base, BaseModel):
149 __tablename__ = 'rhodecode_settings' 149 __tablename__ = 'rhodecode_settings'
150 __table_args__ = (UniqueConstraint('app_settings_name'), {'extend_existing':True}) 150 __table_args__ = (UniqueConstraint('app_settings_name'), {'extend_existing': True})
151 app_settings_id = Column("app_settings_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 151 app_settings_id = Column("app_settings_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
152 app_settings_name = Column("app_settings_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 152 app_settings_name = Column("app_settings_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
153 _app_settings_value = Column("app_settings_value", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 153 _app_settings_value = Column("app_settings_value", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
154 154
155 def __init__(self, k='', v=''): 155 def __init__(self, k='', v=''):
215 return fd 215 return fd
216 216
217 217
218 class RhodeCodeUi(Base, BaseModel): 218 class RhodeCodeUi(Base, BaseModel):
219 __tablename__ = 'rhodecode_ui' 219 __tablename__ = 'rhodecode_ui'
220 __table_args__ = (UniqueConstraint('ui_key'), {'extend_existing':True}) 220 __table_args__ = (UniqueConstraint('ui_key'), {'extend_existing': True})
221 221
222 HOOK_UPDATE = 'changegroup.update' 222 HOOK_UPDATE = 'changegroup.update'
223 HOOK_REPO_SIZE = 'changegroup.repo_size' 223 HOOK_REPO_SIZE = 'changegroup.repo_size'
224 HOOK_PUSH = 'pretxnchangegroup.push_logger' 224 HOOK_PUSH = 'pretxnchangegroup.push_logger'
225 HOOK_PULL = 'preoutgoing.pull_logger' 225 HOOK_PULL = 'preoutgoing.pull_logger'
262 Session.add(new_ui) 262 Session.add(new_ui)
263 263
264 264
265 class User(Base, BaseModel): 265 class User(Base, BaseModel):
266 __tablename__ = 'users' 266 __tablename__ = 'users'
267 __table_args__ = (UniqueConstraint('username'), UniqueConstraint('email'), {'extend_existing':True}) 267 __table_args__ = (UniqueConstraint('username'), UniqueConstraint('email'), {'extend_existing': True})
268 user_id = Column("user_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 268 user_id = Column("user_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
269 username = Column("username", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 269 username = Column("username", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
270 password = Column("password", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 270 password = Column("password", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
271 active = Column("active", Boolean(), nullable=True, unique=None, default=None) 271 active = Column("active", Boolean(), nullable=True, unique=None, default=None)
272 admin = Column("admin", Boolean(), nullable=True, unique=None, default=False) 272 admin = Column("admin", Boolean(), nullable=True, unique=None, default=False)
360 full_name=self.full_name) 360 full_name=self.full_name)
361 361
362 362
363 class UserLog(Base, BaseModel): 363 class UserLog(Base, BaseModel):
364 __tablename__ = 'user_logs' 364 __tablename__ = 'user_logs'
365 __table_args__ = {'extend_existing':True} 365 __table_args__ = {'extend_existing': True}
366 user_log_id = Column("user_log_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 366 user_log_id = Column("user_log_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
367 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) 367 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
368 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True) 368 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True)
369 repository_name = Column("repository_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 369 repository_name = Column("repository_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
370 user_ip = Column("user_ip", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 370 user_ip = Column("user_ip", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
379 repository = relationship('Repository',cascade='') 379 repository = relationship('Repository',cascade='')
380 380
381 381
382 class UsersGroup(Base, BaseModel): 382 class UsersGroup(Base, BaseModel):
383 __tablename__ = 'users_groups' 383 __tablename__ = 'users_groups'
384 __table_args__ = {'extend_existing':True} 384 __table_args__ = {'extend_existing': True}
385 385
386 users_group_id = Column("users_group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 386 users_group_id = Column("users_group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
387 users_group_name = Column("users_group_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None) 387 users_group_name = Column("users_group_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
388 users_group_active = Column("users_group_active", Boolean(), nullable=True, unique=None, default=None) 388 users_group_active = Column("users_group_active", Boolean(), nullable=True, unique=None, default=None)
389 389
413 return users_group.get(users_group_id) 413 return users_group.get(users_group_id)
414 414
415 415
416 class UsersGroupMember(Base, BaseModel): 416 class UsersGroupMember(Base, BaseModel):
417 __tablename__ = 'users_groups_members' 417 __tablename__ = 'users_groups_members'
418 __table_args__ = {'extend_existing':True} 418 __table_args__ = {'extend_existing': True}
419 419
420 users_group_member_id = Column("users_group_member_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 420 users_group_member_id = Column("users_group_member_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
421 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) 421 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
422 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) 422 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
423 423
438 return ugm 438 return ugm
439 439
440 440
441 class Repository(Base, BaseModel): 441 class Repository(Base, BaseModel):
442 __tablename__ = 'repositories' 442 __tablename__ = 'repositories'
443 __table_args__ = (UniqueConstraint('repo_name'), {'extend_existing':True},) 443 __table_args__ = (UniqueConstraint('repo_name'), {'extend_existing': True},)
444 444
445 repo_id = Column("repo_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 445 repo_id = Column("repo_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
446 repo_name = Column("repo_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None) 446 repo_name = Column("repo_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
447 clone_uri = Column("clone_uri", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=False, default=None) 447 clone_uri = Column("clone_uri", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=False, default=None)
448 repo_type = Column("repo_type", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=False, default='hg') 448 repo_type = Column("repo_type", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=False, default='hg')
684 684
685 685
686 class RepoGroup(Base, BaseModel): 686 class RepoGroup(Base, BaseModel):
687 __tablename__ = 'groups' 687 __tablename__ = 'groups'
688 __table_args__ = (UniqueConstraint('group_name', 'group_parent_id'), 688 __table_args__ = (UniqueConstraint('group_name', 'group_parent_id'),
689 CheckConstraint('group_id != group_parent_id'), {'extend_existing':True},) 689 CheckConstraint('group_id != group_parent_id'), {'extend_existing': True},)
690 __mapper_args__ = {'order_by':'group_name'} 690 __mapper_args__ = {'order_by':'group_name'}
691 691
692 group_id = Column("group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 692 group_id = Column("group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
693 group_name = Column("group_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None) 693 group_name = Column("group_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
694 group_parent_id = Column("group_parent_id", Integer(), ForeignKey('groups.group_id'), nullable=True, unique=None, default=None) 694 group_parent_id = Column("group_parent_id", Integer(), ForeignKey('groups.group_id'), nullable=True, unique=None, default=None)
803 return RepoGroup.url_sep().join(path_prefix + [group_name]) 803 return RepoGroup.url_sep().join(path_prefix + [group_name])
804 804
805 805
806 class Permission(Base, BaseModel): 806 class Permission(Base, BaseModel):
807 __tablename__ = 'permissions' 807 __tablename__ = 'permissions'
808 __table_args__ = {'extend_existing':True} 808 __table_args__ = {'extend_existing': True}
809 permission_id = Column("permission_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 809 permission_id = Column("permission_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
810 permission_name = Column("permission_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 810 permission_name = Column("permission_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
811 permission_longname = Column("permission_longname", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 811 permission_longname = Column("permission_longname", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
812 812
813 def __repr__(self): 813 def __repr__(self):
828 return q.all() 828 return q.all()
829 829
830 830
831 class UserRepoToPerm(Base, BaseModel): 831 class UserRepoToPerm(Base, BaseModel):
832 __tablename__ = 'repo_to_perm' 832 __tablename__ = 'repo_to_perm'
833 __table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'extend_existing':True}) 833 __table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'extend_existing': True})
834 repo_to_perm_id = Column("repo_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 834 repo_to_perm_id = Column("repo_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
835 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) 835 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
836 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) 836 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
837 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None) 837 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None)
838 838
853 return '<user:%s => %s >' % (self.user, self.repository) 853 return '<user:%s => %s >' % (self.user, self.repository)
854 854
855 855
856 class UserToPerm(Base, BaseModel): 856 class UserToPerm(Base, BaseModel):
857 __tablename__ = 'user_to_perm' 857 __tablename__ = 'user_to_perm'
858 __table_args__ = (UniqueConstraint('user_id', 'permission_id'), {'extend_existing':True}) 858 __table_args__ = (UniqueConstraint('user_id', 'permission_id'), {'extend_existing': True})
859 user_to_perm_id = Column("user_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 859 user_to_perm_id = Column("user_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
860 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) 860 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
861 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) 861 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
862 862
863 user = relationship('User') 863 user = relationship('User')
864 permission = relationship('Permission', lazy='joined') 864 permission = relationship('Permission', lazy='joined')
865 865
866 866
867 class UsersGroupRepoToPerm(Base, BaseModel): 867 class UsersGroupRepoToPerm(Base, BaseModel):
868 __tablename__ = 'users_group_repo_to_perm' 868 __tablename__ = 'users_group_repo_to_perm'
869 __table_args__ = (UniqueConstraint('repository_id', 'users_group_id', 'permission_id'), {'extend_existing':True}) 869 __table_args__ = (UniqueConstraint('repository_id', 'users_group_id', 'permission_id'), {'extend_existing': True})
870 users_group_to_perm_id = Column("users_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 870 users_group_to_perm_id = Column("users_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
871 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) 871 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
872 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) 872 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
873 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None) 873 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None)
874 874
899 permission = relationship('Permission') 899 permission = relationship('Permission')
900 900
901 901
902 class UserRepoGroupToPerm(Base, BaseModel): 902 class UserRepoGroupToPerm(Base, BaseModel):
903 __tablename__ = 'group_to_perm' 903 __tablename__ = 'group_to_perm'
904 __table_args__ = (UniqueConstraint('group_id', 'permission_id'), {'extend_existing':True}) 904 __table_args__ = (UniqueConstraint('group_id', 'permission_id'), {'extend_existing': True})
905 905
906 group_to_perm_id = Column("group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 906 group_to_perm_id = Column("group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
907 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) 907 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
908 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) 908 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
909 group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None) 909 group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None)
913 group = relationship('RepoGroup') 913 group = relationship('RepoGroup')
914 914
915 915
916 class UsersGroupRepoGroupToPerm(Base, BaseModel): 916 class UsersGroupRepoGroupToPerm(Base, BaseModel):
917 __tablename__ = 'users_group_repo_group_to_perm' 917 __tablename__ = 'users_group_repo_group_to_perm'
918 __table_args__ = (UniqueConstraint('group_id', 'permission_id'), {'extend_existing':True}) 918 __table_args__ = (UniqueConstraint('group_id', 'permission_id'), {'extend_existing': True})
919 919
920 users_group_repo_group_to_perm_id = Column("users_group_repo_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 920 users_group_repo_group_to_perm_id = Column("users_group_repo_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
921 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) 921 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
922 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) 922 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
923 group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None) 923 group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None)
927 group = relationship('RepoGroup') 927 group = relationship('RepoGroup')
928 928
929 929
930 class Statistics(Base, BaseModel): 930 class Statistics(Base, BaseModel):
931 __tablename__ = 'statistics' 931 __tablename__ = 'statistics'
932 __table_args__ = (UniqueConstraint('repository_id'), {'extend_existing':True}) 932 __table_args__ = (UniqueConstraint('repository_id'), {'extend_existing': True})
933 stat_id = Column("stat_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 933 stat_id = Column("stat_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
934 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True, default=None) 934 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True, default=None)
935 stat_on_revision = Column("stat_on_revision", Integer(), nullable=False) 935 stat_on_revision = Column("stat_on_revision", Integer(), nullable=False)
936 commit_activity = Column("commit_activity", LargeBinary(1000000), nullable=False)#JSON data 936 commit_activity = Column("commit_activity", LargeBinary(1000000), nullable=False)#JSON data
937 commit_activity_combined = Column("commit_activity_combined", LargeBinary(), nullable=False)#JSON data 937 commit_activity_combined = Column("commit_activity_combined", LargeBinary(), nullable=False)#JSON data
942 942
943 class UserFollowing(Base, BaseModel): 943 class UserFollowing(Base, BaseModel):
944 __tablename__ = 'user_followings' 944 __tablename__ = 'user_followings'
945 __table_args__ = (UniqueConstraint('user_id', 'follows_repository_id'), 945 __table_args__ = (UniqueConstraint('user_id', 'follows_repository_id'),
946 UniqueConstraint('user_id', 'follows_user_id') 946 UniqueConstraint('user_id', 'follows_user_id')
947 , {'extend_existing':True}) 947 , {'extend_existing': True})
948 948
949 user_following_id = Column("user_following_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 949 user_following_id = Column("user_following_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
950 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) 950 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
951 follows_repo_id = Column("follows_repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True, unique=None, default=None) 951 follows_repo_id = Column("follows_repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True, unique=None, default=None)
952 follows_user_id = Column("follows_user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) 952 follows_user_id = Column("follows_user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None)
963 return cls.query().filter(cls.follows_repo_id == repo_id) 963 return cls.query().filter(cls.follows_repo_id == repo_id)
964 964
965 965
966 class CacheInvalidation(Base, BaseModel): 966 class CacheInvalidation(Base, BaseModel):
967 __tablename__ = 'cache_invalidation' 967 __tablename__ = 'cache_invalidation'
968 __table_args__ = (UniqueConstraint('cache_key'), {'extend_existing':True}) 968 __table_args__ = (UniqueConstraint('cache_key'), {'extend_existing': True})
969 cache_id = Column("cache_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 969 cache_id = Column("cache_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
970 cache_key = Column("cache_key", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 970 cache_key = Column("cache_key", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
971 cache_args = Column("cache_args", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 971 cache_args = Column("cache_args", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
972 cache_active = Column("cache_active", Boolean(), nullable=True, unique=None, default=False) 972 cache_active = Column("cache_active", Boolean(), nullable=True, unique=None, default=False)
973 973
1033 Session.commit() 1033 Session.commit()
1034 1034
1035 1035
1036 class ChangesetComment(Base, BaseModel): 1036 class ChangesetComment(Base, BaseModel):
1037 __tablename__ = 'changeset_comments' 1037 __tablename__ = 'changeset_comments'
1038 __table_args__ = ({'extend_existing':True},) 1038 __table_args__ = ({'extend_existing': True},)
1039 comment_id = Column('comment_id', Integer(), nullable=False, primary_key=True) 1039 comment_id = Column('comment_id', Integer(), nullable=False, primary_key=True)
1040 repo_id = Column('repo_id', Integer(), ForeignKey('repositories.repo_id'), nullable=False) 1040 repo_id = Column('repo_id', Integer(), ForeignKey('repositories.repo_id'), nullable=False)
1041 revision = Column('revision', String(40), nullable=False) 1041 revision = Column('revision', String(40), nullable=False)
1042 line_no = Column('line_no', Unicode(10), nullable=True) 1042 line_no = Column('line_no', Unicode(10), nullable=True)
1043 f_path = Column('f_path', Unicode(1000), nullable=True) 1043 f_path = Column('f_path', Unicode(1000), nullable=True)
1046 modified_at = Column('modified_at', DateTime(), nullable=False, default=datetime.datetime.now) 1046 modified_at = Column('modified_at', DateTime(), nullable=False, default=datetime.datetime.now)
1047 1047
1048 author = relationship('User', lazy='joined') 1048 author = relationship('User', lazy='joined')
1049 repo = relationship('Repository') 1049 repo = relationship('Repository')
1050 1050
1051
1052 @classmethod 1051 @classmethod
1053 def get_users(cls, revision): 1052 def get_users(cls, revision):
1054 """ 1053 """
1055 Returns user associated with this changesetComment. ie those 1054 Returns user associated with this changesetComment. ie those
1056 who actually commented 1055 who actually commented
1059 :param revision: 1058 :param revision:
1060 """ 1059 """
1061 return Session.query(User)\ 1060 return Session.query(User)\
1062 .filter(cls.revision == revision)\ 1061 .filter(cls.revision == revision)\
1063 .join(ChangesetComment.author).all() 1062 .join(ChangesetComment.author).all()
1064 1063
1065 1064
1066 class Notification(Base, BaseModel): 1065 class Notification(Base, BaseModel):
1067 __tablename__ = 'notifications' 1066 __tablename__ = 'notifications'
1068 __table_args__ = ({'extend_existing':True}) 1067 __table_args__ = ({'extend_existing': True},)
1069 1068
1070 TYPE_CHANGESET_COMMENT = u'cs_comment' 1069 TYPE_CHANGESET_COMMENT = u'cs_comment'
1071 TYPE_MESSAGE = u'message' 1070 TYPE_MESSAGE = u'message'
1072 TYPE_MENTION = u'mention' 1071 TYPE_MENTION = u'mention'
1073 TYPE_REGISTRATION = u'registration' 1072 TYPE_REGISTRATION = u'registration'
1114 1113
1115 1114
1116 class UserNotification(Base, BaseModel): 1115 class UserNotification(Base, BaseModel):
1117 __tablename__ = 'user_to_notification' 1116 __tablename__ = 'user_to_notification'
1118 __table_args__ = (UniqueConstraint('user_id', 'notification_id'), 1117 __table_args__ = (UniqueConstraint('user_id', 'notification_id'),
1119 {'extend_existing':True}) 1118 {'extend_existing': True})
1120 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), primary_key=True) 1119 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), primary_key=True)
1121 notification_id = Column("notification_id", Integer(), ForeignKey('notifications.notification_id'), primary_key=True) 1120 notification_id = Column("notification_id", Integer(), ForeignKey('notifications.notification_id'), primary_key=True)
1122 read = Column('read', Boolean, default=False) 1121 read = Column('read', Boolean, default=False)
1123 sent_on = Column('sent_on', DateTime(timezone=False), nullable=True, unique=None) 1122 sent_on = Column('sent_on', DateTime(timezone=False), nullable=True, unique=None)
1124 1123
1131 Session.add(self) 1130 Session.add(self)
1132 1131
1133 1132
1134 class DbMigrateVersion(Base, BaseModel): 1133 class DbMigrateVersion(Base, BaseModel):
1135 __tablename__ = 'db_migrate_version' 1134 __tablename__ = 'db_migrate_version'
1136 __table_args__ = {'extend_existing':True} 1135 __table_args__ = {'extend_existing': True}
1137 repository_id = Column('repository_id', String(250), primary_key=True) 1136 repository_id = Column('repository_id', String(250), primary_key=True)
1138 repository_path = Column('repository_path', Text) 1137 repository_path = Column('repository_path', Text)
1139 version = Column('version', Integer) 1138 version = Column('version', Integer)