28 lines
669 B
Python
28 lines
669 B
Python
from flask_sqlalchemy import SQLAlchemy
|
|
from datetime import datetime
|
|
|
|
db = SQLAlchemy()
|
|
|
|
class Session(db.Model):
|
|
__tablename__ = 'sessions'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
user = db.Column(db.String)
|
|
|
|
start = db.Column(db.DateTime, default=datetime.utcnow)
|
|
end = db.Column(db.DateTime)
|
|
|
|
@classmethod
|
|
def get_current(cls):
|
|
return Session.query.filter(Session.end.is_(None)).first()
|
|
|
|
@property
|
|
def interval(self):
|
|
if self.end:
|
|
return self.end - self.start
|
|
return datetime.utcnow() - self.start
|
|
|
|
def finish(self):
|
|
if not self.end:
|
|
self.end = datetime.utcnow()
|