allow taking amount from queue

This commit is contained in:
24c02 2026-01-21 21:47:31 -05:00
parent 6c4a23a035
commit 0bc70de3e5
3 changed files with 12 additions and 4 deletions

View file

@ -65,8 +65,10 @@ class Letter::QueuesController < ApplicationController
unless @letter_queue.letters.any?
flash[:error] = "no letters?"
redirect_to @letter_queue
return
end
batch = @letter_queue.make_batch(user: current_user)
limit = params[:limit].presence&.to_i
batch = @letter_queue.make_batch(user: current_user, limit:)
User::UpdateTasksJob.perform_now(current_user)
flash[:success] = "now do something with it!"
redirect_to process_letter_batch_path(batch, uft: @letter_queue.user_facing_title, template: @letter_queue.template)

View file

@ -76,7 +76,7 @@ class Letter::Queue < ApplicationRecord
letter
end
def make_batch(user:)
def make_batch(user:, limit: nil)
ActiveRecord::Base.transaction do
batch = letter_batches.build(
aasm_state: :fields_mapped,
@ -93,7 +93,9 @@ class Letter::Queue < ApplicationRecord
user: user,
)
batch.save!
letters.queued.each do |letter|
queued_letters = letters.queued
queued_letters = queued_letters.limit(limit) if limit.present?
queued_letters.each do |letter|
letter.batch_id = batch.id
letter.batch_from_queue
letter.save!

View file

@ -88,7 +88,11 @@
<%= render partial: 'batches/letters_collection', locals: { letters: @letters } %>
<% if @letter_queue.letters.queued.any? %>
<div class="mt-4">
<%= button_to "make batch!", make_batch_from_letter_queue_path(@letter_queue), class: "btn success" %>
<%= form_with url: make_batch_from_letter_queue_path(@letter_queue), method: :post, class: "inline-flex items-center gap-2" do |f| %>
<%= f.label :limit, "take" %>
<%= f.number_field :limit, min: 1, max: @letters.count, placeholder: "all", class: "w-20" %>
<%= f.submit "make batch!", class: "btn success" %>
<% end %>
</div>
<% end %>
<hr/>