1.4.0 on April 23, 2026
Let your team or community decide what matters most with GravityBoard Voting! Users upvote and downvote board cards to prioritize feature requests, surface winning ideas, or run polls. Set a vote budget per user, restrict voting to specific lanes, and display voting inside GravityView layouts. This release also improves REST API error handling and conditional logic, fixes a regression affecting admin board access, and adds an admin-bypass permission filter.
🚀 Added
- Card voting: Upvote and downvote buttons on every card let users signal what matters most. Each click adds +1 or -1 to a user's weight on that card, so supporters can stack multiple votes behind the ideas they care about. Optional per-user vote budgets (daily, weekly, monthly, yearly, or all-time) limit how many votes each user has.
- Lane-scoped voting: Enable voting only in the lanes where it makes sense, such as "Ideas" or "Under Review" but not "Done." Cards in restricted lanes show a disabled widget so the vote count remains visible.
- Upvote-only mode: Hide the downvote button entirely for boards where downvoting doesn't belong, such as feature requests or idea boards. Users get a dedicated remove-upvote button to walk their vote back toward zero.
- Voting permissions: New "Who Can Vote on Cards" and "Who Can See Who Voted" settings open voting to a broad audience while keeping voter identities visible only to admins or editors.
- Vote weight and budget indicators: Each card shows a weight badge when a user has stacked multiple votes (up or down), and the vote widget displays how many votes remain in the user's budget so they can pace their support.
- Voters list: Optionally see who voted on a card, with a "(You)" badge next to the current user.
- GravityView integration: Display and collect votes inside GravityView layouts:
- "Entry Voting" field renders the interactive vote widget in any layout;
- "Votes Count" field shows a read-only count, sortable in Table layouts;
- "Voted By" Advanced Filter targets entries the logged-in user has voted on, for Views like "My Voted Ideas";
- Default View sort by Votes Count, ascending or descending;
- Vote counts and remaining budget stay in sync across multiple vote widgets on the same page.
- Notification merge tags: Use
{gravityboard_votes:count|average|total|up|down}and{gravityboard_voters:emails}to include vote data and voter email addresses in any Gravity Forms notification. Email every voter when a card moves lanes, surface popularity metrics to subscribers, or build admin digests.
✨ Improved
- Shows an error message when the REST API fails to load board data, instead of a silent blank board.
- Enhanced conditional logic:
- Empty field values are no longer treated as today's date when using
is on,is not on,is before, oris afterfilters; - Filters on deleted or missing forms (e.g. when viewing feed settings for a removed form) no longer trigger errors;
- Admin-only filters (those suffixed
:disabled_admin) no longer error out when applied to multi-value fields.
- Empty field values are no longer treated as today's date when using
🐛 Fixed
- Administrators losing access to boards on sites that rely on the
gform_full_accesscapability.
💻 Developer Updates
- Added
gk/gravityboard/permissions/admin-has-full-accessfilter to control whether administrators bypass all board permission checks. Read the documentation.
🔧 Updated
- Foundation to version 1.16.0.