diff options
| author | Xinhui | 2016-11-16 14:23:36 +0100 |
|---|---|---|
| committer | Xinhui | 2016-11-16 14:23:36 +0100 |
| commit | d5469a07545b21da81b1ccfbdb65378c187d7bef (patch) | |
| tree | bf94d46a83c25e19db4e4160f988f89ab4ebb00c | |
| parent | 27863346ac69845de01f3b75de67303226181e31 (diff) | |
| download | chouette-core-d5469a07545b21da81b1ccfbdb65378c187d7bef.tar.bz2 | |
Model CleanUp add end_date
Refs #1934
| -rw-r--r-- | app/controllers/clean_ups_controller.rb | 2 | ||||
| -rw-r--r-- | app/models/chouette/time_table.rb | 7 | ||||
| -rw-r--r-- | app/models/clean_up.rb | 13 | ||||
| -rw-r--r-- | app/views/referentials/_clean.html.slim | 3 | ||||
| -rw-r--r-- | config/locales/clean_ups.en.yml | 6 | ||||
| -rw-r--r-- | config/locales/clean_ups.fr.yml | 6 | ||||
| -rw-r--r-- | db/migrate/20161116130746_rename_columnexpected_date_from_cleanups.rb | 9 | ||||
| -rw-r--r-- | db/migrate/20161116130958_add_end_date_to_clean_ups.rb | 5 | ||||
| -rw-r--r-- | db/schema.rb | 23 | ||||
| -rw-r--r-- | spec/models/clean_up_spec.rb | 2 |
10 files changed, 56 insertions, 20 deletions
diff --git a/app/controllers/clean_ups_controller.rb b/app/controllers/clean_ups_controller.rb index c6e4ecd44..1e4835775 100644 --- a/app/controllers/clean_ups_controller.rb +++ b/app/controllers/clean_ups_controller.rb @@ -14,6 +14,6 @@ class CleanUpsController < ChouetteController end def clean_up_params - params.require(:clean_up).permit(:keep_lines, :keep_stops, :keep_companies, :keep_networks, :keep_group_of_lines, :expected_date) + params.require(:clean_up).permit(:keep_lines, :keep_stops, :keep_companies, :keep_networks, :keep_group_of_lines, :begin_date, :end_date) end end diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb index 9af80fbb7..abe6186a7 100644 --- a/app/models/chouette/time_table.rb +++ b/app/models/chouette/time_table.rb @@ -4,8 +4,8 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord self.primary_key = "id" acts_as_taggable - - attr_accessor :monday,:tuesday,:wednesday,:thursday,:friday,:saturday,:sunday + + attr_accessor :monday,:tuesday,:wednesday,:thursday,:friday,:saturday,:sunday attr_accessor :tag_search def self.ransackable_attributes auth_object = nil @@ -70,6 +70,7 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord return false unless self.end_date self.end_date <= expected_date end + def validity_out_between?(starting_date, ending_date) return false unless self.start_date starting_date < self.end_date && @@ -414,7 +415,7 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord # remove dates form tt which aren't in another_tt def intersect!(another_tt) transaction do - + # transform tt as effective dates and get common ones days = another_tt.intersects(self.effective_days) & self.intersects(another_tt.effective_days) self.dates.clear diff --git a/app/models/clean_up.rb b/app/models/clean_up.rb index 607362682..a44bb46a4 100644 --- a/app/models/clean_up.rb +++ b/app/models/clean_up.rb @@ -3,7 +3,7 @@ class CleanUp < ActiveRecord::Base belongs_to :referential has_one :clean_up_result - validates :expected_date, presence: true + validates :begin_date, presence: true after_commit :perform_cleanup, :on => :create def perform_cleanup @@ -12,15 +12,16 @@ class CleanUp < ActiveRecord::Base def clean result = {} - tms = Chouette::TimeTable.validity_out_from_on?(expected_date) - tms.each.map(&:delete) - - result['time_table_count'] = tms.size + result['time_table_count'] = self.clean_time_tables result['vehicle_journey_count'] = self.clean_vehicle_journeys result['journey_pattern_count'] = self.clean_journey_patterns result end + def clean_time_tables + Chouette::TimeTable.validity_out_between?(begin_date, end_date).delete_all + end + def clean_vehicle_journeys ids = Chouette::VehicleJourney.includes(:time_tables).where(:time_tables => {id: nil}).pluck(:id) Chouette::VehicleJourney.where(id: ids).delete_all @@ -61,6 +62,6 @@ class CleanUp < ActiveRecord::Base def log_failed message_attributs update_attribute(:ended_at, Time.now) - # self.clean_up_result.create(message_key: :failed, message_attributs: message_attributs) + CleanUpResult.create(clean_up: self, message_key: :failed, message_attributs: message_attributs) end end diff --git a/app/views/referentials/_clean.html.slim b/app/views/referentials/_clean.html.slim index cf79da8a6..a962d5417 100644 --- a/app/views/referentials/_clean.html.slim +++ b/app/views/referentials/_clean.html.slim @@ -1,6 +1,7 @@ #clean_up = semantic_form_for [@referential, CleanUp.new] do |form| = form.inputs do - = form.input :expected_date, as: :date_picker, :wrapper_html => { class: 'date', title: t('titles.clean_up.expected_date') } + = form.input :begin_date, as: :date_picker, :wrapper_html => { class: 'date', title: t('titles.clean_up.begin_date') } + = form.input :end_date, as: :date_picker, :wrapper_html => { class: 'date', title: t('titles.clean_up.end_date') } = form.actions do = form.action :submit, as: :button, label: t('clean_ups.actions.clean_up') , :button_html => { data: { confirm: t('clean_ups.actions.confirm') } } diff --git a/config/locales/clean_ups.en.yml b/config/locales/clean_ups.en.yml index 41d1983dc..77b11fec1 100644 --- a/config/locales/clean_ups.en.yml +++ b/config/locales/clean_ups.en.yml @@ -10,7 +10,9 @@ en: activemodel: attributes: clean_up: - expected_date: "Final date : " + begin_date: "Begin date : " + end_date: "End date : " titles: clean_up: - expected_date: "value included in clean up" + begin_date: "Begin date of clean up" + end_date: "End date of clean up" diff --git a/config/locales/clean_ups.fr.yml b/config/locales/clean_ups.fr.yml index 40fbf3281..096b78c89 100644 --- a/config/locales/clean_ups.fr.yml +++ b/config/locales/clean_ups.fr.yml @@ -10,7 +10,9 @@ fr: activemodel: attributes: clean_up: - expected_date: "Date limite : " + begin_date: "Début date limite : " + end_date: "Fin date limite : " titles: clean_up: - expected_date: "valeur incluse dans la purge" + begin_date: "Début date de la purge" + end_date: "Fin date de la purge" diff --git a/db/migrate/20161116130746_rename_columnexpected_date_from_cleanups.rb b/db/migrate/20161116130746_rename_columnexpected_date_from_cleanups.rb new file mode 100644 index 000000000..a5fa2577d --- /dev/null +++ b/db/migrate/20161116130746_rename_columnexpected_date_from_cleanups.rb @@ -0,0 +1,9 @@ +class RenameColumnexpectedDateFromCleanups < ActiveRecord::Migration + def up + rename_column :clean_ups, :expected_date, :begin_date + end + + def down + rename_column :clean_ups, :begin_date, :expected_date + end +end diff --git a/db/migrate/20161116130958_add_end_date_to_clean_ups.rb b/db/migrate/20161116130958_add_end_date_to_clean_ups.rb new file mode 100644 index 000000000..b1c1f7226 --- /dev/null +++ b/db/migrate/20161116130958_add_end_date_to_clean_ups.rb @@ -0,0 +1,5 @@ +class AddEndDateToCleanUps < ActiveRecord::Migration + def change + add_column :clean_ups, :end_date, :datetime + end +end diff --git a/db/schema.rb b/db/schema.rb index 9eb9fc7b6..035856060 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20161115142708) do +ActiveRecord::Schema.define(version: 20161116130958) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -92,9 +92,10 @@ ActiveRecord::Schema.define(version: 20161115142708) do t.datetime "started_at" t.datetime "ended_at" t.integer "referential_id" - t.datetime "expected_date" + t.datetime "begin_date" t.datetime "created_at" t.datetime "updated_at" + t.datetime "end_date" end add_index "clean_ups", ["referential_id"], :name => "index_clean_ups_on_referential_id" @@ -146,6 +147,22 @@ ActiveRecord::Schema.define(version: 20161115142708) do add_index "connection_links", ["objectid"], :name => "connection_links_objectid_key", :unique => true + create_table "delayed_jobs", force: true do |t| + t.integer "priority", default: 0 + t.integer "attempts", default: 0 + t.text "handler" + t.text "last_error" + t.datetime "run_at" + t.datetime "locked_at" + t.datetime "failed_at" + t.string "locked_by" + t.string "queue" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" + create_table "exports", force: true do |t| t.integer "referential_id", limit: 8 t.string "status" @@ -729,8 +746,6 @@ ActiveRecord::Schema.define(version: 20161115142708) do add_index "workbenches", ["stop_area_referential_id"], :name => "index_workbenches_on_stop_area_referential_id" Foreigner.load - add_foreign_key "access_links", "access_points", name: "aclk_acpt_fkey", dependent: :delete - add_foreign_key "group_of_lines_lines", "group_of_lines", name: "groupofline_group_fkey", dependent: :delete add_foreign_key "journey_frequencies", "timebands", name: "journey_frequencies_timeband_id_fk", dependent: :nullify diff --git a/spec/models/clean_up_spec.rb b/spec/models/clean_up_spec.rb index 583e28136..c495abdfe 100644 --- a/spec/models/clean_up_spec.rb +++ b/spec/models/clean_up_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' RSpec.describe CleanUp, :type => :model do let(:cleaner) { CleanUp.new } - it { should validate_presence_of(:expected_date) } + it { should validate_presence_of(:begin_date) } it { should belong_to(:referential) } it 'should delete vehiclejourneys without timetables' do |
