diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index db0f7ee..ae43714 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -379,7 +379,8 @@ table.items td { } /* For to fill completely, we use an ::after pseudoelement. */ table.items td.link { - padding: 0 0 0 1em; + padding: 0; + padding-inline-start: calc(1em + var(--depth) * 0.8em); position: relative; } table.items td.link a { diff --git a/app/models/quantity.rb b/app/models/quantity.rb index 38ff9f1..a613d23 100644 --- a/app/models/quantity.rb +++ b/app/models/quantity.rb @@ -19,11 +19,13 @@ class Quantity < ApplicationRecord [ Arel::SelectManager.new.project( numbered[Arel.star], - numbered.cast(numbered[:child_number], 'BINARY').as('path') + numbered.cast(numbered[:child_number], 'BINARY').as('path'), + Arel::Nodes.build_quoted(0).as('depth') ).from(numbered).where(numbered[:parent_id].eq(nil)), Arel::SelectManager.new.project( numbered[Arel.star], - cte[:path].concat(numbered[:child_number]) + cte[:path].concat(numbered[:child_number]), + cte[:depth] + 1 ).from(numbered).join(cte).on(numbered[:parent_id].eq(cte[:id])) ] ).select(cte[Arel.star]).from(cte).order(cte[:path])