aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
authorMarc Florisson2014-09-17 13:51:28 +0200
committerMarc Florisson2014-09-17 13:51:28 +0200
commit1e3d5138f09702a0bc38296b5bed36903e7f08e8 (patch)
tree1485dd7baca86414c9dd4b04e5b865b116bc63ae /app/controllers
parentd489c3a664bf27e2ec3272c90002698f00689921 (diff)
parent375962d92d2b4222f955a5494b17f0031b9dbcf0 (diff)
downloadchouette-core-1e3d5138f09702a0bc38296b5bed36903e7f08e8.tar.bz2
merge vj
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/time_tables_controller.rb38
-rw-r--r--app/controllers/vehicle_journeys_controller.rb50
2 files changed, 57 insertions, 31 deletions
diff --git a/app/controllers/time_tables_controller.rb b/app/controllers/time_tables_controller.rb
index 586713c60..78d633581 100644
--- a/app/controllers/time_tables_controller.rb
+++ b/app/controllers/time_tables_controller.rb
@@ -10,36 +10,36 @@ class TimeTablesController < ChouetteController
def show
add_breadcrumb Referential.human_attribute_name("time_tables"), referential_time_tables_path(@referential)
-
+
@year = params[:year] ? params[:year].to_i : Date.today.cwyear
- @time_table_combination = TimeTableCombination.new
+ @time_table_combination = TimeTableCombination.new
show!
end
-
+
def new
add_breadcrumb Referential.human_attribute_name("time_tables"), referential_time_tables_path(@referential)
-
+
@autocomplete_items = ActsAsTaggableOn::Tag.all
new!
end
def edit
- edit! do
+ edit! do
add_breadcrumb Referential.human_attribute_name("time_tables"), referential_time_tables_path(@referential)
add_breadcrumb @time_table.comment, referential_time_table_path(@referential, @time_table)
-
+
@autocomplete_items = ActsAsTaggableOn::Tag.all
end
end
def comment_filter
- respond_to do |format|
- format.json { render :json => filtered_time_tables_maps}
- end
-
+ respond_to do |format|
+ format.json { render :json => filtered_time_tables_maps}
+ end
+
end
- def index
+ def index
request.format.kml? ? @per_page = nil : @per_page = 12
index! do |format|
@@ -48,7 +48,7 @@ class TimeTablesController < ChouetteController
redirect_to params.merge(:page => 1)
end
}
- end
+ end
end
def duplicate
@@ -60,7 +60,7 @@ class TimeTablesController < ChouetteController
end
def tags
- @tags = ActsAsTaggableOn::Tag.where("tags.name LIKE ?", "%#{params[:tag]}%")
+ @tags = ActsAsTaggableOn::Tag.where("tags.name LIKE ?", "%#{params[:tag]}%")
respond_to do |format|
format.json { render :json => @tags.map{|t| {:id => t.id, :name => t.name }} }
end
@@ -83,11 +83,19 @@ class TimeTablesController < ChouetteController
tag_search = ransack_params["tag_search"].split(",").collect(&:strip) if ransack_params.present? && ransack_params["tag_search"].present?
ransack_params.delete("tag_search") if ransack_params.present?
- select_time_tables = tag_search ? referential.time_tables.tagged_with(tag_search) : referential.time_tables
- @q = select_time_tables.search(ransack_params)
+ selected_time_tables = tag_search ? select_time_tables.tagged_with(tag_search) : select_time_tables
+ @q = selected_time_tables.search(ransack_params)
@time_tables ||= @q.result(:distinct => true).order(:comment).paginate(:page => params[:page])
end
+ def select_time_tables
+ if params[:route_id]
+ referential.time_tables.joins( vehicle_journeys: :route).where( "routes.id IN (#{params[:route_id]})")
+ else
+ referential.time_tables
+ end
+ end
+
def resource_url(time_table = nil)
referential_time_table_path(referential, time_table || resource)
end
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index 848fda507..18cd6b96c 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -1,7 +1,7 @@
class VehicleJourneysController < ChouetteController
defaults :resource_class => Chouette::VehicleJourney
- respond_to :js, :only => [:select_journey_pattern, :edit, :new]
+ respond_to :js, :only => [:select_journey_pattern, :edit, :new, :index]
belongs_to :referential do
belongs_to :line, :parent_class => Chouette::Line do
@@ -30,31 +30,49 @@ class VehicleJourneysController < ChouetteController
update!(:alert => t('activerecord.errors.models.vehicle_journey.invalid_times'))
end
- def index
- index! do |format|
- format.html {
- @matrix ||= matrix
- if collection.out_of_bounds?
- redirect_to params.merge(:page => 1)
- end
- }
- end
+ def index
+ index! do
+ @matrix ||= matrix
+ if collection.out_of_bounds?
+ redirect_to params.merge(:page => 1)
+ end
+ end
end
- # overwrite inherited resources to use delete instead of destroy
+ # overwrite inherited resources to use delete instead of destroy
# foreign keys will propagate deletion)
def destroy_resource(object)
object.delete
end
protected
-
+
alias_method :vehicle_journey, :resource
-
+
def collection
- @q = parent.sorted_vehicle_journeys.search(params[:q])
- @vehicle_journeys ||= @q.result.order( "vehicle_journey_at_stops.departure_time").paginate(:page => params[:page], :per_page => 8)
+ adapt_time_params
+ @q = select_vehicles.search(params[:q])
+ @vehicle_journeys ||= @q.result.order( "vehicle_journey_at_stops.departure_time").paginate(:page => params[:page], :per_page => 8)
+ end
+
+ def adapt_time_params
+ hour_entry = "vehicle_journey_at_stops_departure_time_gt(4i)".to_sym
+ if params[:q] && params[:q][ hour_entry]
+ params[:q].merge! hour_entry => (params[:q][ hour_entry].to_i - utc_offset)
+ end
+ end
+ def utc_offset
+ # Ransack Time eval - utc eval
+ sample = [2001,1,1,10,0]
+ Time.zone.local(*sample).utc.hour - Time.utc(*sample).hour
+ end
+ def select_vehicles
+ if params[:q] && params[:q][ :time_tables_id_eq ]
+ parent.sorted_vehicle_journeys.joins( :time_tables).where( "time_tables_vehicle_journeys.time_table_id" => params[:q][ :time_tables_id_eq ].split(','))
+ else
+ parent.sorted_vehicle_journeys
+ end
end
def matrix
@@ -62,7 +80,7 @@ class VehicleJourneysController < ChouetteController
Chouette::VehicleJourney.find( @vehicle_journeys.map { |v| v.id } ).
each do |vj|
vj.vehicle_journey_at_stops.each do |vjas|
- hash[ "#{vj.id}-#{vjas.stop_point_id}"] = vjas
+ hash[ "#{vj.id}-#{vjas.stop_point_id}"] = vjas
end
end
end