]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/blobdiff - wradmin/model/__init__.py
Use flask_sqlalchemy to manage the database connection.
[philipp/winterrodeln/wradmin.git] / wradmin / model / __init__.py
index 6b99d47426406c5e1c8782ed3e469c06e10bf585..bb8cf5afc18a585b3d9467e342a7aba752426c38 100644 (file)
@@ -1,76 +1,61 @@
 """Model of wradmin"""
+from flask import Flask
+from flask_sqlalchemy import SQLAlchemy
 from sqlalchemy import orm
 from flask_login import UserMixin
-from wradmin.model import meta
 from wrpylib import mwdb, wrmwdb
 
 
-def init_model(engine):
-    """Call me before using any of the tables or classes in the model"""
-    meta.Session.configure(bind=engine)
-    meta.engine = engine
-
-
-wrreport_table = wrmwdb.wrreport_table(meta.metadata)
-wrreportcache_table = wrmwdb.wrreportcache_table(meta.metadata)
-wrsledruncache_table = wrmwdb.wrsledruncache_table(meta.metadata)
-wrinncache_table = wrmwdb.wrinncache_table(meta.metadata)
-page_table = mwdb.page_table(meta.metadata)
-revision_table = mwdb.revision_table(meta.metadata)
-text_table = mwdb.text_table(meta.metadata)
-user_table = mwdb.user_table(meta.metadata)
-user_groups_table = mwdb.user_groups_table(meta.metadata)
-categorylinks_table = mwdb.categorylinks_table(meta.metadata)
-
-
-class WrReport(object):
-    pass
-
-
-# Old version (not mapped)
-class WrSleddingCache1_2(object):
-    pass
-
-
-class WrSledrunCache(object):
-    pass
-
-
-# Old version (not mapped)
-class WrInnCache1_2(object):
+class WrReport:
     pass
 
 
-class WrInnCache(object):
+class WrSledrunCache:
     pass
 
 
-# Page (not mapped)
-class Page(object):
+class WrInnCache:
     pass
 
 
-# MediaWiki text table
-class MwText(object):
+class MwText:
+    """MediaWiki text table"""
     pass
 
 
-# MediaWiki user table
 class MwUser(UserMixin):
+    """MediaWiki user table"""
     def get_id(self):
         return str(self.user_id)
 
 
-# MediaWiki groups
 class MwUserGroups:
-    pass
-
-
-orm.mapper(WrReport, wrreport_table)
-# We could add a relation but we don't need it yet:
-# orm.mapper(WrSledrunCache, wrsledruncache_table, properties = {'reports': orm.relation(WrReport, backref='sledding')})
-orm.mapper(WrSledrunCache, wrsledruncache_table)
-orm.mapper(WrInnCache, wrinncache_table)
-orm.mapper(MwText, text_table)
-orm.mapper(MwUserGroups, user_groups_table)
-orm.mapper(MwUser, user_table)
+    """MediaWiki groups"""
+    pass
+
+
+def init_db(app: Flask) -> SQLAlchemy:
+    db = SQLAlchemy(app)
+
+    wrreport_table = wrmwdb.wrreport_table(db.metadata)
+    wrreportcache_table = wrmwdb.wrreportcache_table(db.metadata)
+    wrsledruncache_table = wrmwdb.wrsledruncache_table(db.metadata)
+    wrinncache_table = wrmwdb.wrinncache_table(db.metadata)
+    page_table = mwdb.page_table(db.metadata)
+    revision_table = mwdb.revision_table(db.metadata)
+    text_table = mwdb.text_table(db.metadata)
+    user_table = mwdb.user_table(db.metadata)
+    user_groups_table = mwdb.user_groups_table(db.metadata)
+    categorylinks_table = mwdb.categorylinks_table(db.metadata)
+
+    orm.mapper(WrReport, wrreport_table)
+    # We could add a relation but we don't need it yet:
+    # orm.mapper(WrSledrunCache, wrsledruncache_table,
+    #            properties = {'reports': orm.relation(WrReport, backref='sledding')})
+    orm.mapper(WrSledrunCache, wrsledruncache_table)
+    orm.mapper(WrInnCache, wrinncache_table)
+    orm.mapper(MwText, text_table)
+    orm.mapper(MwUserGroups, user_groups_table)
+    orm.mapper(MwUser, user_table)
+
+    return db