##// END OF EJS Templates
Models code cleanups
marcink -
r759:a7f50911 beta
parent child Browse files
Show More
@@ -1,27 +1,52 b''
1 """The application's model objects"""
1 # -*- coding: utf-8 -*-
2 """
3 package.rhodecode.model.__init__
4 ~~~~~~~~~~~~~~
5 The application's model objects
6
7 :created_on: Nov 25, 2010
8 :author: marcink
9 :copyright: (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
10 :license: GPLv3, see COPYING for more details.
11
12
13 :example:
14 from paste.deploy import appconfig
15 from pylons import config
16 from sqlalchemy import engine_from_config
17 from rhodecode.config.environment import load_environment
18
19 conf = appconfig('config:development.ini', relative_to = './../../')
20 load_environment(conf.global_conf, conf.local_conf)
21
22 engine = engine_from_config(config, 'sqlalchemy.')
23 init_model(engine)
24 #RUN YOUR CODE HERE
25
26 """
27 # This program is free software; you can redistribute it and/or
28 # modify it under the terms of the GNU General Public License
29 # as published by the Free Software Foundation; version 2
30 # of the License or (at your opinion) any later version of the license.
31 #
32 # This program is distributed in the hope that it will be useful,
33 # but WITHOUT ANY WARRANTY; without even the implied warranty of
34 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35 # GNU General Public License for more details.
36 #
37 # You should have received a copy of the GNU General Public License
38 # along with this program; if not, write to the Free Software
39 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
40 # MA 02110-1301, USA.
41
2 42 import logging
3 43 from rhodecode.model import meta
4 44 log = logging.getLogger(__name__)
5 45
6 46 def init_model(engine):
7 47 """Call me before using any of the tables or classes in the model"""
8 log.info("INITIALIZING DB MODELS")
48 log.info("initializing db models for %s", engine)
9 49 meta.Base.metadata.bind = engine
10 #meta.Base2.metadata.bind = engine2
11
12 #THIS IS A TEST FOR EXECUTING SCRIPT AND LOAD PYLONS APPLICATION GLOBALS
13 #from paste.deploy import appconfig
14 #from pylons import config
15 #from sqlalchemy import engine_from_config
16 #from rhodecode.config.environment import load_environment
17 #
18 #conf = appconfig('config:development.ini', relative_to = './../../')
19 #load_environment(conf.global_conf, conf.local_conf)
20 #
21 #engine = engine_from_config(config, 'sqlalchemy.')
22 #init_model(engine)
23 # DO SOMETHING
24
25 50
26 51 class BaseModel(object):
27 52
@@ -1,9 +1,38 b''
1 from rhodecode.model.meta import Base
1 # -*- coding: utf-8 -*-
2 """
3 package.rhodecode.model.db
4 ~~~~~~~~~~~~~~
5
6 Database Models for RhodeCode
7 :created_on: Apr 08, 2010
8 :author: marcink
9 :copyright: (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
10 :license: GPLv3, see COPYING for more details.
11 """
12 # This program is free software; you can redistribute it and/or
13 # modify it under the terms of the GNU General Public License
14 # as published by the Free Software Foundation; version 2
15 # of the License or (at your opinion) any later version of the license.
16 #
17 # This program is distributed in the hope that it will be useful,
18 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 # GNU General Public License for more details.
21 #
22 # You should have received a copy of the GNU General Public License
23 # along with this program; if not, write to the Free Software
24 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
25 # MA 02110-1301, USA.
26 import logging
27 import datetime
28
2 29 from sqlalchemy import *
30 from sqlalchemy.exc import DatabaseError
3 31 from sqlalchemy.orm import relation, backref
4 32 from sqlalchemy.orm.session import Session
5 from vcs.utils.lazy import LazyProperty
6 import logging
33
34 from rhodecode.model.meta import Base
35
7 36 log = logging.getLogger(__name__)
8 37
9 38 class RhodeCodeSettings(Base):
@@ -51,7 +80,7 b' class User(Base):'
51 80 repositories = relation('Repository')
52 81 user_followers = relation('UserFollowing', primaryjoin='UserFollowing.follows_user_id==User.user_id', cascade='all')
53 82
54 @LazyProperty
83 @property
55 84 def full_contact(self):
56 85 return '%s %s <%s>' % (self.name, self.lastname, self.email)
57 86
@@ -60,7 +89,6 b' class User(Base):'
60 89
61 90 def update_lastlogin(self):
62 91 """Update user lastlogin"""
63 import datetime
64 92
65 93 try:
66 94 session = Session.object_session(self)
@@ -68,7 +96,7 b' class User(Base):'
68 96 session.add(self)
69 97 session.commit()
70 98 log.debug('updated user %s lastlogin', self.username)
71 except Exception:
99 except (DatabaseError,):
72 100 session.rollback()
73 101
74 102
@@ -1,8 +1,14 b''
1 #!/usr/bin/env python
2 # encoding: utf-8
3 # Model for permissions
4 # Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
1 # -*- coding: utf-8 -*-
2 """
3 package.rhodecode.model.permission
4 ~~~~~~~~~~~~~~
5 5
6 permissions model for RhodeCode
7 :created_on: Aug 20, 2010
8 :author: marcink
9 :copyright: (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
10 :license: GPLv3, see COPYING for more details.
11 """
6 12 # This program is free software; you can redistribute it and/or
7 13 # modify it under the terms of the GNU General Public License
8 14 # as published by the Free Software Foundation; version 2
@@ -17,17 +23,16 b''
17 23 # along with this program; if not, write to the Free Software
18 24 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 25 # MA 02110-1301, USA.
20 """
21 Created on Aug 20, 2010
22 Model for permissions
23 :author: marcink
24 """
26
27 import logging
28 import traceback
29
30 from sqlalchemy.exc import DatabaseError
25 31
26 32 from rhodecode.model import BaseModel
27 33 from rhodecode.model.db import User, Permission, UserToPerm, RepoToPerm
28 34 from rhodecode.model.caching_query import FromCache
29 import logging
30 import traceback
35
31 36 log = logging.getLogger(__name__)
32 37
33 38
@@ -90,7 +95,7 b' class PermissionModel(BaseModel):'
90 95
91 96
92 97 self.sa.commit()
93 except:
98 except (DatabaseError,):
94 99 log.error(traceback.format_exc())
95 100 self.sa.rollback()
96 101 raise
General Comments 0
You need to be logged in to leave comments. Login now