Improve #create action
This commit is contained in:
parent
1b634dea2b
commit
37e3b98788
@ -28,8 +28,15 @@ class TargetsController < ApplicationController
|
||||
params[:goal][:targets_attributes].each { |ta| ta[:effective_from] = @effective_from }
|
||||
|
||||
if @goal.update(targets_params)
|
||||
flash.now[:notice] = 'Created new target(s)'
|
||||
prepare_targets
|
||||
count = @goal.targets.target.length
|
||||
if count > 0
|
||||
flash.now[:notice] = t('.success', count: count)
|
||||
prepare_targets
|
||||
else
|
||||
flash.now[:warning] = t('.success', count: 0)
|
||||
@targets = [@goal.targets.new]
|
||||
render :new
|
||||
end
|
||||
else
|
||||
@targets = @goal.targets.select(&:changed_for_autosave?)
|
||||
@targets.each { |t| t.thresholds.new unless t.thresholds.present? }
|
||||
|
@ -6,7 +6,11 @@ class Goal < ActiveRecord::Base
|
||||
class_name: 'Exposure', extend: BodyTracking::TogglableExposures
|
||||
has_many :quantities, -> { order "lft" }, through: :exposures
|
||||
|
||||
accepts_nested_attributes_for :targets, allow_destroy: true
|
||||
accepts_nested_attributes_for :targets, allow_destroy: true,
|
||||
reject_if: proc { |attrs|
|
||||
attrs[:quantity_id].blank? &&
|
||||
attrs[:thresholds_attributes].all? { |t| t[:value].blank? }
|
||||
}
|
||||
include Validations::NestedUniqueness
|
||||
validates_nested_uniqueness_for :targets,
|
||||
:effective_from, :quantity_id, :item_type, :item_id, :scope,
|
||||
|
@ -42,8 +42,7 @@
|
||||
var row = form.find('p.target:visible:last');
|
||||
var new_row = row.clone().insertAfter(row);
|
||||
new_row.find('em').text('<%= t ".choose_quantity" %>');
|
||||
new_row.find('input, select').val('');
|
||||
new_row.find('select[id$=__unit_id]').val(row.find('select[id$=__unit_id]').val());
|
||||
new_row.find('input, select:first').val('');
|
||||
new_row.find('label:first').hide();
|
||||
form.find('p.target:visible a.icon-del').show();
|
||||
}
|
||||
|
@ -117,6 +117,11 @@ en:
|
||||
heading: 'Targets'
|
||||
show:
|
||||
label_target: 'Target'
|
||||
create:
|
||||
success:
|
||||
zero: "No targets specified"
|
||||
one: "Created 1 target"
|
||||
other: "Created %{count} targets"
|
||||
meals:
|
||||
contextual:
|
||||
link_new_meal: 'New meal'
|
||||
|
Reference in New Issue
Block a user