aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--app/controllers/chouette_controller.rb1
-rw-r--r--app/controllers/concerns/paper_trail_support.rb11
-rw-r--r--app/models/api/v1/api_key.rb1
-rw-r--r--app/models/calendar.rb2
-rw-r--r--app/models/compliance_check_set.rb1
-rw-r--r--app/models/compliance_control_set.rb1
-rw-r--r--spec/models/api/v1/api_key_spec.rb1
-rw-r--r--spec/models/calendar_spec.rb2
-rw-r--r--spec/models/chouette/access_link_spec.rb1
-rw-r--r--spec/models/chouette/access_point_spec.rb1
-rw-r--r--spec/models/chouette/company_spec.rb1
-rw-r--r--spec/models/chouette/connection_link_spec.rb1
-rw-r--r--spec/models/chouette/group_of_line_spec.rb1
-rw-r--r--spec/models/chouette/journey_pattern_spec.rb2
-rw-r--r--spec/models/chouette/line_spec.rb1
-rw-r--r--spec/models/chouette/network_spec.rb1
-rw-r--r--spec/models/chouette/route/route_base_spec.rb1
-rw-r--r--spec/models/chouette/routing_constraint_zone_spec.rb1
-rw-r--r--spec/models/chouette/stop_area_spec.rb1
-rw-r--r--spec/models/chouette/stop_point_spec.rb1
-rw-r--r--spec/models/chouette/time_table_spec.rb1
-rw-r--r--spec/models/chouette/timeband_spec.rb1
-rw-r--r--spec/models/chouette/vehicle_journey_spec.rb1
-rw-r--r--spec/models/compliance_check_set_spec.rb2
-rw-r--r--spec/models/compliance_check_spec.rb1
-rw-r--r--spec/models/compliance_control_set_spec.rb1
-rw-r--r--spec/rails_helper.rb1
-rw-r--r--spec/spec_helper.rb1
29 files changed, 42 insertions, 2 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 6a9f6942f..97f5548ae 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -1,5 +1,7 @@
class ApplicationController < ActionController::Base
+ include PaperTrailSupport
include Pundit
+
rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized
# TODO : Delete hack to authorize Cross Request for js and json get request from javascript
diff --git a/app/controllers/chouette_controller.rb b/app/controllers/chouette_controller.rb
index e6e7c0a8a..3e4f3af27 100644
--- a/app/controllers/chouette_controller.rb
+++ b/app/controllers/chouette_controller.rb
@@ -1,3 +1,4 @@
class ChouetteController < InheritedResources::Base
+ include PaperTrailSupport
include ApplicationHelper
end
diff --git a/app/controllers/concerns/paper_trail_support.rb b/app/controllers/concerns/paper_trail_support.rb
new file mode 100644
index 000000000..4b0b1a7c7
--- /dev/null
+++ b/app/controllers/concerns/paper_trail_support.rb
@@ -0,0 +1,11 @@
+module PaperTrailSupport
+ extend ActiveSupport::Concern
+
+ included do
+ before_action :set_paper_trail_whodunnit
+
+ def user_for_paper_trail
+ current_user ? current_user.name : ''
+ end
+ end
+end
diff --git a/app/models/api/v1/api_key.rb b/app/models/api/v1/api_key.rb
index 767e65f3a..09c6f77ac 100644
--- a/app/models/api/v1/api_key.rb
+++ b/app/models/api/v1/api_key.rb
@@ -1,6 +1,7 @@
module Api
module V1
class ApiKey < ::ActiveRecord::Base
+ has_paper_trail
before_create :generate_access_token
belongs_to :referential, :class_name => '::Referential'
belongs_to :organisation, :class_name => '::Organisation'
diff --git a/app/models/calendar.rb b/app/models/calendar.rb
index bb38e74df..b2e73929f 100644
--- a/app/models/calendar.rb
+++ b/app/models/calendar.rb
@@ -3,7 +3,7 @@ require_relative 'calendar/date_value'
require_relative 'calendar/period'
class Calendar < ActiveRecord::Base
-
+ has_paper_trail
belongs_to :organisation
has_many :time_tables
diff --git a/app/models/compliance_check_set.rb b/app/models/compliance_check_set.rb
index 80e499b74..00cf057f4 100644
--- a/app/models/compliance_check_set.rb
+++ b/app/models/compliance_check_set.rb
@@ -1,5 +1,6 @@
class ComplianceCheckSet < ActiveRecord::Base
extend Enumerize
+ has_paper_trail
belongs_to :referential
belongs_to :compliance_control_set
diff --git a/app/models/compliance_control_set.rb b/app/models/compliance_control_set.rb
index deb46f5a1..41076fefc 100644
--- a/app/models/compliance_control_set.rb
+++ b/app/models/compliance_control_set.rb
@@ -1,4 +1,5 @@
class ComplianceControlSet < ActiveRecord::Base
+ has_paper_trail
belongs_to :organisation
has_many :compliance_control_blocks, dependent: :destroy
has_many :compliance_controls, dependent: :destroy
diff --git a/spec/models/api/v1/api_key_spec.rb b/spec/models/api/v1/api_key_spec.rb
index b700429d3..cc483a118 100644
--- a/spec/models/api/v1/api_key_spec.rb
+++ b/spec/models/api/v1/api_key_spec.rb
@@ -4,6 +4,7 @@ RSpec.describe Api::V1::ApiKey, type: :model do
subject { create(:api_key) }
it { should validate_presence_of :organisation }
+ it { is_expected.to be_versioned }
it 'should have a valid factory' do
expect(build(:api_key)).to be_valid
diff --git a/spec/models/calendar_spec.rb b/spec/models/calendar_spec.rb
index f5020ebf8..e71c2b081 100644
--- a/spec/models/calendar_spec.rb
+++ b/spec/models/calendar_spec.rb
@@ -6,6 +6,7 @@ RSpec.describe Calendar, :type => :model do
it { is_expected.to validate_presence_of(:name) }
it { is_expected.to validate_presence_of(:short_name) }
it { is_expected.to validate_uniqueness_of(:short_name) }
+ it { is_expected.to be_versioned }
describe '#to_time_table' do
let(:calendar) { create(:calendar, date_ranges: [Date.today...(Date.today + 1.month)]) }
@@ -29,7 +30,6 @@ RSpec.describe Calendar, :type => :model do
end
end
-
describe 'before_validation' do
let(:calendar) { create(:calendar, date_ranges: []) }
diff --git a/spec/models/chouette/access_link_spec.rb b/spec/models/chouette/access_link_spec.rb
index d0f351480..ced99eb1d 100644
--- a/spec/models/chouette/access_link_spec.rb
+++ b/spec/models/chouette/access_link_spec.rb
@@ -4,6 +4,7 @@ describe Chouette::AccessLink, :type => :model do
subject { create(:access_link) }
it { is_expected.to validate_uniqueness_of :objectid }
+ it { is_expected.to be_versioned }
describe '#get_objectid' do
subject { super().get_objectid }
diff --git a/spec/models/chouette/access_point_spec.rb b/spec/models/chouette/access_point_spec.rb
index a6798ec3b..c734ecedf 100644
--- a/spec/models/chouette/access_point_spec.rb
+++ b/spec/models/chouette/access_point_spec.rb
@@ -12,6 +12,7 @@ describe Chouette::AccessPoint, :type => :model do
it { is_expected.to validate_presence_of :name }
it { is_expected.to validate_numericality_of :latitude }
it { is_expected.to validate_numericality_of :longitude }
+ it { is_expected.to be_versioned }
describe ".latitude" do
it "should accept -90 value" do
diff --git a/spec/models/chouette/company_spec.rb b/spec/models/chouette/company_spec.rb
index a3101d79c..34b19eeda 100644
--- a/spec/models/chouette/company_spec.rb
+++ b/spec/models/chouette/company_spec.rb
@@ -3,6 +3,7 @@ require 'spec_helper'
describe Chouette::Company, :type => :model do
subject { create(:company) }
it { should validate_presence_of :name }
+ it { is_expected.to be_versioned }
describe "#nullables empty" do
it "should set null empty nullable attributes" do
diff --git a/spec/models/chouette/connection_link_spec.rb b/spec/models/chouette/connection_link_spec.rb
index 04c15b42e..4ab67d007 100644
--- a/spec/models/chouette/connection_link_spec.rb
+++ b/spec/models/chouette/connection_link_spec.rb
@@ -8,6 +8,7 @@ describe Chouette::ConnectionLink, :type => :model do
subject { create(:connection_link) }
it { is_expected.to validate_uniqueness_of :objectid }
+ it { is_expected.to be_versioned }
describe '#get_objectid' do
subject { super().get_objectid }
diff --git a/spec/models/chouette/group_of_line_spec.rb b/spec/models/chouette/group_of_line_spec.rb
index 29b4433c5..d43d75374 100644
--- a/spec/models/chouette/group_of_line_spec.rb
+++ b/spec/models/chouette/group_of_line_spec.rb
@@ -4,6 +4,7 @@ describe Chouette::GroupOfLine, :type => :model do
subject { create(:group_of_line) }
it { should validate_presence_of :name }
+ it { is_expected.to be_versioned }
describe "#stop_areas" do
let!(:line){create(:line, :group_of_lines => [subject])}
diff --git a/spec/models/chouette/journey_pattern_spec.rb b/spec/models/chouette/journey_pattern_spec.rb
index 047022ade..ea7c2a2e9 100644
--- a/spec/models/chouette/journey_pattern_spec.rb
+++ b/spec/models/chouette/journey_pattern_spec.rb
@@ -1,6 +1,8 @@
require 'spec_helper'
describe Chouette::JourneyPattern, :type => :model do
+ it { is_expected.to be_versioned }
+
describe 'checksum' do
it_behaves_like 'checksum support', :journey_pattern
end
diff --git a/spec/models/chouette/line_spec.rb b/spec/models/chouette/line_spec.rb
index bc7b6e0c7..056d5da9e 100644
--- a/spec/models/chouette/line_spec.rb
+++ b/spec/models/chouette/line_spec.rb
@@ -7,6 +7,7 @@ describe Chouette::Line, :type => :model do
# it { is_expected.to validate_presence_of :network }
# it { is_expected.to validate_presence_of :company }
it { should validate_presence_of :name }
+ it { is_expected.to be_versioned }
describe '#display_name' do
it 'should display local_id, number, name and company name' do
diff --git a/spec/models/chouette/network_spec.rb b/spec/models/chouette/network_spec.rb
index 32bacc512..78a4150df 100644
--- a/spec/models/chouette/network_spec.rb
+++ b/spec/models/chouette/network_spec.rb
@@ -3,6 +3,7 @@ require 'spec_helper'
describe Chouette::Network, :type => :model do
subject { create(:network) }
it { should validate_presence_of :name }
+ it { is_expected.to be_versioned }
describe "#stop_areas" do
let!(:line){create(:line, :network => subject)}
diff --git a/spec/models/chouette/route/route_base_spec.rb b/spec/models/chouette/route/route_base_spec.rb
index 79daeb6c2..26f57eae5 100644
--- a/spec/models/chouette/route/route_base_spec.rb
+++ b/spec/models/chouette/route/route_base_spec.rb
@@ -15,6 +15,7 @@ RSpec.describe Chouette::Route, :type => :model do
#it { is_expected.to validate_presence_of :direction_code }
it { is_expected.to validate_inclusion_of(:direction).in_array(%i(straight_forward backward clockwise counter_clockwise north north_west west south_west south south_east east north_east)) }
it { is_expected.to validate_inclusion_of(:wayback).in_array(%i(outbound inbound)) }
+ it { is_expected.to be_versioned }
context "reordering methods" do
let(:bad_stop_point_ids){subject.stop_points.map { |sp| sp.id + 1}}
diff --git a/spec/models/chouette/routing_constraint_zone_spec.rb b/spec/models/chouette/routing_constraint_zone_spec.rb
index c344642e6..8ebd8695c 100644
--- a/spec/models/chouette/routing_constraint_zone_spec.rb
+++ b/spec/models/chouette/routing_constraint_zone_spec.rb
@@ -7,6 +7,7 @@ describe Chouette::RoutingConstraintZone, type: :model do
it { is_expected.to validate_presence_of :name }
# shoulda matcher to validate length of array ?
xit { is_expected.to validate_length_of(:stop_point_ids).is_at_least(2) }
+ it { is_expected.to be_versioned }
describe 'checksum' do
it_behaves_like 'checksum support', :routing_constraint_zone
diff --git a/spec/models/chouette/stop_area_spec.rb b/spec/models/chouette/stop_area_spec.rb
index 1e0b4af84..c6aeafaf8 100644
--- a/spec/models/chouette/stop_area_spec.rb
+++ b/spec/models/chouette/stop_area_spec.rb
@@ -11,6 +11,7 @@ describe Chouette::StopArea, :type => :model do
it { should validate_presence_of :name }
it { should validate_numericality_of :latitude }
it { should validate_numericality_of :longitude }
+ it { is_expected.to be_versioned }
# describe ".latitude" do
# it "should accept -90 value" do
diff --git a/spec/models/chouette/stop_point_spec.rb b/spec/models/chouette/stop_point_spec.rb
index 264fd26fc..6b9e7727f 100644
--- a/spec/models/chouette/stop_point_spec.rb
+++ b/spec/models/chouette/stop_point_spec.rb
@@ -4,6 +4,7 @@ describe Chouette::StopPoint, :type => :model do
it { is_expected.to validate_uniqueness_of :objectid }
it { is_expected.to validate_presence_of :stop_area }
+ it { is_expected.to be_versioned }
describe '#objectid' do
subject { super().get_objectid }
diff --git a/spec/models/chouette/time_table_spec.rb b/spec/models/chouette/time_table_spec.rb
index 761c39e5b..677308fc8 100644
--- a/spec/models/chouette/time_table_spec.rb
+++ b/spec/models/chouette/time_table_spec.rb
@@ -6,6 +6,7 @@ describe Chouette::TimeTable, :type => :model do
it { is_expected.to validate_presence_of :comment }
it { is_expected.to validate_uniqueness_of :objectid }
+ it { is_expected.to be_versioned }
def create_time_table_periode time_table, start_date, end_date
create(:time_table_period, time_table: time_table, :period_start => start_date, :period_end => end_date)
diff --git a/spec/models/chouette/timeband_spec.rb b/spec/models/chouette/timeband_spec.rb
index 1f812a6e2..b960c203f 100644
--- a/spec/models/chouette/timeband_spec.rb
+++ b/spec/models/chouette/timeband_spec.rb
@@ -1,6 +1,7 @@
require 'spec_helper'
describe Chouette::Timeband, :type => :model do
+ it { is_expected.to be_versioned }
describe '#create' do
context 'when valid' do
diff --git a/spec/models/chouette/vehicle_journey_spec.rb b/spec/models/chouette/vehicle_journey_spec.rb
index 86aa475f0..ac9b21ceb 100644
--- a/spec/models/chouette/vehicle_journey_spec.rb
+++ b/spec/models/chouette/vehicle_journey_spec.rb
@@ -1,6 +1,7 @@
require 'spec_helper'
describe Chouette::VehicleJourney, :type => :model do
+ it { is_expected.to be_versioned }
it "must be valid with an at-stop day offset of 1" do
vehicle_journey = create(
diff --git a/spec/models/compliance_check_set_spec.rb b/spec/models/compliance_check_set_spec.rb
index 0159d1c6b..fbf0f035b 100644
--- a/spec/models/compliance_check_set_spec.rb
+++ b/spec/models/compliance_check_set_spec.rb
@@ -5,6 +5,7 @@ RSpec.describe ComplianceCheckSet, type: :model do
expect(FactoryGirl.build(:compliance_check_set)).to be_valid
end
+
it { should belong_to :referential }
it { should belong_to :workbench }
it { should belong_to :compliance_control_set }
@@ -12,6 +13,7 @@ RSpec.describe ComplianceCheckSet, type: :model do
it { should have_many :compliance_checks }
it { should have_many :compliance_check_blocks }
+ it { is_expected.to be_versioned }
describe "#update_status" do
it "updates :status to successful when all resources are OK" do
diff --git a/spec/models/compliance_check_spec.rb b/spec/models/compliance_check_spec.rb
index bd797ab09..f83d78c29 100644
--- a/spec/models/compliance_check_spec.rb
+++ b/spec/models/compliance_check_spec.rb
@@ -1,4 +1,5 @@
RSpec.describe ComplianceCheck, type: :model do
+
it 'should have a valid factory' do
expect(FactoryGirl.build(:compliance_check)).to be_valid
end
diff --git a/spec/models/compliance_control_set_spec.rb b/spec/models/compliance_control_set_spec.rb
index 04d1c418c..c157dcaf3 100644
--- a/spec/models/compliance_control_set_spec.rb
+++ b/spec/models/compliance_control_set_spec.rb
@@ -10,4 +10,5 @@ RSpec.describe ComplianceControlSet, type: :model do
it { should have_many(:compliance_control_blocks).dependent(:destroy) }
it { should validate_presence_of :name }
+ it { is_expected.to be_versioned }
end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 6d9f4a4a2..47578405e 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -3,6 +3,7 @@ ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
+
# Add additional requires below this line. Rails is not loaded until this point!
# Requires supporting ruby files with custom matchers and macros, etc, in
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 6b37b9fa8..9679952df 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -34,6 +34,7 @@ require 'webmock/rspec'
require 'simplecov'
require 'sidekiq/testing'
Sidekiq::Testing.fake!
+require 'paper_trail/frameworks/rspec'
# Requires supporting ruby files with custom matchers and macros, etc, in
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are