aboutsummaryrefslogtreecommitdiffstats
path: root/app/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers')
-rw-r--r--app/helpers/table_builder_helper.rb9
-rw-r--r--app/helpers/table_builder_helper/custom_links.rb5
-rw-r--r--app/helpers/table_builder_helper/url.rb7
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