aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/chouette/time_table.rb
diff options
context:
space:
mode:
authorcedricnjanga2017-08-29 14:49:02 +0200
committercedricnjanga2017-08-29 14:57:53 +0200
commit7869c9906fff1c13853d4a4a6ae4b367c64fb5d7 (patch)
treeeaef6fd850b7a27f97a935c21b4ae06c9f58e59e /app/models/chouette/time_table.rb
parentaa8b39b2679a39cf3c93a8df314a4446fae7a6ae (diff)
downloadchouette-core-7869c9906fff1c13853d4a4a6ae4b367c64fb5d7.tar.bz2
Refs #3367 Change Time table overlap query
Diffstat (limited to 'app/models/chouette/time_table.rb')
-rw-r--r--app/models/chouette/time_table.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb
index 3f56f6a1d..8aff3bf36 100644
--- a/app/models/chouette/time_table.rb
+++ b/app/models/chouette/time_table.rb
@@ -22,7 +22,11 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord
belongs_to :created_from, class_name: 'Chouette::TimeTable'
scope :overlapping, -> (date_start, date_end) do
- joins(:periods).where('(period_start, period_end) OVERLAPS (?, ?)', date_start, date_end)
+ joins("
+ LEFT JOIN time_table_periods ON time_tables.id = time_table_periods.time_table_id
+ LEFT JOIN time_table_dates ON time_tables.id = time_table_dates.time_table_id
+ ")
+ .where("(time_table_periods.period_start <= :end AND time_table_periods.period_end >= :start) OR (time_table_dates.date BETWEEN :start AND :end)", {start: date_start, end: date_end})
end
after_save :save_shortcuts