From 40e727f5bf78ffe716fa1a0f8cf1b3dc05487a87 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Tue, 2 Sep 2025 10:04:08 -0500 Subject: [PATCH] Used a very basic testing app to find and fix some bugs. --- .gitignore | 2 +- crudkit/api/flask_api.py | 2 ++ crudkit/ui/fragments.py | 13 +++++++++++++ crudkit/ui/templates/form.html | 6 ++++++ crudkit/ui/templates/table.html | 2 +- 5 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 crudkit/ui/templates/form.html diff --git a/.gitignore b/.gitignore index 179bb33..09da556 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,4 @@ inventory/static/uploads/* alembic.ini alembic/ *.egg-info/ -test-app/ \ No newline at end of file +test_app/ \ No newline at end of file diff --git a/crudkit/api/flask_api.py b/crudkit/api/flask_api.py index 94e7d3f..611c8c0 100644 --- a/crudkit/api/flask_api.py +++ b/crudkit/api/flask_api.py @@ -27,3 +27,5 @@ def generate_crud_blueprint(model, service): def delete_item(id): service.delete(id) return '', 204 + + return bp diff --git a/crudkit/ui/fragments.py b/crudkit/ui/fragments.py index db169d0..9ac9166 100644 --- a/crudkit/ui/fragments.py +++ b/crudkit/ui/fragments.py @@ -11,3 +11,16 @@ def render_field(field_name, value): def render_table(objects): template = env.get_template('table.html') return template.render(objects=objects) + +def render_form(model_cls, values): + template = env.get_template('form.html') + fields = [] + for col in model_cls.__table__.columns: + if col.name == 'id': + continue + if col.default or col.server_default or col.onupdate: + continue + if col.name in ('created_at', 'updated_at'): + continue + fields.append(col) + return template.render(fields=fields, values=values, render_field=render_field) diff --git a/crudkit/ui/templates/form.html b/crudkit/ui/templates/form.html new file mode 100644 index 0000000..09ad44c --- /dev/null +++ b/crudkit/ui/templates/form.html @@ -0,0 +1,6 @@ +
+ {% for field in fields %} + {{ render_field(field.name, values.get(field.name, '')) }} + {% endfor %} + +
diff --git a/crudkit/ui/templates/table.html b/crudkit/ui/templates/table.html index 8abd5e0..5b65d61 100644 --- a/crudkit/ui/templates/table.html +++ b/crudkit/ui/templates/table.html @@ -3,6 +3,6 @@ {% for field in objects[0].__table__.columns %}{{ field.name }}{% endfor %} {% for obj in objects %} - {% for field in obj.__table__columns %}{{ getattr(obj, field.name) }}{% endfor %} + {% for field in obj.__table__.columns %}{{ obj[field.name] }}{% endfor %} {% endfor %} \ No newline at end of file