Commit e432b39ffc7d1d465d443db00be12fe16a34f073
- Diff rendering mode:
- inline
- side by side
.gitignore
(1 / 0)
  | |||
1 | 1 | *.pyc | |
2 | config.py |
__init__.py
(0 / 6)
  | |||
1 | 1 | from user import User | |
2 | 2 | from group import Group | |
3 | 3 | from membership import Membership | |
4 | |||
5 | from flask import g | ||
6 | |||
7 | def setup_app(app): | ||
8 | db = app.db | ||
9 | g.db = db |
group.py
(3 / 1)
  | |||
6 | 6 | ||
7 | 7 | from datetime import datetime | |
8 | 8 | ||
9 | from .config import db | ||
10 | |||
9 | 11 | class Group(db.Model): | |
10 | 12 | """ | |
11 | 13 | docstring | |
… | … | ||
19 | 19 | created = db.Column(db.DateTime, default=datetime.utcnow) | |
20 | 20 | created_by = db.Column(db.Integer, db.ForeignKey('users.id')) | |
21 | 21 | ||
22 | creator = db.relationship('User', backref='groups', lazy='dynamic') | ||
22 | creator = db.relationship('User', backref='groups') | ||
23 | 23 | ||
24 | 24 | def __init__(self, name, creator): | |
25 | 25 | self.name = name |
membership.py
(4 / 2)
  | |||
3 | 3 | ||
4 | 4 | from datetime import datetime | |
5 | 5 | ||
6 | from .config import db | ||
7 | |||
6 | 8 | class Membership(db.Model): | |
7 | 9 | """ docstring """ | |
8 | 10 | ||
… | … | ||
15 | 15 | gid = db.Column(db.Integer, db.ForeignKey('groups.id')) | |
16 | 16 | created = db.Column(db.DateTime, default=datetime.utcnow) | |
17 | 17 | ||
18 | user = db.relationship('User', backref='memberships', lazy='dynamic') | ||
19 | group = db.relationship('Group', backref='memberships', lazy='dynamic') | ||
18 | user = db.relationship('User', backref='memberships') | ||
19 | group = db.relationship('Group', backref='memberships') | ||
20 | 20 | ||
21 | 21 | def __init__(self, user, group): | |
22 | 22 | self.user = user |
sample_config.py
(14 / 0)
  | |||
1 | # Copy the contents of this file to config.py | ||
2 | |||
3 | # Import the SQLAlchemy database (db) object from your application | ||
4 | # the object which has he Model and Column classes | ||
5 | # Even if your application calls it something else, import it, and assign it to | ||
6 | # db: like: | ||
7 | # from yourapp import database | ||
8 | # db = database | ||
9 | |||
10 | from yourapp import db | ||
11 | |||
12 | # keep this line as it is..this passes the database object to the user | ||
13 | # management modules | ||
14 | __all__ = ['db'] |
user.py
(30 / 5)
  | |||
2 | 2 | # User Management::User | |
3 | 3 | ||
4 | 4 | from datetime import datetime | |
5 | from flask import current_app, g | ||
5 | from flask import session | ||
6 | from hashlib import md5 | ||
6 | 7 | ||
8 | from .config import db | ||
7 | 9 | ||
8 | db = g.db | ||
9 | |||
10 | |||
11 | 10 | class User(db.Model): | |
12 | 11 | """ docstring """ | |
13 | 12 | ||
… | … | ||
22 | 22 | self.username = username | |
23 | 23 | self.email = email | |
24 | 24 | ||
25 | def update(self, **kwargs): | ||
26 | if kwargs.get('username'): | ||
27 | self.username = kwargs.get('username') | ||
28 | if kwargs.get('last_active'): | ||
29 | print 'Updated last_active timestamp for user %s' % self | ||
30 | self.last_active = kwargs.get('last_active') | ||
31 | |||
32 | self.persist() | ||
33 | |||
25 | 34 | # persist current object in the database | |
26 | 35 | def persist(self): | |
27 | 36 | db.session.add(self) | |
… | … | ||
41 | 41 | db.session.delete(self) | |
42 | 42 | db.session.commit() | |
43 | 43 | ||
44 | @staticmethod | ||
45 | def getCurrentUser(): | ||
46 | if 'email' in session: | ||
47 | user = User.query.filter_by(email=session['email']).first() | ||
48 | user.update(last_active=datetime.utcnow()) | ||
49 | return user | ||
50 | return None | ||
51 | |||
52 | def to_dict(self): | ||
53 | return { | ||
54 | 'id': self.id, | ||
55 | 'username': self.username, | ||
56 | 'email': self.email, | ||
57 | 'created': self.created.isoformat(), | ||
58 | 'last_active': self.last_active.isoformat() | ||
59 | } | ||
60 | |||
44 | 61 | def __repr__(self): | |
45 | return '<User %r %r>' % (self.username, self.email) | ||
62 | return '<User:: %r %r>' % (self.username, self.email) |