"""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