comparison rhodecode/model/db.py @ 878:859bc9e7a15d beta

Extended repo2db mapper with group creation via directory structures Added Groups model to db models fixed group name with filesystem name rather than MercurialRepository Instance
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 27 Dec 2010 00:09:12 +0100
parents 28a4bb11bb6f
children b19341623d48
comparison
equal deleted inserted replaced
877:bc9a73adc216 878:859bc9e7a15d
78 def __init__(self, k, v): 78 def __init__(self, k, v):
79 self.app_settings_name = k 79 self.app_settings_name = k
80 self.app_settings_value = v 80 self.app_settings_value = v
81 81
82 def __repr__(self): 82 def __repr__(self):
83 return "<RhodeCodeSetting('%s:%s')>" % (self.app_settings_name, 83 return "<%s('%s:%s')>" % (self.__class__.__name__,
84 self.app_settings_value) 84 self.app_settings_name, self.app_settings_value)
85 85
86 class RhodeCodeUi(Base, BaseModel): 86 class RhodeCodeUi(Base, BaseModel):
87 __tablename__ = 'rhodecode_ui' 87 __tablename__ = 'rhodecode_ui'
88 __table_args__ = {'useexisting':True} 88 __table_args__ = {'useexisting':True}
89 ui_id = Column("ui_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 89 ui_id = Column("ui_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
116 @property 116 @property
117 def full_contact(self): 117 def full_contact(self):
118 return '%s %s <%s>' % (self.name, self.lastname, self.email) 118 return '%s %s <%s>' % (self.name, self.lastname, self.email)
119 119
120 def __repr__(self): 120 def __repr__(self):
121 return "<User('id:%s:%s')>" % (self.user_id, self.username) 121 return "<%s('id:%s:%s')>" % (self.__class__.__name__,
122 self.user_id, self.username)
122 123
123 def update_lastlogin(self): 124 def update_lastlogin(self):
124 """Update user lastlogin""" 125 """Update user lastlogin"""
125 126
126 try: 127 try:
156 user_id = Column("user_id", Integer(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None) 157 user_id = Column("user_id", Integer(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None)
157 private = Column("private", Boolean(), nullable=True, unique=None, default=None) 158 private = Column("private", Boolean(), nullable=True, unique=None, default=None)
158 enable_statistics = Column("statistics", Boolean(), nullable=True, unique=None, default=True) 159 enable_statistics = Column("statistics", Boolean(), nullable=True, unique=None, default=True)
159 description = Column("description", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 160 description = Column("description", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
160 fork_id = Column("fork_id", Integer(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=False, default=None) 161 fork_id = Column("fork_id", Integer(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=False, default=None)
162 group_id = Column("group_id", Integer(), ForeignKey(u'groups.group_id'), nullable=True, unique=False, default=None)
161 163
162 user = relation('User') 164 user = relation('User')
163 fork = relation('Repository', remote_side=repo_id) 165 fork = relation('Repository', remote_side=repo_id)
166 group = relation('Group')
164 repo_to_perm = relation('RepoToPerm', cascade='all') 167 repo_to_perm = relation('RepoToPerm', cascade='all')
165 stats = relation('Statistics', cascade='all', uselist=False) 168 stats = relation('Statistics', cascade='all', uselist=False)
166 169
167 repo_followers = relation('UserFollowing', primaryjoin='UserFollowing.follows_repo_id==Repository.repo_id', cascade='all') 170 repo_followers = relation('UserFollowing', primaryjoin='UserFollowing.follows_repo_id==Repository.repo_id', cascade='all')
168 171
169 172
170 def __repr__(self): 173 def __repr__(self):
171 return "<Repository('%s:%s')>" % (self.repo_id, self.repo_name) 174 return "<%s('%s:%s')>" % (self.__class__.__name__,
175 self.repo_id, self.repo_name)
176
177 class Group(Base, BaseModel):
178 __tablename__ = 'groups'
179 __table_args__ = (UniqueConstraint('group_name'), {'useexisting':True},)
180
181 group_id = Column("group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
182 group_name = Column("group_name", String(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
183 group_parent_id = Column("group_parent_id", Integer(), ForeignKey(u'groups.group_id'), nullable=True, unique=None, default=None)
184
185 parent_group = relation('Group', remote_side=group_id)
186
187
188 def __init__(self, group_name='', parent_group=None):
189 self.group_name = group_name
190 self.parent_group = parent_group
191
192 def __repr__(self):
193 return "<%s('%s:%s')>" % (self.__class__.__name__, self.group_id,
194 self.group_name)
172 195
173 class Permission(Base, BaseModel): 196 class Permission(Base, BaseModel):
174 __tablename__ = 'permissions' 197 __tablename__ = 'permissions'
175 __table_args__ = {'useexisting':True} 198 __table_args__ = {'useexisting':True}
176 permission_id = Column("permission_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 199 permission_id = Column("permission_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
177 permission_name = Column("permission_name", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 200 permission_name = Column("permission_name", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
178 permission_longname = Column("permission_longname", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) 201 permission_longname = Column("permission_longname", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
179 202
180 def __repr__(self): 203 def __repr__(self):
181 return "<Permission('%s:%s')>" % (self.permission_id, self.permission_name) 204 return "<%s('%s:%s')>" % (self.__class__.__name__,
205 self.permission_id, self.permission_name)
182 206
183 class RepoToPerm(Base, BaseModel): 207 class RepoToPerm(Base, BaseModel):
184 __tablename__ = 'repo_to_perm' 208 __tablename__ = 'repo_to_perm'
185 __table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'useexisting':True}) 209 __table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'useexisting':True})
186 repo_to_perm_id = Column("repo_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) 210 repo_to_perm_id = Column("repo_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
244 self.cache_key = cache_key 268 self.cache_key = cache_key
245 self.cache_args = cache_args 269 self.cache_args = cache_args
246 self.cache_active = False 270 self.cache_active = False
247 271
248 def __repr__(self): 272 def __repr__(self):
249 return "<CacheInvalidation('%s:%s')>" % (self.cache_id, self.cache_key) 273 return "<%s('%s:%s')>" % (self.__class__.__name__,
274 self.cache_id, self.cache_key)
250 275
251 class DbMigrateVersion(Base, BaseModel): 276 class DbMigrateVersion(Base, BaseModel):
252 __tablename__ = 'db_migrate_version' 277 __tablename__ = 'db_migrate_version'
253 __table_args__ = {'useexisting':True} 278 __table_args__ = {'useexisting':True}
254 repository_id = Column('repository_id', String(250), primary_key=True) 279 repository_id = Column('repository_id', String(250), primary_key=True)