Browse Source

update base user models

master
Brett Langdon 10 years ago
parent
commit
d1d5c7a4bf
4 changed files with 38 additions and 12 deletions
  1. +13
    -9
      {{cookiecutter.project_name}}/migrations/versions/4b1620436a9f_initial_migration.py
  2. +1
    -0
      {{cookiecutter.project_name}}/requirements.txt
  3. +22
    -2
      {{cookiecutter.project_name}}/{{cookiecutter.project_name}}/models/__init__.py
  4. +2
    -1
      {{cookiecutter.project_name}}/{{cookiecutter.project_name}}/models/user.py

{{cookiecutter.project_name}}/migrations/versions/70bd704dcb5c_setup_user_and_role_tables.py → {{cookiecutter.project_name}}/migrations/versions/4b1620436a9f_initial_migration.py View File


+ 1
- 0
{{cookiecutter.project_name}}/requirements.txt View File

@ -1,3 +1,4 @@
blinker==1.4
Flask==0.11.1
# Waiting on next release for a fix for libsass
-e git+https://github.com/miracle2k/flask-assets@36da5c90cf99293ac632cfab58db52cab1c8cc83#egg=flask_assets


+ 22
- 2
{{cookiecutter.project_name}}/{{cookiecutter.project_name}}/models/__init__.py View File

@ -1,10 +1,30 @@
import datetime
import uuid
from sqlalchemy import event
from sqlalchemy.ext.declarative import AbstractConcreteBase
from .. import db
class Base(AbstractConcreteBase):
def __init__(self, id=None, *args, **kwargs):
created_at = db.Column(db.DateTime(timezone=True), nullable=False)
updated_at = db.Column(db.DateTime(timezone=True), nullable=False)
def __init__(self, id=None, created_at=None, updated_at=None, *args, **kwargs):
if id is None:
id = str(uuid.uuid4())
super(Base, self).__init__(id=id, *args, **kwargs)
if created_at is None:
created_at = datetime.datetime.now(tz=datetime.timezone.utc)
if updated_at is None:
updated_at = created_at
super(Base, self).__init__(id=id, created_at=created_at, updated_at=updated_at, *args, **kwargs)
# Before we update our model, update its `updated_at` value
@event.listens_for(Base, 'before_update', propagate=True)
def base_update_updated_at(mapper, connection, model):
"""When we update a base model, update the `updated_at` timestamp"""
model.updated_at = datetime.datetime.now(tz=datetime.timezone.utc)

+ 2
- 1
{{cookiecutter.project_name}}/{{cookiecutter.project_name}}/models/user.py View File

@ -1,8 +1,8 @@
from flask_security import UserMixin
from sqlalchemy.dialects.postgresql import UUID
from . import Base
from .. import db
from . import Base
from .user_role import user_role_map
@ -12,5 +12,6 @@ class User(Base, db.Model, UserMixin):
password = db.Column(db.String(255))
active = db.Column(db.Boolean())
confirmed_at = db.Column(db.DateTime())
roles = db.relationship('Role', secondary=user_role_map,
backref=db.backref('users', lazy='dynamic'))

Loading…
Cancel
Save