Display the date your data was updated
Project description
datasette-updated
Display the date your data was updated
Installation
Install this plugin in the same environment as Datasette.
datasette install datasette-updated
Usage
You can have a different updated
value per table, database or Datasette instance. If undefined at any level, updated
will fall back in that order. If no value is set, updated
will be unknown
.
Base metadata configuration
If you have known updated
values, you can define them in your base metadata.(json|yml)
:
{
"plugins": {
"datasette-updated": {
"updated": "2023-12-14T23:04:42+00:00"
}
},
"databases": {
"my-database-name": {
"plugins": {
"datasette-updated": {
"updated": "2023-01-01T00:00:00+00:00"
}
},
"tables": {
"my-table-name": {
"plugins": {
"datasette-updated": {
"updated": "2020-01-01T00:00:00+00:00"
}
}
...
Plugin metadata configuration
If you want to define more dynamic updated
value(s) on datasette package
or datasette publish
, put metadata for this plugin in YOUR_PLUGINS_DIR/datasette-updated/metadata.(json|yml)
. The following is an example that sets updated
to the current date/time.
mkdir -p plugins/datasette-updated/ && \
echo '{
"plugins": {
"datasette-updated": {
"updated": "'"$(date -Iseconds)"'"
}
}
}' > plugins/datasette-updated/metadata.json && \
datasette publish --plugins-dir=plugins ...
Combined metadata configuration
You can combine base metadata and plugin metadata configuration, but be aware that the base metadata.(json|yml)
will always win if there is a duplicate configuration value.
Extra configuration
The base / instance level metadata can accept the following extra configuration (that will apply to all levels):
-
time_type
(default:time-ago
)time
: 2023-12-01T00:00:00+00:00date
: "Apr 11" or "Apr 11, 2013"time-ago
: "a second ago", "32 seconds ago", "an hour ago", "14 hours ago"time-or-date
: "3:26pm" or "Apr 11"weekday
: "Today", "Yesterday", or the weekdayweekday-or-date
: "Yesterday" or "Apr 11"
{ "plugins": { "datasette-updated": { "time_type": "time" } } }
Display
The plugin will try to load a footer template that is copied from the default Datasette footer template, but with the following addition:
{% if datasette_updated %}·
Updated:
<time
data-local="{{ datasette_updated.time_type }}"
datetime="{{ datasette_updated.updated }}">
{{ datasette_updated.updated }}
</time>
{% endif %}
- If you have your own custom footer template, you will need to add the above code, as your base template will take precedence.
- Look at local_time for extra configuration options (just ignore the Ruby parts).
Screenshot and Demo
- Example site: https://querydata.io/
- The Javascript component converts time elements from UTC to the browser's local time.
Development
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd datasette-updated
python3 -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for datasette_updated-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6d23e66e0106d846f090ec67fca22d8165c98abfc74a398373c9ea4e2f0fe8e |
|
MD5 | 43c7ac55edc325858ad8c61d39d3c3cb |
|
BLAKE2b-256 | a244e1dbf1d955039c64ddec59dfa6ac6dbf52552d6ab10511862b935b288b8a |