Redesign1 #1
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 sqlalchemy.orm import class_mapper, RelationshipProperty
|
||||||
|
from flask import current_app
|
||||||
import os
|
import os
|
||||||
|
|
||||||
FRAGMENT_PATH = os.path.join(os.path.dirname(__file__), 'templates')
|
def get_env():
|
||||||
env = Environment(loader=FileSystemLoader(FRAGMENT_PATH))
|
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):
|
def render_field(field, value):
|
||||||
print(field)
|
env = get_env()
|
||||||
template = env.get_template('field.html')
|
template = get_crudkit_template(env, 'field.html')
|
||||||
return template.render(
|
return template.render(
|
||||||
field_name=field['name'],
|
field_name=field['name'],
|
||||||
field_label=field.get('label', field['name']),
|
field_label=field.get('label', field['name']),
|
||||||
|
|
@ -16,13 +32,14 @@ def render_field(field, value):
|
||||||
options=field.get('options', None)
|
options=field.get('options', None)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def render_table(objects):
|
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)
|
return template.render(objects=objects)
|
||||||
|
|
||||||
def render_form(model_cls, values, session=None):
|
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 = []
|
fields = []
|
||||||
fk_fields = set()
|
fk_fields = set()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue