Skip to content

Commit

Permalink
Merge branch 'patch-1' of github.com:aepstein/acts_as_list into patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
aepstein committed Oct 30, 2011
2 parents 4765b2f + 1b9072f commit a8ef871
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions lib/acts_as_list/active_record/acts/list.rb
Original file line number Diff line number Diff line change
Expand Up @@ -243,10 +243,11 @@ def decrement_positions_on_higher_items(position)
end

# This has the effect of moving all the lower items up one.
def decrement_positions_on_lower_items
def decrement_positions_on_lower_items(position=nil)
return unless in_list?
position ||= send(position_column).to_i
acts_as_list_class.update_all(
"#{position_column} = (#{position_column} - 1)", "#{scope_condition} AND #{position_column} > #{send(position_column).to_i}"
"#{position_column} = (#{position_column} - 1)", "#{scope_condition} AND #{position_column} > #{position}"
)
end

Expand Down Expand Up @@ -281,8 +282,9 @@ def insert_at_position(position)
# used by insert_at_position instead of remove_from_list, as postgresql raises error if position_column has non-null constraint
def store_at_0
if in_list?
decrement_positions_on_lower_items
old_position = send(position_column).to_i
update_attribute(position_column, 0)
decrement_positions_on_lower_items(old_position)
end
end
end
Expand Down

0 comments on commit a8ef871

Please sign in to comment.