diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/javascripts/cleanup.coffee | 11 | ||||
| -rw-r--r-- | app/controllers/lines_controller.rb | 9 | ||||
| -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 | ||||
| -rw-r--r-- | app/models/clean_up.rb | 10 | ||||
| -rw-r--r-- | app/views/layouts/navigation/_main_nav_left.html.slim | 4 | ||||
| -rw-r--r-- | app/views/lines/_filters.html.slim | 8 | ||||
| -rw-r--r-- | app/views/lines/index.html.slim | 50 | ||||
| -rw-r--r-- | app/views/referentials/show.html.slim | 2 |
10 files changed, 82 insertions, 33 deletions
diff --git a/app/assets/javascripts/cleanup.coffee b/app/assets/javascripts/cleanup.coffee index 169a006a9..7f6594018 100644 --- a/app/assets/javascripts/cleanup.coffee +++ b/app/assets/javascripts/cleanup.coffee @@ -2,8 +2,13 @@ $(document).on("change", 'input[name="clean_up[date_type]"]', (e) -> type = $(this).val() end_date = $('.cleanup_end_date_wrapper') - if type == 'between' - end_date.removeClass('hidden').show() - else + if type == 'before' + end_date.hide() + $("label[for='clean_up_begin_date_3i']").html("Date de fin de purge"); + else if type == 'after' end_date.hide() + $("label[for='clean_up_begin_date_3i']").html("Date de début de purge"); + else + $("label[for='clean_up_begin_date_3i']").html("Date de début de purge"); + end_date.show() ) diff --git a/app/controllers/lines_controller.rb b/app/controllers/lines_controller.rb index 1e2056aad..4b6448ce8 100644 --- a/app/controllers/lines_controller.rb +++ b/app/controllers/lines_controller.rb @@ -13,6 +13,15 @@ class LinesController < BreadcrumbController def index @hide_group_of_line = line_referential.group_of_lines.empty? index! do |format| + @lines = ModelDecorator.decorate( + @lines, + with: LineDecorator, + context: { + line_referential: @line_referential, + current_organisation: current_organisation + } + ) + format.html { if collection.out_of_bounds? redirect_to params.merge(:page => 1) 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 diff --git a/app/models/clean_up.rb b/app/models/clean_up.rb index cbcde72f5..75fedc732 100644 --- a/app/models/clean_up.rb +++ b/app/models/clean_up.rb @@ -6,8 +6,8 @@ class CleanUp < ActiveRecord::Base enumerize :date_type, in: %i(between before after) - validates :begin_date, presence: true - validates :date_type, presence: true + validates_presence_of :begin_date, message: :presence + validates_presence_of :date_type, message: :presence after_commit :perform_cleanup, :on => :create def perform_cleanup @@ -30,7 +30,7 @@ class CleanUp < ActiveRecord::Base end def destroy_time_tables_between - time_tables = Chouette::TimeTable.where('end_date <= ? AND start_date >= ?', self.end_date, self.begin_date) + time_tables = Chouette::TimeTable.where('end_date < ? AND start_date > ?', self.end_date, self.begin_date) self.destroy_time_tables(time_tables) end @@ -53,7 +53,7 @@ class CleanUp < ActiveRecord::Base end def destroy_time_tables_dates_between - Chouette::TimeTableDate.in_dates.where('date >= ? AND date <= ?', self.begin_date, self.end_date).destroy_all + Chouette::TimeTableDate.in_dates.where('date > ? AND date < ?', self.begin_date, self.end_date).destroy_all end def destroy_time_tables_periods_before @@ -65,7 +65,7 @@ class CleanUp < ActiveRecord::Base end def destroy_time_tables_periods_between - Chouette::TimeTablePeriod.where('period_start >= ? AND period_end <= ?', self.begin_date, self.end_date).destroy_all + Chouette::TimeTablePeriod.where('period_start > ? AND period_end < ?', self.begin_date, self.end_date).destroy_all end def overlapping_periods diff --git a/app/views/layouts/navigation/_main_nav_left.html.slim b/app/views/layouts/navigation/_main_nav_left.html.slim index efdb81d9c..c72b61c00 100644 --- a/app/views/layouts/navigation/_main_nav_left.html.slim +++ b/app/views/layouts/navigation/_main_nav_left.html.slim @@ -35,8 +35,8 @@ span Jeux de données = link_to '#', class: 'list-group-item' do span Import - = link_to '#', class: 'list-group-item' do - span Modèle de calendrier + = link_to calendars_path, class: 'list-group-item' do + span Modèles de calendrier = link_to '#', class: 'list-group-item' do span Rapport de contrôle = link_to '#', class: 'list-group-item' do diff --git a/app/views/lines/_filters.html.slim b/app/views/lines/_filters.html.slim index a0188f562..0e34b2e4c 100644 --- a/app/views/lines/_filters.html.slim +++ b/app/views/lines/_filters.html.slim @@ -8,19 +8,19 @@ .ffg-row .form-group.togglable - = f.label @lines.human_attribute_name(:network), required: false, class: 'control-label' + = f.label Chouette::Line.human_attribute_name(:network), required: false, class: 'control-label' = f.input :network_id_eq_any, collection: @line_referential.networks.order(name: :asc), as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + l.name + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'} .form-group.togglable - = f.label @lines.human_attribute_name(:company), required: false, class: 'control-label' + = f.label Chouette::Line.human_attribute_name(:company), required: false, class: 'control-label' = f.input :company_id_eq_any, collection: @line_referential.companies.order(name: :asc), as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + l.name + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'} .form-group.togglable - = f.label @lines.human_attribute_name(:transport_mode), required: false, class: 'control-label' + = f.label Chouette::Line.human_attribute_name(:transport_mode), required: false, class: 'control-label' = f.input :transport_mode_eq_any, collection: sorted_transport_mode, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.line.transport_mode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'} .form-group.togglable - = f.label @lines.human_attribute_name(:transport_submode), required: false, class: 'control-label' + = f.label Chouette::Line.human_attribute_name(:transport_submode), required: false, class: 'control-label' = f.input :transport_submode_eq_any, collection: sorted_transport_submode, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.line.transport_submode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'} .actions diff --git a/app/views/lines/index.html.slim b/app/views/lines/index.html.slim index d3ee46b8a..630d63068 100644 --- a/app/views/lines/index.html.slim +++ b/app/views/lines/index.html.slim @@ -16,18 +16,44 @@ - if @lines.any? .row .col-lg-12 - = table_builder @lines, - { 'ID Codifligne' => Proc.new { |n| n.objectid.local_id }, - :number => 'number', - :name => 'name', - :deactivated => Proc.new{|n| n.deactivated? ? t('false') : t('true')}, - 'networks.name' => Proc.new { |n| n.try(:network).try(:name) }, - 'companies.name' => Proc.new { |n| n.try(:company).try(:name) }, - :transport_mode => Proc.new { |n| n.transport_mode.nil? ? '-' : t("enumerize.line.transport_mode.#{n.try(:transport_mode)}") }, - :transport_submode => Proc.new { |n| n.transport_submode.nil? ? '-' : t("enumerize.line.transport_submode.#{n.try(:transport_submode)}") } }, - [:show, :delete], - [], - 'table has-filter has-search' + = table_builder_2 @lines, + [ \ + TableBuilderHelper::Column.new( \ + name: 'ID Codifligne', \ + attribute: Proc.new { |n| n.objectid.local_id }, \ + sortable: false \ + ), \ + TableBuilderHelper::Column.new( \ + key: :number, \ + attribute: 'number' \ + ), \ + TableBuilderHelper::Column.new( \ + key: :name, \ + attribute: 'name' \ + ), \ + TableBuilderHelper::Column.new( \ + key: :deactivated, \ + attribute: Proc.new{|n| n.deactivated? ? t('false') : t('true')} \ + ), \ + TableBuilderHelper::Column.new( \ + key: 'networks.name', \ + attribute: Proc.new { |n| n.try(:network).try(:name) } \ + ), \ + TableBuilderHelper::Column.new( \ + key: 'companies.name', \ + attribute: Proc.new { |n| n.try(:company).try(:name) } \ + ), \ + TableBuilderHelper::Column.new( \ + key: :transport_mode, \ + attribute: Proc.new { |n| n.transport_mode.nil? ? '-' : t("enumerize.line.transport_mode.#{n.try(:transport_mode)}") } \ + ), \ + TableBuilderHelper::Column.new( \ + key: :transport_submode, \ + attribute: Proc.new { |n| n.transport_submode.nil? ? '-' : t("enumerize.line.transport_submode.#{n.try(:transport_submode)}") } \ + ) \ + ], + links: [:show], + cls: 'table has-filter has-search' = new_pagination @lines, 'pull-right' diff --git a/app/views/referentials/show.html.slim b/app/views/referentials/show.html.slim index 81cd0ebfd..17ba8ad88 100644 --- a/app/views/referentials/show.html.slim +++ b/app/views/referentials/show.html.slim @@ -70,7 +70,7 @@ = f.input :date_type, as: :radio_buttons, label: false = f.input :begin_date, as: :date, label: t('titles.clean_up.begin_date'),:wrapper_html => { class: 'date smart_date', title: t('titles.clean_up.begin_date') } - = f.input :end_date, as: :date, label: t('titles.clean_up.end_date'), :wrapper_html => { class: 'date cleanup_end_date_wrapper hidden smert_date', title: t('titles.clean_up.end_date') } + = f.input :end_date, as: :date, label: t('titles.clean_up.end_date'), :wrapper_html => { class: 'date cleanup_end_date_wrapper smart_date', title: t('titles.clean_up.end_date'), id: "end_date" } .modal-footer button.btn.btn-link type='button' data-dismiss='modal' Annuler |
