aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/clean_ups_controller.rb2
-rw-r--r--app/models/chouette/time_table.rb7
-rw-r--r--app/models/clean_up.rb13
-rw-r--r--app/views/referentials/_clean.html.slim3
-rw-r--r--config/locales/clean_ups.en.yml6
-rw-r--r--config/locales/clean_ups.fr.yml6
-rw-r--r--db/migrate/20161116130746_rename_columnexpected_date_from_cleanups.rb9
-rw-r--r--db/migrate/20161116130958_add_end_date_to_clean_ups.rb5
-rw-r--r--db/schema.rb23
-rw-r--r--spec/models/clean_up_spec.rb2
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