v1.7.0
gristlabs/grist-corev1.7.0Jul 31, 2025by jordigh
AI Summary
A major feature release introducing attachment fields in forms, widget duplication, new formula functions, and improved keyboard navigation.
Key Highlights
- Attachments fields can now be added to forms
- Widgets can now be duplicated
- New formula functions: NETWORKDAYS and DATEDIF string support
- Keyboard navigation has been significantly improved
New Features
- Form attachments
- Widget duplication
- New formula functions (NETWORKDAYS, DATEDIF)
- Experimental 'new record' button
- Keyboard navigation improvements
- ACL and code view sorting improvements
- New environment variables (logging, i18n, attachment limits)
- Grist Assistant improvements for Enterprise
Full Release Notes
## What's Changed
* You can now add Attachments fields to forms (thanks @mrdev023)
- **Note:** there is a known issue with uploading attachments from forms in some multi-server environments. This is fixed in [v1.7.1](https://github.com/gristlabs/grist-core/releases/tag/v1.7.1).
* Widgets can now be duplicated, making it much easier to create page layouts that have similar underlying elements.
* New formula functions: NETWORKDAYS function and string support fpr DATEDIF (thanks @scytacki)
* There is now a "new record" button at the bottom of grid and detail views, gated behind an `?experiment=newRecordButton` feature flag in the browser URL (thanks @manuhabitela)
* Keyboard navigation has been improved (thanks @manuhabitela)
* Sort ACL and code view tables and wrap ACL rules by (submitted by @davidmh72, shepherded by @georgegevoian)
* Uploading attachments now shows a spinner (thanks @manuhabitela)
* New option to save page collapsed or expanded state in the left sidebar
* New Grist environment variables:
- The undocumented `GRIST_HOSTED_VERSION` variable is now deprecated. Its main purpose was to change the style of logging outputs. Instead, now use the new variables `GRIST_LOG_AS_JSON` and `GRIST_LOG_API_DETAILS` (thanks @fflorent )
- `GRIST_TRUTHY_VALUES` and `GRIST_FALSY_VALUES` variables can be used for better internationalization of truthy and falsy values in Python formulas. (thanks @vviers)
- `GRIST_MAX_INTERNAL_ATTACHMENTS_BYTES` is an optional install-level limit for internal attachment storage
* Various translations and bug fixes.
### Grist Enterprise
* Improvements to the Grist assistant. Now it can do the following:
- Create, rename, or remove pages, as well as add, update, and remove most widgets in pages.
- Add custom widgets by URL.
- Create [summary tables](https://support.getgrist.com/summary-tables/) from specified GROUP BY columns for new widgets.
- Link widgets on the same page.
## New Contributors
* @mrdev023 made their first contribution in https://github.com/gristlabs/grist-core/pull/1655
**Full Changelog**: https://github.com/gristlabs/grist-core/compare/v1.6.1...v1.7.0
[Join our Discord Community](https://discord.gg/MYKpYQ3fbP) if you'd like to get into development of Grist.