diff options
| author | Marc Florisson | 2014-09-17 13:51:28 +0200 | 
|---|---|---|
| committer | Marc Florisson | 2014-09-17 13:51:28 +0200 | 
| commit | 1e3d5138f09702a0bc38296b5bed36903e7f08e8 (patch) | |
| tree | 1485dd7baca86414c9dd4b04e5b865b116bc63ae /app/controllers | |
| parent | d489c3a664bf27e2ec3272c90002698f00689921 (diff) | |
| parent | 375962d92d2b4222f955a5494b17f0031b9dbcf0 (diff) | |
| download | chouette-core-1e3d5138f09702a0bc38296b5bed36903e7f08e8.tar.bz2 | |
merge vj
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/time_tables_controller.rb | 38 | ||||
| -rw-r--r-- | app/controllers/vehicle_journeys_controller.rb | 50 | 
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  | 
