diff options
Diffstat (limited to 'cli/app/sql/models/page.py')
| -rw-r--r-- | cli/app/sql/models/page.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/cli/app/sql/models/page.py b/cli/app/sql/models/page.py new file mode 100644 index 0000000..09470b5 --- /dev/null +++ b/cli/app/sql/models/page.py @@ -0,0 +1,34 @@ +from sqlalchemy import create_engine, Table, Column, Text, String, Integer, DateTime, JSON +import sqlalchemy.sql.functions as func +from sqlalchemy_utc import UtcDateTime, utcnow +from wtforms_alchemy import ModelForm + +from app.sql.common import db, Base, Session + +from app.settings import app_cfg + +class Page(Base): + """Table for storing references to pages""" + __tablename__ = 'pages' + id = Column(Integer, primary_key=True) + graph_id = Column(Integer, ForeignKey('graph.id'), nullable=True) + path = Column(String(64, convert_unicode=True), nullable=False) + title = Column(String(64, convert_unicode=True), nullable=False) + description = Column(Text(convert_unicode=True), nullable=False) + settings = Column(JSON, default={}, nullable=True) + created_at = Column(UtcDateTime(), default=utcnow()) + updated_at = Column(UtcDateTime(), default=utcnow()) + + tiles = relationship("Tile", secondary="tiles", lazy='dynamic') + + def toJSON(self): + return { + 'id': self.id, + 'graph_id': self.graph_id, + 'path': self.path, + 'title': self.title, + 'description': self.description, + 'settings': self.settings, + 'created_at': self.created_at, + 'updated_at': self.updated_at, + } |
