comparison pylons_app/model/db.py @ 442:d66a7fa7689b

moved loged in user propagation out of forms, update user model to get auto update last login. bugfix with redirect log fixed forms logic a little bit some other tweeks
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 01 Sep 2010 23:32:47 +0200
parents 3ed2d46a2ca7
children 7c978511c951
comparison
equal deleted inserted replaced
441:c59c4d4323e7 442:d66a7fa7689b
1 from pylons_app.model.meta import Base 1 from pylons_app.model.meta import Base
2 from sqlalchemy import *
2 from sqlalchemy.orm import relation, backref 3 from sqlalchemy.orm import relation, backref
3 from sqlalchemy import * 4 from sqlalchemy.orm.session import Session
4 from vcs.utils.lazy import LazyProperty 5 from vcs.utils.lazy import LazyProperty
6 import logging
7
8 log = logging.getLogger(__name__)
5 9
6 class HgAppSettings(Base): 10 class HgAppSettings(Base):
7 __tablename__ = 'hg_app_settings' 11 __tablename__ = 'hg_app_settings'
8 __table_args__ = (UniqueConstraint('app_settings_name'), {'useexisting':True}) 12 __table_args__ = (UniqueConstraint('app_settings_name'), {'useexisting':True})
9 app_settings_id = Column("app_settings_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True) 13 app_settings_id = Column("app_settings_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
40 def full_contact(self): 44 def full_contact(self):
41 return '%s %s <%s>' % (self.name, self.lastname, self.email) 45 return '%s %s <%s>' % (self.name, self.lastname, self.email)
42 46
43 def __repr__(self): 47 def __repr__(self):
44 return "<User('id:%s:%s')>" % (self.user_id, self.username) 48 return "<User('id:%s:%s')>" % (self.user_id, self.username)
49
50 def update_lastlogin(self):
51 """Update user lastlogin"""
52 import datetime
53
54 try:
55 session = Session.object_session(self)
56 self.last_login = datetime.datetime.now()
57 session.add(self)
58 session.commit()
59 log.debug('updated user %s lastlogin',self)
60 except Exception:
61 session.rollback()
62
45 63
46 class UserLog(Base): 64 class UserLog(Base):
47 __tablename__ = 'user_logs' 65 __tablename__ = 'user_logs'
48 __table_args__ = {'useexisting':True} 66 __table_args__ = {'useexisting':True}
49 user_log_id = Column("user_log_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True) 67 user_log_id = Column("user_log_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)