Add new lexicon model to request context
This commit is contained in:
parent
4b33f17169
commit
23873f7a52
|
@ -42,5 +42,5 @@ class ModelFactory():
|
||||||
raise ValueError(f'Invalid index entry: {lid}')
|
raise ValueError(f'Invalid index entry: {lid}')
|
||||||
else:
|
else:
|
||||||
lid = identifier
|
lid = identifier
|
||||||
lexicon = LexiconModel(self.root, lid)
|
lexicon = LexiconModel(self.root, lid)
|
||||||
return lexicon
|
return lexicon
|
||||||
|
|
|
@ -3,12 +3,13 @@ import os
|
||||||
from flask import Flask, render_template
|
from flask import Flask, render_template
|
||||||
from flask_login import LoginManager
|
from flask_login import LoginManager
|
||||||
|
|
||||||
from amanuensis.config import get
|
from amanuensis.config import get, root
|
||||||
from amanuensis.server.auth import get_bp as get_auth_bp
|
from amanuensis.server.auth import get_bp as get_auth_bp
|
||||||
from amanuensis.server.home import get_bp as get_home_bp
|
from amanuensis.server.home import get_bp as get_home_bp
|
||||||
from amanuensis.server.helpers import register_custom_filters
|
from amanuensis.server.helpers import register_custom_filters
|
||||||
from amanuensis.server.lexicon import get_bp as get_lex_bp
|
from amanuensis.server.lexicon import get_bp as get_lex_bp
|
||||||
from amanuensis.user import AnonymousUserModel
|
from amanuensis.user import AnonymousUserModel
|
||||||
|
from amanuensis.models import ModelFactory
|
||||||
|
|
||||||
# Flask app init
|
# Flask app init
|
||||||
static_root = os.path.abspath(get("static_root"))
|
static_root = os.path.abspath(get("static_root"))
|
||||||
|
@ -17,6 +18,7 @@ app = Flask(
|
||||||
template_folder="../templates",
|
template_folder="../templates",
|
||||||
static_folder=static_root)
|
static_folder=static_root)
|
||||||
app.secret_key = bytes.fromhex(get('secret_key'))
|
app.secret_key = bytes.fromhex(get('secret_key'))
|
||||||
|
app.config['model_factory'] = ModelFactory(root)
|
||||||
app.jinja_options['trim_blocks'] = True
|
app.jinja_options['trim_blocks'] = True
|
||||||
app.jinja_options['lstrip_blocks'] = True
|
app.jinja_options['lstrip_blocks'] = True
|
||||||
register_custom_filters(app)
|
register_custom_filters(app)
|
||||||
|
|
|
@ -3,14 +3,14 @@ from datetime import datetime
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
# Third party imports
|
# Third party imports
|
||||||
from flask import g, flash, redirect, url_for
|
from flask import g, flash, redirect, url_for, current_app
|
||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
|
|
||||||
# Module imports
|
# Module imports
|
||||||
from amanuensis.lexicon import LexiconModel
|
from amanuensis.lexicon import LexiconModel
|
||||||
from amanuensis.parser import filesafe_title
|
from amanuensis.parser import filesafe_title
|
||||||
from amanuensis.user import UserModel
|
from amanuensis.user import UserModel
|
||||||
|
from amanuensis.models import ModelFactory
|
||||||
|
|
||||||
def register_custom_filters(app):
|
def register_custom_filters(app):
|
||||||
"""Adds custom filters to the Flask app"""
|
"""Adds custom filters to the Flask app"""
|
||||||
|
@ -42,6 +42,9 @@ def lexicon_param(route):
|
||||||
if g.lexicon is None:
|
if g.lexicon is None:
|
||||||
flash("Couldn't find a lexicon with the name '{}'".format(name))
|
flash("Couldn't find a lexicon with the name '{}'".format(name))
|
||||||
return redirect(url_for("home.home"))
|
return redirect(url_for("home.home"))
|
||||||
|
# TODO transition to new model
|
||||||
|
model_factory: ModelFactory = current_app.config['model_factory']
|
||||||
|
g.lexicon_ = model_factory.lexicon(name)
|
||||||
return route(**kwargs)
|
return route(**kwargs)
|
||||||
return with_lexicon
|
return with_lexicon
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue