summaryrefslogtreecommitdiff
path: root/cli/app/sql/models/tile.py
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-06-01 16:22:18 +0200
committerJules Laplace <julescarbon@gmail.com>2020-06-01 16:22:18 +0200
commit1a7370c19a7eed6a5f0f48e270092f9b3caebbc1 (patch)
treeff1ac87d40bde43648e579e43543d3e1646d00d4 /cli/app/sql/models/tile.py
parent0890fdd951d021308550a0db2e7b6f2593512957 (diff)
models and controllers
Diffstat (limited to 'cli/app/sql/models/tile.py')
-rw-r--r--cli/app/sql/models/tile.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/cli/app/sql/models/tile.py b/cli/app/sql/models/tile.py
new file mode 100644
index 0000000..7ca311d
--- /dev/null
+++ b/cli/app/sql/models/tile.py
@@ -0,0 +1,35 @@
+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.utils.file_utils import sha256_tree
+from app.settings import app_cfg
+
+from os.path import join
+
+class Tile(Base):
+ """Table for storing references to tiles"""
+ __tablename__ = 'tiles'
+ id = Column(Integer, primary_key=True)
+ graph_id = Column(Integer, ForeignKey('graph.id'), nullable=True)
+ page_id = Column(Integer, ForeignKey('page.id'), nullable=True)
+ target_page_id = Column(Integer, ForeignKey('page.id'), nullable=True)
+ type = Column(String(16, convert_unicode=True), nullable=False)
+ settings = Column(JSON, default={}, nullable=True)
+ created_at = Column(UtcDateTime(), default=utcnow())
+ updated_at = Column(UtcDateTime(), default=utcnow())
+
+ def toJSON(self):
+ return {
+ 'id': self.id,
+ 'graph_id': self.graph_id,
+ 'page_id': self.page_id,
+ 'target_page_id': self.target_page_id,
+ 'type': self.type,
+ 'settings': self.settings,
+ 'created_at': self.created_at,
+ 'updated_at': self.updated_at,
+ }