Skip to content

1.0a34

Pre-release
Pre-release

Choose a tag to compare

@simonw simonw released this 16 Jun 21:31

The big feature in this alpha is tools to insert, edit and delete rows within the Datasette interface. These features are available on table pages, and edit and delete are also available as action items on the row page.

The edit interface takes custom column types into account. Plugins that define their own column types can use JavaScript to customize how those column types are presented in the edit interface.

  • datasette.allowed_many() method for resolving multiple permission checks at once. (#2775)
  • Permission checks are now cached on a per-request basis, speeding up table pages with multiple plugins that check permissions in order to populate the table actions menu.
  • Fixed a warning about gen.throw(*sys.exc_info()). (#2776)
  • New default custom column type textarea for multi-line text content. This is rendered as a <textarea> input in the edit UI.
  • The json column type now implements client-side validation in the edit UI.
  • The makeColumnField() JavaScript plugin hook allows plugins to define custom fields in the edit interface for their custom column types.
  • New UI for inserting, editing, and deleting rows within Datasette. (#2780)
  • New /<database>/<table>/-/autocomplete?q=term autocomplete JSON API for rapid autocomplete search against the contents of a table. This is used by the edit interface to select related rows for foreign keys. You can try it out on the /-/debug/autocomplete debug page.
  • New /<database>/<table>/-/fragment HTML fragment endpoint for returning the HTML used to display a specific row.
  • await request.json() utility method for consuming the request body as JSON. (#2767)
  • Database, table, query and row action menus can now be modified by plugins to display buttons in addition to links. (#2782)
  • Datasette now uses Playwright for browser automation tests as part of the test suite. (#2779)