Mercurial > kallithea
comparison rhodecode/model/__init__.py @ 2521:e4d2271e1193 beta
Added get_all method to BaseModel, requires to define cls variable in child models
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 01 Jul 2012 12:40:00 +0200 |
parents | d3ac7491a5c8 |
children | 169807710db2 |
comparison
equal
deleted
inserted
replaced
2520:a1e156503afe | 2521:e4d2271e1193 |
---|---|
40 # | 40 # |
41 # You should have received a copy of the GNU General Public License | 41 # You should have received a copy of the GNU General Public License |
42 # along with this program. If not, see <http://www.gnu.org/licenses/>. | 42 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
43 | 43 |
44 import logging | 44 import logging |
45 from rhodecode.model.db import User, Repository, Permission | |
46 from rhodecode.model import meta | 45 from rhodecode.model import meta |
47 | 46 |
48 log = logging.getLogger(__name__) | 47 log = logging.getLogger(__name__) |
49 | 48 |
50 | 49 |
66 into instance of model | 65 into instance of model |
67 | 66 |
68 :param sa: If passed it reuses this session instead of creating a new one | 67 :param sa: If passed it reuses this session instead of creating a new one |
69 """ | 68 """ |
70 | 69 |
70 cls = None # override in child class | |
71 | |
71 def __init__(self, sa=None): | 72 def __init__(self, sa=None): |
72 if sa is not None: | 73 if sa is not None: |
73 self.sa = sa | 74 self.sa = sa |
74 else: | 75 else: |
75 self.sa = meta.Session | 76 self.sa = meta.Session() |
76 | 77 |
77 def _get_instance(self, cls, instance, callback=None): | 78 def _get_instance(self, cls, instance, callback=None): |
78 """ | 79 """ |
79 Get's instance of given cls using some simple lookup mechanism. | 80 Get's instance of given cls using some simple lookup mechanism. |
80 | 81 |
102 Helper method to get user by ID, or username fallback | 103 Helper method to get user by ID, or username fallback |
103 | 104 |
104 :param user: | 105 :param user: |
105 :type user: UserID, username, or User instance | 106 :type user: UserID, username, or User instance |
106 """ | 107 """ |
108 from rhodecode.model.db import User | |
107 return self._get_instance(User, user, | 109 return self._get_instance(User, user, |
108 callback=User.get_by_username) | 110 callback=User.get_by_username) |
109 | 111 |
110 def _get_repo(self, repository): | 112 def _get_repo(self, repository): |
111 """ | 113 """ |
112 Helper method to get repository by ID, or repository name | 114 Helper method to get repository by ID, or repository name |
113 | 115 |
114 :param repository: | 116 :param repository: |
115 :type repository: RepoID, repository name or Repository Instance | 117 :type repository: RepoID, repository name or Repository Instance |
116 """ | 118 """ |
119 from rhodecode.model.db import Repository | |
117 return self._get_instance(Repository, repository, | 120 return self._get_instance(Repository, repository, |
118 callback=Repository.get_by_repo_name) | 121 callback=Repository.get_by_repo_name) |
119 | 122 |
120 def _get_perm(self, permission): | 123 def _get_perm(self, permission): |
121 """ | 124 """ |
122 Helper method to get permission by ID, or permission name | 125 Helper method to get permission by ID, or permission name |
123 | 126 |
124 :param permission: | 127 :param permission: |
125 :type permission: PermissionID, permission_name or Permission instance | 128 :type permission: PermissionID, permission_name or Permission instance |
126 """ | 129 """ |
130 from rhodecode.model.db import Permission | |
127 return self._get_instance(Permission, permission, | 131 return self._get_instance(Permission, permission, |
128 callback=Permission.get_by_key) | 132 callback=Permission.get_by_key) |
133 | |
134 def get_all(self): | |
135 """ | |
136 Returns all instances of what is defined in `cls` class variable | |
137 """ | |
138 return self.cls.getAll() |