Installation
pip install ckanext-tables
Configuration
ckan.plugins = … tables …
Keine DB-Migration erforderlich
Verwendung in Plugin:
from ckanext.tables.shared import TableDefinition, ColumnDefinition, DatabaseDataSource, formatters
from ckan.plugins import toolkit as tk
class MyTable(TableDefinition):
def init(self):
super().init(
name=”my_table”,
data_source=DatabaseDataSource(
stmt=select(model.User.id, model.User.name),
model=model.User
),
columns=[
ColumnDefinition(field=”id”, title=”ID”),
ColumnDefinition(
field=”name”,
title=”Name”,
formatters=[(formatters.UserLinkFormatter, {})]
)
]
)
Registrierung via ISignal:
def get_signal_subscriptions(self):
return {
tk.signals.ckanext.signal(“ckanext.tables.register_tables”): [
self.collect_tables
]
}
def collect_tables(self, sender):
return {“my_table”: MyTable}
View erstellen:
from ckanext.tables.shared import GenericTableView
from flask import Blueprint
bp = Blueprint(“my_tables”, name, url_prefix=”/admin”)
bp.add_url_rule(
“/users”,
view_func=GenericTableView.as_view(
“users_table”,
table=”my_table”
)
)