track_event() mechanism for analytics and plugins

* Closes #2240
* Documentation for event plugin hooks, refs #2240
* Include example track_event plugin in docs, refs #2240
* Tests for track_event() and register_events() hooks, refs #2240
* Initial documentation for core events, refs #2240
* Internals documentation for datasette.track_event()
This commit is contained in:
Simon Willison 2024-01-31 15:21:40 -08:00 committed by GitHub
commit bcc4f6bf1f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 614 additions and 10 deletions

View file

@ -1,6 +1,11 @@
from datasette.utils.sqlite import sqlite3
def last_event(datasette):
events = getattr(datasette, "_tracked_events", [])
return events[-1] if events else None
def assert_footer_links(soup):
footer_links = soup.find("footer").findAll("a")
assert 4 == len(footer_links)