2 from flask import Flask
3 from flask_sqlalchemy import SQLAlchemy
4 from sqlalchemy import orm
5 from flask_login import UserMixin
6 from wrpylib import mwdb, wrmwdb
22 """MediaWiki text table"""
26 class MwUser(UserMixin):
27 """MediaWiki user table"""
29 return str(self.user_id)
33 """MediaWiki groups"""
37 def init_db(app: Flask) -> SQLAlchemy:
40 wrreport_table = wrmwdb.wrreport_table(db.metadata)
41 wrreportcache_table = wrmwdb.wrreportcache_table(db.metadata)
42 wrsledruncache_table = wrmwdb.wrsledruncache_table(db.metadata)
43 wrinncache_table = wrmwdb.wrinncache_table(db.metadata)
44 page_table = mwdb.page_table(db.metadata)
45 revision_table = mwdb.revision_table(db.metadata)
46 text_table = mwdb.text_table(db.metadata)
47 user_table = mwdb.user_table(db.metadata)
48 user_groups_table = mwdb.user_groups_table(db.metadata)
49 categorylinks_table = mwdb.categorylinks_table(db.metadata)
51 orm.mapper(WrReport, wrreport_table)
52 # We could add a relation but we don't need it yet:
53 # orm.mapper(WrSledrunCache, wrsledruncache_table,
54 # properties = {'reports': orm.relation(WrReport, backref='sledding')})
55 orm.mapper(WrSledrunCache, wrsledruncache_table)
56 orm.mapper(WrInnCache, wrinncache_table)
57 orm.mapper(MwText, text_table)
58 orm.mapper(MwUserGroups, user_groups_table)
59 orm.mapper(MwUser, user_table)