aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/compliance_control_sets_controller.rb20
-rw-r--r--app/models/compliance_control_set.rb3
-rw-r--r--app/models/organisation.rb1
-rw-r--r--app/views/compliance_control_sets/_form.html.slim49
-rw-r--r--app/views/compliance_control_sets/edit.html.slim2
-rw-r--r--app/views/compliance_control_sets/new.html.slim2
-rw-r--r--app/views/compliance_control_sets/show.html.slim79
-rw-r--r--db/schema.rb47
-rw-r--r--spec/controllers/compliance_control_sets_controller_spec.rb55
-rw-r--r--spec/models/compliance_control_set_spec.rb2
10 files changed, 103 insertions, 157 deletions
diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb
index b0a719cdc..1b23becaa 100644
--- a/app/controllers/compliance_control_sets_controller.rb
+++ b/app/controllers/compliance_control_sets_controller.rb
@@ -1,15 +1,20 @@
class ComplianceControlSetsController < BreadcrumbController
-
defaults resource_class: ComplianceControlSet
respond_to :html
def index
- index! do
- @compliance_control_sets = decorate_compliance_control_sets(@compliance_control_sets)
- build_breadcrumb :show
+ index! do |format|
+ format.html {
+ @compliance_control_sets = decorate_compliance_control_sets(@compliance_control_sets)
+ }
end
end
+ def show
+ show! do
+ @compliance_control_set = @compliance_control_set.decorate
+ end
+ end
def decorate_compliance_control_sets(compliance_control_sets)
ModelDecorator.decorate(
@@ -18,4 +23,11 @@ class ComplianceControlSetsController < BreadcrumbController
)
end
+ protected
+
+ private
+
+ def compliance_control_set_params
+ params.require(:compliance_control_set).permit(:name)
+ end
end
diff --git a/app/models/compliance_control_set.rb b/app/models/compliance_control_set.rb
index ca112531d..cefdfbf1f 100644
--- a/app/models/compliance_control_set.rb
+++ b/app/models/compliance_control_set.rb
@@ -1,4 +1,7 @@
class ComplianceControlSet < ActiveRecord::Base
belongs_to :organisation
has_many :compliance_controls
+
+ validates :name, presence: true
+
end
diff --git a/app/models/organisation.rb b/app/models/organisation.rb
index 895ca03d9..ba65ad375 100644
--- a/app/models/organisation.rb
+++ b/app/models/organisation.rb
@@ -4,6 +4,7 @@ class Organisation < ActiveRecord::Base
has_many :users, :dependent => :destroy
has_many :referentials, :dependent => :destroy
has_many :rule_parameter_sets, :dependent => :destroy
+ has_many :compliance_control_sets, :dependent => :destroy
has_many :stop_area_referential_memberships
has_many :stop_area_referentials, through: :stop_area_referential_memberships
diff --git a/app/views/compliance_control_sets/_form.html.slim b/app/views/compliance_control_sets/_form.html.slim
index ba14edf41..cf144bbd9 100644
--- a/app/views/compliance_control_sets/_form.html.slim
+++ b/app/views/compliance_control_sets/_form.html.slim
@@ -1,53 +1,8 @@
-= simple_form_for @compliance_control_sets, html: { class: 'form-horizontal', id: 'calendar_form' }, wrapper: :horizontal_form do |f|
+= simple_form_for @compliance_control_set, html: { class: 'form-horizontal', id: 'compliance_control_set_form' }, wrapper: :horizontal_form do |f|
.row
.col-lg-12
= f.input :name
- = f.input :short_name
-
- - if policy(@compliance_control_sets).share?
- .form-group.has_switch
- = f.label :shared, class: 'col-sm-4 col-xs-5 control-label'
- = f.input :shared, as: :boolean, checked_value: true, unchecked_value: false, label: content_tag(:span, t("#{@calendar.shared}"), class: 'switch-label', data: {checkedValue: t('true'), uncheckedValue: t('false')}), wrapper_html: { class: 'col-sm-8 col-xs-7'}
.separator
-
- .row
- .col-lg-12
- .subform
- .nested-head
- .wrapper
- div
- .form-group
- label.control-label
- = Calendar.human_attribute_name(:date)
- div
-
- = f.simple_fields_for :date_values do |date_value|
- = render 'date_value_fields', f: date_value
-
- .links.nested-linker
- = link_to_add_association t('simple_form.labels.calendar.add_a_date'), f, :date_values, class: 'btn btn-outline-primary'
-
- .separator
-
- .row
- .col-lg-12
- .subform
- .nested-head
- .wrapper
- div
- .form-group
- label.control-label
- = t('simple_form.labels.calendar.ranges.begin')
- div
- .form-group
- label.control-label
- = t('simple_form.labels.calendar.ranges.end')
- div
-
- = f.simple_fields_for :periods do |period|
- = render 'period_fields', f: period
- .links.nested-linker
- = link_to_add_association t('simple_form.labels.calendar.add_a_date_range'), f, :periods, class: 'btn btn-outline-primary'
- = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'calendar_form'
+ = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'compliance_control_set_form'
diff --git a/app/views/compliance_control_sets/edit.html.slim b/app/views/compliance_control_sets/edit.html.slim
index 73381be34..a9b8d7253 100644
--- a/app/views/compliance_control_sets/edit.html.slim
+++ b/app/views/compliance_control_sets/edit.html.slim
@@ -7,4 +7,4 @@
.container-fluid
.row
.col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
- /= render 'form'
+ = render 'form'
diff --git a/app/views/compliance_control_sets/new.html.slim b/app/views/compliance_control_sets/new.html.slim
index 93475974a..d6be41ee8 100644
--- a/app/views/compliance_control_sets/new.html.slim
+++ b/app/views/compliance_control_sets/new.html.slim
@@ -8,4 +8,4 @@
.container-fluid
.row
.col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1
- /= render 'form'
+ = render 'form'
diff --git a/app/views/compliance_control_sets/show.html.slim b/app/views/compliance_control_sets/show.html.slim
index 12ecc1894..b4a5b2260 100644
--- a/app/views/compliance_control_sets/show.html.slim
+++ b/app/views/compliance_control_sets/show.html.slim
@@ -6,77 +6,20 @@
/ Below is secondary actions & optional contents (filters, ...)
.row.mb-sm
.col-lg-12.text-right
- /- @compliance_control_set.action_links.each do |link|
- / - if link.is_a?(HTMLElement)
- / = link.to_html(class: 'btn btn-primary')
- / - else
- / = link_to link.href,
- / method: link.method,
- / data: link.data,
- / class: 'btn btn-primary' do
- / = link.content
+ - @compliance_control_set.action_links.each do |link|
+ - if link.is_a?(HTMLElement)
+ = link.to_html(class: 'btn btn-primary')
+ - else
+ = link_to link.href,
+ method: link.method,
+ data: link.data,
+ class: 'btn btn-primary' do
+ = link.content
/ PageContent
.page_content
.container-fluid
.row
.col-lg-6.col-md-6.col-sm-12.col-xs-12
- /= definition_list t('metadatas'),
- / { t('activerecord.attributes.referential.status') => @referential.archived? ? "<div class='td-block'><span class='fa fa-archive'></span><span>#{t('activerecord.attributes.referential.archived_at')}</span></div>".html_safe : "<div class='td-block'><span class='sb sb-lg sb-preparing'></span><span>#{t('activerecord.attributes.referential.archived_at_null')}</span></div>".html_safe,
- / @referential.human_attribute_name(:validity_period) => (@referential.validity_period.present? ? t('validity_range', debut: l(@referential.try(:validity_period).try(:begin), format: :short), end: l(@referential.try(:validity_period).try(:end), format: :short)) : '-'),
- / @referential.human_attribute_name(:organisation) => @referential.organisation.name,
- / @referential.human_attribute_name(:published_at) => '-' }
-
- /- if params[:q].present? or @reflines.any?
- .row
- .col-lg-12
- /= render 'filters'
-
- /- if @reflines.any?
- .row
- .col-lg-12
- / ID Codif, nom court, nom de la ligne, réseau, mode, transporteur principal, actions = [show, edit_notes]
- = table_builder_2 @reflines,
- [ \
- TableBuilderHelper::Column.new( \
- name: t('id_codif'), \
- attribute: Proc.new { |n| n.objectid.local_id }, \
- sortable: false \
- ), \
- TableBuilderHelper::Column.new( \
- key: :number, \
- attribute: 'number' \
- ), \
- TableBuilderHelper::Column.new( \
- key: :name, \
- attribute: 'name', \
- link_to: lambda do |line| \
- referential_line_path(@referential, line) \
- end \
- ), \
- TableBuilderHelper::Column.new( \
- key: :deactivated, \
- attribute: Proc.new { |n| n.deactivated? ? t('false') : t('true') } \
- ), \
- TableBuilderHelper::Column.new( \
- key: :transport_mode, \
- attribute: Proc.new { |n| n.transport_mode ? t("enumerize.line.transport_mode.#{n.transport_mode}") : '' }, \
- ), \
- 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) } \
- ) \
- ],
- links: [:show],
- cls: 'table has-filter has-search'
-
- = new_pagination @reflines, 'pull-right'
-
- /- unless @reflines.any?
- .row.mt-xs
- .col-lg-12
- = replacement_msg t('referential_lines.search_no_results') \ No newline at end of file
+ = definition_list t('metadatas'),
+ ComplianceControlSet.human_attribute_name(:name) => @compliance_control_set.name \ No newline at end of file
diff --git a/db/schema.rb b/db/schema.rb
index 5e2edf33d..39162b447 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -270,22 +270,6 @@ ActiveRecord::Schema.define(version: 20170913074922) do
add_index "connection_links", ["objectid"], name: "connection_links_objectid_key", unique: true, using: :btree
- create_table "delayed_jobs", id: :bigserial, force: :cascade 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", limit: 255
- t.string "queue", limit: 255
- t.datetime "created_at"
- t.datetime "updated_at"
- end
-
- add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
-
create_table "exports", id: :bigserial, force: :cascade do |t|
t.integer "referential_id", limit: 8
t.string "status"
@@ -407,12 +391,12 @@ ActiveRecord::Schema.define(version: 20170913074922) do
t.datetime "started_at"
t.datetime "ended_at"
t.string "token_download"
- t.string "type", limit: 255
+ t.string "type"
t.integer "parent_id", limit: 8
t.string "parent_type"
- t.integer "current_step", default: 0
- t.integer "total_steps", default: 0
t.datetime "notified_parent_at"
+ t.integer "current_step", default: 0
+ t.integer "total_steps", default: 0
t.string "creator"
end
@@ -564,11 +548,6 @@ ActiveRecord::Schema.define(version: 20170913074922) do
add_index "networks", ["objectid"], name: "networks_objectid_key", unique: true, using: :btree
add_index "networks", ["registration_number"], name: "networks_registration_number_key", using: :btree
- create_table "object_id_factories", id: :bigserial, force: :cascade do |t|
- t.datetime "created_at", null: false
- t.datetime "updated_at", null: false
- end
-
create_table "organisations", id: :bigserial, force: :cascade do |t|
t.string "name"
t.datetime "created_at"
@@ -745,7 +724,7 @@ ActiveRecord::Schema.define(version: 20170913074922) do
create_table "stop_areas", id: :bigserial, force: :cascade do |t|
t.integer "parent_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", null: false
t.integer "object_version", limit: 8
t.string "creator_id"
t.string "name"
@@ -754,8 +733,8 @@ ActiveRecord::Schema.define(version: 20170913074922) do
t.string "registration_number"
t.string "nearest_topic_name"
t.integer "fare_code"
- t.decimal "longitude", precision: 19, scale: 16
- t.decimal "latitude", precision: 19, scale: 16
+ t.decimal "longitude", precision: 19, scale: 16
+ t.decimal "latitude", precision: 19, scale: 16
t.string "long_lat_type"
t.string "country_code"
t.string "street_name"
@@ -773,7 +752,7 @@ ActiveRecord::Schema.define(version: 20170913074922) do
t.datetime "deleted_at"
t.datetime "created_at"
t.datetime "updated_at"
- t.string "stif_type", limit: 255
+ t.string "stif_type"
end
add_index "stop_areas", ["name"], name: "index_stop_areas_on_name", using: :btree
@@ -844,18 +823,18 @@ ActiveRecord::Schema.define(version: 20170913074922) do
add_index "time_table_periods", ["time_table_id"], name: "index_time_table_periods_on_time_table_id", using: :btree
create_table "time_tables", id: :bigserial, force: :cascade do |t|
- t.string "objectid", null: false
- t.integer "object_version", limit: 8, default: 1
+ t.string "objectid", null: false
+ t.integer "object_version", limit: 8, default: 1
t.string "creator_id"
t.string "version"
t.string "comment"
- t.integer "int_day_types", default: 0
+ t.integer "int_day_types", default: 0
t.date "start_date"
t.date "end_date"
t.integer "calendar_id", limit: 8
t.datetime "created_at"
t.datetime "updated_at"
- t.string "color", limit: 255
+ t.string "color"
t.integer "created_from_id"
t.string "checksum"
t.text "checksum_source"
@@ -999,13 +978,9 @@ ActiveRecord::Schema.define(version: 20170913074922) do
add_foreign_key "compliance_controls", "compliance_control_blocks"
add_foreign_key "compliance_controls", "compliance_control_sets"
add_foreign_key "group_of_lines_lines", "group_of_lines", name: "groupofline_group_fkey", on_delete: :cascade
- add_foreign_key "journey_frequencies", "timebands", name: "journey_frequencies_timeband_id_fk", on_delete: :nullify
add_foreign_key "journey_frequencies", "timebands", on_delete: :nullify
- add_foreign_key "journey_frequencies", "vehicle_journeys", name: "journey_frequencies_vehicle_journey_id_fk", on_delete: :nullify
add_foreign_key "journey_frequencies", "vehicle_journeys", on_delete: :nullify
- add_foreign_key "journey_pattern_sections", "journey_patterns", name: "journey_pattern_sections_journey_pattern_id_fk", on_delete: :cascade
add_foreign_key "journey_pattern_sections", "journey_patterns", on_delete: :cascade
- add_foreign_key "journey_pattern_sections", "route_sections", name: "journey_pattern_sections_route_section_id_fk", on_delete: :cascade
add_foreign_key "journey_pattern_sections", "route_sections", on_delete: :cascade
add_foreign_key "journey_patterns", "routes", name: "jp_route_fkey", on_delete: :cascade
add_foreign_key "journey_patterns", "stop_points", column: "arrival_stop_point_id", name: "arrival_point_fkey", on_delete: :nullify
diff --git a/spec/controllers/compliance_control_sets_controller_spec.rb b/spec/controllers/compliance_control_sets_controller_spec.rb
index 12500174b..25d0becfe 100644
--- a/spec/controllers/compliance_control_sets_controller_spec.rb
+++ b/spec/controllers/compliance_control_sets_controller_spec.rb
@@ -1,5 +1,60 @@
require 'rails_helper'
RSpec.describe ComplianceControlSetsController, type: :controller do
+ login_user
+
+ let(:compliance_control_set) { create :compliance_control_set }
+
+ describe "GET show" do
+ it 'should be successful' do
+ get :show, id: compliance_control_set.id
+ expect(response).to be_success
+ end
+ end
+
+ describe "GET index" do
+ it 'should be successful' do
+ get :index, id: compliance_control_set.id
+ expect(response).to be_success
+ end
+ end
+
+ describe "GET #edit" do
+ it 'should be successful' do
+ get :edit, id: compliance_control_set.id
+ expect(response).to be_success
+ end
+ end
+
+ describe 'GET #new' do
+ it 'should be successful' do
+ get :new, id: compliance_control_set.id
+ expect(response).to be_success
+ end
+ end
+
+ describe 'POST #create' do
+ it 'should be successful' do
+ post :create, compliance_control_set: build(:compliance_control_set).as_json
+ expect(response).to have_http_status(302)
+ # expect(flash[:notice]).to eq(I18n.t('notice.compliance_control.created'))
+ end
+ end
+
+ describe 'POST #update' do
+ it 'should be successful' do
+ post :update, id: compliance_control_set.id, compliance_control_set: compliance_control_set.as_json
+ expect(response).to redirect_to compliance_control_set_path(compliance_control_set)
+ # expect(flash[:notice]).to eq(I18n.t('notice.compliance_control.updated'))
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ it 'should be successful' do
+ delete :destroy, id: compliance_control_set.id
+ # expect(flash[:notice]).to eq I18n.t('notice.compliance_control.destroyed')
+ end
+ end
+
end
diff --git a/spec/models/compliance_control_set_spec.rb b/spec/models/compliance_control_set_spec.rb
index 8ec57fdc0..ededec5e0 100644
--- a/spec/models/compliance_control_set_spec.rb
+++ b/spec/models/compliance_control_set_spec.rb
@@ -7,4 +7,6 @@ RSpec.describe ComplianceControlSet, type: :model do
it { should belong_to :organisation }
it { should have_many :compliance_controls }
+
+ it { should validate_presence_of :name }
end