diff options
Diffstat (limited to 'app/helpers')
| -rw-r--r-- | app/helpers/table_builder_helper.rb | 9 | ||||
| -rw-r--r-- | app/helpers/table_builder_helper/custom_links.rb | 5 | ||||
| -rw-r--r-- | app/helpers/table_builder_helper/url.rb | 7 |
3 files changed, 15 insertions, 6 deletions
diff --git a/app/helpers/table_builder_helper.rb b/app/helpers/table_builder_helper.rb index b93e9b22b..e1b8b406d 100644 --- a/app/helpers/table_builder_helper.rb +++ b/app/helpers/table_builder_helper.rb @@ -104,6 +104,10 @@ module TableBuilderHelper end def tbody(collection, columns, selectable, links) + # Certain controllers don't define a `#current_referential`. In these + # cases, avoid a `NoMethodError`. + referential = current_referential if respond_to?(:current_referential) + content_tag :tbody do collection.map do |item| @@ -122,7 +126,10 @@ module TableBuilderHelper if column_is_linkable?(column) # Build a link to the `item` - polymorph_url = URL.polymorphic_url_parts(item) + polymorph_url = URL.polymorphic_url_parts( + item, + referential + ) bcont << content_tag(:td, link_to(value, polymorph_url), title: 'Voir') else bcont << content_tag(:td, value) diff --git a/app/helpers/table_builder_helper/custom_links.rb b/app/helpers/table_builder_helper/custom_links.rb index e3ffb18ac..4e385b266 100644 --- a/app/helpers/table_builder_helper/custom_links.rb +++ b/app/helpers/table_builder_helper/custom_links.rb @@ -33,7 +33,10 @@ module TableBuilderHelper polymorph_url << action end - polymorph_url += URL.polymorphic_url_parts(object) + polymorph_url += URL.polymorphic_url_parts( + object, + user_context.context[:referential] + ) end def method_for_action(action) diff --git a/app/helpers/table_builder_helper/url.rb b/app/helpers/table_builder_helper/url.rb index f60864ac1..894e5ddf8 100644 --- a/app/helpers/table_builder_helper/url.rb +++ b/app/helpers/table_builder_helper/url.rb @@ -1,12 +1,11 @@ module TableBuilderHelper - # Depends on `current_referential`, defined in object controllers class URL - def self.polymorphic_url_parts(item) + def self.polymorphic_url_parts(item, referential) polymorph_url = [] unless item.is_a?(Calendar) || item.is_a?(Referential) - if current_referential - polymorph_url << current_referential + if referential + polymorph_url << referential polymorph_url << item.line if item.respond_to? :line polymorph_url << item.route.line if item.is_a?(Chouette::RoutingConstraintZone) polymorph_url << item if item.respond_to? :line_referential |
