CRUDkit fixes and changes.
This commit is contained in:
parent
9d36d600bb
commit
7ddfe084ba
5 changed files with 98 additions and 43 deletions
|
|
@ -1,7 +1,9 @@
|
|||
import os
|
||||
|
||||
from flask import current_app
|
||||
from jinja2 import Environment, FileSystemLoader, ChoiceLoader
|
||||
from sqlalchemy.orm import class_mapper, RelationshipProperty
|
||||
from flask import current_app
|
||||
import os
|
||||
from typing import List
|
||||
|
||||
def get_env():
|
||||
app_loader = current_app.jinja_loader
|
||||
|
|
@ -32,10 +34,15 @@ def render_field(field, value):
|
|||
options=field.get('options', None)
|
||||
)
|
||||
|
||||
def render_table(objects):
|
||||
def render_table(objects, headers: List[str] | None = None):
|
||||
env = get_env()
|
||||
template = get_crudkit_template(env, 'table.html')
|
||||
return template.render(objects=objects)
|
||||
if not objects:
|
||||
return template.render(fields=[], rows=[])
|
||||
proj = getattr(objects[0], "__crudkit_projection__", None)
|
||||
rows = [obj.as_dict(proj) for obj in objects]
|
||||
fields = list(rows[0].keys())
|
||||
return template.render(fields=fields, rows=rows, headers=headers)
|
||||
|
||||
def render_form(model_cls, values, session=None):
|
||||
env = get_env()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue