Added CRUDKit registry functionality.

This commit is contained in:
Yaro Kasear 2025-09-15 08:26:08 -05:00
parent cb74511677
commit 64e8d6871f
5 changed files with 67 additions and 23 deletions

View file

@ -6,6 +6,7 @@ from flask import Flask
from crudkit import ProdConfig
from crudkit.api.flask_api import generate_crud_blueprint
from crudkit.core.service import CRUDService
from crudkit.integration import CRUDKit
from crudkit.integrations.flask import init_app
from .config import DevConfig
@ -17,6 +18,7 @@ def create_app(config_cls=DevConfig) -> Flask:
app = Flask(__name__)
runtime = init_app(app, config=ProdConfig)
crud = CRUDKit(app, runtime)
print(f"Effective DB URL: {str(runtime.engine.url)}")
from . import models as _models
@ -30,27 +32,19 @@ def create_app(config_cls=DevConfig) -> Flask:
session = Session
area_service = CRUDService(_models.Area, session)
brand_service = CRUDService(_models.Brand, session)
device_type_service = CRUDService(_models.DeviceType, session)
image_service = CRUDService(_models.Image, session)
inventory_service = CRUDService(_models.Inventory, session)
room_function_service = CRUDService(_models.RoomFunction, session)
room_service = CRUDService(_models.Room, session)
user_service = CRUDService(_models.User, session)
work_log_service = CRUDService(_models.WorkLog, session)
work_note_service = CRUDService(_models.WorkNote, session)
crud.register_many([
_models.Area,
_models.Brand,
_models.DeviceType,
_models.Image,
_models.Inventory,
_models.RoomFunction,
_models.Room,
_models.User,
_models.WorkLog,
_models.WorkNote,
])
app.register_blueprint(generate_crud_blueprint(_models.Area, area_service), url_prefix="/api/area")
app.register_blueprint(generate_crud_blueprint(_models.Brand, brand_service), url_prefix="/api/brand")
app.register_blueprint(generate_crud_blueprint(_models.DeviceType, device_type_service), url_prefix="/api/device_type")
app.register_blueprint(generate_crud_blueprint(_models.Image, image_service), url_prefix="/api/image")
app.register_blueprint(generate_crud_blueprint(_models.Inventory, inventory_service), url_prefix="/api/inventory")
app.register_blueprint(generate_crud_blueprint(_models.RoomFunction, room_function_service), url_prefix="/api/room_function")
app.register_blueprint(generate_crud_blueprint(_models.Room, room_service), url_prefix="/api/room")
app.register_blueprint(generate_crud_blueprint(_models.User, user_service), url_prefix="/api/user")
app.register_blueprint(generate_crud_blueprint(_models.WorkLog, work_log_service), url_prefix="/api/work_log")
app.register_blueprint(generate_crud_blueprint(_models.WorkNote, work_note_service), url_prefix="/api/work_note")
app.register_blueprint(bp_reports)
init_index_routes(app)

View file

@ -9,7 +9,7 @@
<tbody>
{% if rows %}
{% for row in rows %}
<tr onclick="location.href='{{ url_for(kwargs['opts']['object_class'] + '.get_item', id=row.id) }}'" style="cursor: pointer;">
<tr onclick="location.href='{{ url_for( 'crudkit.' + kwargs['opts']['object_class'] + '.get_item', id=row.id) }}'" style="cursor: pointer;">
{% for cell in row.cells %}
{% if cell.href %}
<td class="{{ cell.class or '' }}"><a href="{{ cell.href }}" class="link-success link-underline link-underline-opacity-0 fw-semibold">{{ cell.text if cell.text is not none else '-' }}</a></td>