Mercurial > kallithea
comparison rhodecode/model/db.py @ 1460:b50348816a80 beta
Added more advanced hook management into rhodecode admin settings
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 09 Sep 2011 20:30:14 +0300 |
parents | 88d13c1c6a55 |
children | ad5a543a9b2f |
comparison
equal
deleted
inserted
replaced
1459:6691d4097344 | 1460:b50348816a80 |
---|---|
123 return Session.query(cls) | 123 return Session.query(cls) |
124 | 124 |
125 @classmethod | 125 @classmethod |
126 def get(cls, id_): | 126 def get(cls, id_): |
127 return Session.query(cls).get(id_) | 127 return Session.query(cls).get(id_) |
128 | 128 |
129 @classmethod | |
130 def delete(cls, id_): | |
131 obj = Session.query(cls).get(id_) | |
132 Session.delete(obj) | |
133 Session.commit() | |
134 | |
129 | 135 |
130 class RhodeCodeSettings(Base, BaseModel): | 136 class RhodeCodeSettings(Base, BaseModel): |
131 __tablename__ = 'rhodecode_settings' | 137 __tablename__ = 'rhodecode_settings' |
132 __table_args__ = (UniqueConstraint('app_settings_name'), {'extend_existing':True}) | 138 __table_args__ = (UniqueConstraint('app_settings_name'), {'extend_existing':True}) |
133 app_settings_id = Column("app_settings_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 139 app_settings_id = Column("app_settings_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
179 return fd | 185 return fd |
180 | 186 |
181 | 187 |
182 class RhodeCodeUi(Base, BaseModel): | 188 class RhodeCodeUi(Base, BaseModel): |
183 __tablename__ = 'rhodecode_ui' | 189 __tablename__ = 'rhodecode_ui' |
184 __table_args__ = {'extend_existing':True} | 190 __table_args__ = (UniqueConstraint('ui_key'), {'extend_existing':True}) |
191 | |
192 HOOK_UPDATE = 'changegroup.update' | |
193 HOOK_REPO_SIZE = 'changegroup.repo_size' | |
194 HOOK_PUSH = 'pretxnchangegroup.push_logger' | |
195 HOOK_PULL = 'preoutgoing.pull_logger' | |
196 | |
185 ui_id = Column("ui_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 197 ui_id = Column("ui_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
186 ui_section = Column("ui_section", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 198 ui_section = Column("ui_section", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
187 ui_key = Column("ui_key", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 199 ui_key = Column("ui_key", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
188 ui_value = Column("ui_value", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 200 ui_value = Column("ui_value", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
189 ui_active = Column("ui_active", Boolean(), nullable=True, unique=None, default=True) | 201 ui_active = Column("ui_active", Boolean(), nullable=True, unique=None, default=True) |
190 | 202 |
191 | 203 |
192 @classmethod | 204 @classmethod |
193 def get_by_key(cls, key): | 205 def get_by_key(cls, key): |
194 return Session.query(cls).filter(cls.ui_key == key) | 206 return Session.query(cls).filter(cls.ui_key == key) |
207 | |
208 | |
209 @classmethod | |
210 def get_builtin_hooks(cls): | |
211 q = cls.query() | |
212 q = q.filter(cls.ui_key.in_([cls.HOOK_UPDATE, | |
213 cls.HOOK_REPO_SIZE, | |
214 cls.HOOK_PUSH, cls.HOOK_PULL])) | |
215 return q.all() | |
216 | |
217 @classmethod | |
218 def get_custom_hooks(cls): | |
219 q = cls.query() | |
220 q = q.filter(~cls.ui_key.in_([cls.HOOK_UPDATE, | |
221 cls.HOOK_REPO_SIZE, | |
222 cls.HOOK_PUSH, cls.HOOK_PULL])) | |
223 q = q.filter(cls.ui_section == 'hooks') | |
224 return q.all() | |
225 | |
226 @classmethod | |
227 def create_or_update_hook(cls, key, val): | |
228 new_ui = cls.get_by_key(key).scalar() or cls() | |
229 new_ui.ui_section = 'hooks' | |
230 new_ui.ui_active = True | |
231 new_ui.ui_key = key | |
232 new_ui.ui_value = val | |
233 | |
234 Session.add(new_ui) | |
235 Session.commit() | |
195 | 236 |
196 | 237 |
197 class User(Base, BaseModel): | 238 class User(Base, BaseModel): |
198 __tablename__ = 'users' | 239 __tablename__ = 'users' |
199 __table_args__ = (UniqueConstraint('username'), UniqueConstraint('email'), {'extend_existing':True}) | 240 __table_args__ = (UniqueConstraint('username'), UniqueConstraint('email'), {'extend_existing':True}) |