File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed
Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -49,7 +49,8 @@ def _ct_after_save
4949 _ct_reorder_prior_siblings_if_parent_changed
5050 _ct_reorder_siblings
5151 elsif saved_changes [ _ct . order_column_sym ]
52- _ct_reorder_siblings ( saved_changes [ _ct . order_column_sym ] . min )
52+ min = saved_changes [ _ct . order_column_sym ] . min
53+ _ct_reorder_siblings ( min . negative? ? nil : min )
5354 end
5455 end
5556 if saved_changes [ _ct . parent_column_name ] && !@was_new_record
Original file line number Diff line number Diff line change @@ -38,6 +38,24 @@ def setup
3838 assert_equal 1 , c . reload . order_value
3939 end
4040
41+ test 'prepend_child should produce 0-based order values when reordering within the same parent' do
42+ root = Label . create ( name : 'root' )
43+ a = root . children . create ( name : 'a' )
44+ b = root . children . create ( name : 'b' )
45+ c = root . children . create ( name : 'c' )
46+
47+ assert_equal 0 , a . order_value
48+ assert_equal 1 , b . order_value
49+ assert_equal 2 , c . order_value
50+
51+ # Move c to be the first child (same parent, reorder only)
52+ root . prepend_child ( c )
53+
54+ assert_equal 0 , c . reload . order_value
55+ assert_equal 1 , a . reload . order_value
56+ assert_equal 2 , b . reload . order_value
57+ end
58+
4159 test 'should set order_value on roots for LabelWithoutRootOrdering' do
4260 root = LabelWithoutRootOrdering . create ( name : 'root' )
4361 assert_nil root . order_value
You can’t perform that action at this time.
0 commit comments