- Fixed a security and permissions flaw, where users without the `execute_sql` permission could still run custom queries by editing saved dashboards using the Django admin interface. [94](https://github.com/simonw/django-sql-dashboard/issues/94)
- Bar charts now preserve the order in which the data is returned by the query. [106](https://github.com/simonw/django-sql-dashboard/issues/106)
- Example select statements now include explicit columns. [105](https://github.com/simonw/django-sql-dashboard/issues/105)
- Columns on the dashboard page now respond to media queries, collapsing to a single column on narrow or mobile browser windows. [106](https://github.com/simonw/django-sql-dashboard/issues/106)
- Fixed hard-coded `/dashboard/` URL, thanks Flávio Juvenal da Silva Junior. [99](https://github.com/simonw/django-sql-dashboard/issues/99)
- Fixed bug where `?_save-` parameters could be accidentally reflected in the query string. [104](https://github.com/simonw/django-sql-dashboard/issues/104)
- Explicitly require at least Django 3.0. [101](https://github.com/simonw/django-sql-dashboard/issues/101)
- Fixed a warning about `AutoField` migrations with Django 3.2. [103](https://github.com/simonw/django-sql-dashboard/issues/103)
- Fixed a bug where users lacking permissions could end up in an infinite redirect. [30](https://github.com/simonw/django-sql-dashboard/issues/30)
- Configuration and security documentation now recommends using a read-only database replica as the most robust option. [95](https://github.com/simonw/django-sql-dashboard/issues/95)
- Added screenshots and demo links for all of the included [widgets](https://django-sql-dashboard.datasette.io/en/latest/widgets.html). [#96](https://github.com/simonw/django-sql-dashboard/issues/96)