WIP on getting work_log support on inventory page.
This commit is contained in:
parent
7935b5b57d
commit
57104824a1
5 changed files with 117 additions and 68 deletions
|
|
@ -66,13 +66,46 @@ _ENUMS = {
|
|||
}
|
||||
|
||||
def get_env():
|
||||
"""
|
||||
Return an overlay Jinja Environment that knows how to load crudkit templates
|
||||
and has our helper functions available as globals.
|
||||
"""
|
||||
app = current_app
|
||||
default_path = os.path.join(os.path.dirname(__file__), 'templates')
|
||||
fallback_loader = FileSystemLoader(default_path)
|
||||
|
||||
return app.jinja_env.overlay(
|
||||
loader=ChoiceLoader([app.jinja_loader, fallback_loader])
|
||||
)
|
||||
env = app.jinja_env.overlay(loader=ChoiceLoader([app.jinja_loader, fallback_loader]))
|
||||
# Ensure helpers are available even when we render via this overlay env.
|
||||
# These names are resolved at *call time* (not at def time), so it's safe.
|
||||
try:
|
||||
env.globals.setdefault("render_table", render_table)
|
||||
env.globals.setdefault("render_form", render_form)
|
||||
env.globals.setdefault("render_field", render_field)
|
||||
except NameError:
|
||||
# Functions may not be defined yet at import time; later calls will set them.
|
||||
pass
|
||||
|
||||
return env
|
||||
|
||||
def register_template_globals(app=None):
|
||||
"""
|
||||
Register crudkit helpers as app-wide Jinja globals so they can be used
|
||||
directly in any template via {{ render_table(...) }}, {{ render_form(...) }},
|
||||
and {{ render_field(...) }}.
|
||||
"""
|
||||
if app is None:
|
||||
app = current_app
|
||||
# Idempotent install using an extension flag
|
||||
installed = app.extensions.setdefault("crudkit_ui_helpers", set())
|
||||
to_register = {
|
||||
"render_table": render_table,
|
||||
"render_form": render_form,
|
||||
"render_field": render_field,
|
||||
}
|
||||
for name, fn in to_register.items():
|
||||
if name not in installed:
|
||||
app.add_template_global(fn, name)
|
||||
installed.add(name)
|
||||
|
||||
def expand_projection(model_cls, fields):
|
||||
req = getattr(model_cls, "__crudkit_field_requires__", {}) or {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue