feat: bulk Run All Now for scheduled jobs + priority filter on jobs list#48
Merged
Merged
Conversation
Removes Bulk scheduled job actions and Priority filter (shipping in 1.0). Drops the Observability section (now empty after Performance analytics shipped). Retains admin audit log, failed job retry with modified args, multiple webhook targets, and queue depth alert as post-1.0 items. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bulk Run All Now: POST /scheduled_jobs/run_all_now back-dates all scheduled executions in one update_all call; respects the current period filter; button appears on the Scheduled tab header alongside Discard All. Also removes the redundant OFFSETS constant — PERIOD_DURATIONS from ApplicationController covers the same values. Priority filter: ?priority=N param on the jobs index narrows the scope to a specific integer priority; a select dropdown appears when multiple distinct priorities exist; priority is preserved across status tab switches, period changes, search, and Discard All. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ilter Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…JobsController Moves the period-filtered execution scope into a private scheduled_scope method (shared between create and update) and the offset→time resolution into resolve_new_time, making both actions read as a clear sequence of steps rather than inline conditionals. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both methods are pure model-layer concerns — derive_status computes a job's effective status from its associations and execution_model_for! is a guarded lookup on the model's own constants. Neither has any controller-specific context, so the controller simply delegates to Job.derive_status and Job.execution_model_for!. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The before_action had a stale :discard_selected reference (action no longer exists) and created an asymmetry where index set its own params inline but destroy relied on a callback. destroy now reads @status, @period, and @priority directly at the top of the action, matching the index pattern and removing the indirection. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
update_allcall so SolidQueue's dispatcher picks them up immediately; respects the active period filter; pluralises the success notice correctly?priority=Nparam on the jobs index; a select dropdown appears in the search bar when multiple distinct priorities exist; preserved across status tabs, period changes, and search; Discard All also respects the active priority filterOFFSETSconstant fromScheduledJobsController—PERIOD_DURATIONSinherited fromApplicationControllercovers the same valuesTest plan
POST /scheduled_jobs/run_all_now(redirect, update, count notice, pluralise, period filter, error rescue)?priority=filter (show all, filter, dropdown, tab preservation, discard all scoping)bundle exec rakepasses (RuboCop + RSpec)🤖 Generated with Claude Code