Granular replacement of fragments!
This commit is contained in:
parent
cfb25f098a
commit
699a866a21
1 changed files with 25 additions and 8 deletions
|
|
@ -1,13 +1,29 @@
|
|||
from jinja2 import Environment, FileSystemLoader
|
||||
from jinja2 import Environment, FileSystemLoader, ChoiceLoader
|
||||
from sqlalchemy.orm import class_mapper, RelationshipProperty
|
||||
from flask import current_app
|
||||
import os
|
||||
|
||||
FRAGMENT_PATH = os.path.join(os.path.dirname(__file__), 'templates')
|
||||
env = Environment(loader=FileSystemLoader(FRAGMENT_PATH))
|
||||
def get_env():
|
||||
app_loader = current_app.jinja_loader
|
||||
|
||||
default_path = os.path.join(os.path.dirname(__file__), 'templates')
|
||||
fallback_loader = FileSystemLoader(default_path)
|
||||
|
||||
env = Environment(loader=ChoiceLoader([
|
||||
app_loader,
|
||||
fallback_loader
|
||||
]))
|
||||
return env
|
||||
|
||||
def get_crudkit_template(env, name):
|
||||
try:
|
||||
return env.get_template(f'crudkit/{name}')
|
||||
except Exception:
|
||||
return env.get_template(name)
|
||||
|
||||
def render_field(field, value):
|
||||
print(field)
|
||||
template = env.get_template('field.html')
|
||||
env = get_env()
|
||||
template = get_crudkit_template(env, 'field.html')
|
||||
return template.render(
|
||||
field_name=field['name'],
|
||||
field_label=field.get('label', field['name']),
|
||||
|
|
@ -16,13 +32,14 @@ def render_field(field, value):
|
|||
options=field.get('options', None)
|
||||
)
|
||||
|
||||
|
||||
def render_table(objects):
|
||||
template = env.get_template('table.html')
|
||||
env = get_env()
|
||||
template = get_crudkit_template(env, 'table.html')
|
||||
return template.render(objects=objects)
|
||||
|
||||
def render_form(model_cls, values, session=None):
|
||||
template = env.get_template('form.html')
|
||||
env = get_env()
|
||||
template = get_crudkit_template(env, 'form.html')
|
||||
fields = []
|
||||
fk_fields = set()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue