aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorLuc Donnet2017-09-29 10:05:56 +0200
committerLuc Donnet2017-09-29 10:05:56 +0200
commit5e2e309809385d20b4611ab7b3fd4fc4658258ae (patch)
treeec29420e2a41f14bb4a61b8433d47a987f6b516d /app
parent02f4e2483751af82b0086a1800e761f37f244aa8 (diff)
parentf0970d2cdd852596f5bc2eaea94ca81fa93e0611 (diff)
downloadchouette-core-5e2e309809385d20b4611ab7b3fd4fc4658258ae.tar.bz2
Merge branch 'master' of github.com:AF83/stif-boiv
Diffstat (limited to 'app')
-rw-r--r--app/controllers/compliance_control_blocks_controller.rb41
-rw-r--r--app/controllers/compliance_controls_controller.rb13
-rw-r--r--app/decorators/compliance_control_set_decorator.rb2
-rw-r--r--app/models/compliance_check_resource.rb3
-rw-r--r--app/models/compliance_check_set.rb2
-rw-r--r--app/models/compliance_control_set.rb1
-rw-r--r--app/models/concerns/stif_netex_attributes_support.rb2
-rw-r--r--app/views/compliance_control_blocks/_form.html.slim9
-rw-r--r--app/views/compliance_control_blocks/edit.html.slim11
-rw-r--r--app/views/compliance_control_blocks/new.html.slim11
-rw-r--r--app/views/compliance_controls/select_type.html.slim8
11 files changed, 94 insertions, 9 deletions
diff --git a/app/controllers/compliance_control_blocks_controller.rb b/app/controllers/compliance_control_blocks_controller.rb
new file mode 100644
index 000000000..2456eceba
--- /dev/null
+++ b/app/controllers/compliance_control_blocks_controller.rb
@@ -0,0 +1,41 @@
+class ComplianceControlBlocksController < BreadcrumbController
+ defaults resource_class: ComplianceControlBlock
+ belongs_to :compliance_control_set
+
+ def new
+ @compliance_control_set = parent
+ @compliance_control_block = ComplianceControlBlock.new(compliance_control_set: @compliance_control_set)
+ end
+
+ def create
+ create! do |success, failure|
+ success.html { redirect_to compliance_control_set_path(@compliance_control_set) }
+ failure.html { render :action => :new }
+ end
+ end
+
+ def update
+ update! do |success, failure|
+ success.html { redirect_to compliance_control_set_path(@compliance_control_set) }
+ failure.html { render :action => :edit }
+ end
+ end
+
+ def destroy
+ destroy! do |format|
+ format.html { redirect_to compliance_control_set_path(@compliance_control_set) }
+ end
+ end
+
+ private
+
+ def create_resource compliance_control_block
+ compliance_control_block.transport_mode = params[:compliance_control_block][:transport_mode]
+ super
+ end
+
+ def compliance_control_block_params
+ params.require(:compliance_control_block).permit(:transport_mode)
+ end
+
+end \ No newline at end of file
diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb
index 846dbb253..be8b773e2 100644
--- a/app/controllers/compliance_controls_controller.rb
+++ b/app/controllers/compliance_controls_controller.rb
@@ -2,15 +2,14 @@ class ComplianceControlsController < BreadcrumbController
defaults resource_class: ComplianceControl
belongs_to :compliance_control_set
- def new
- @compliance_control_set = parent
- @compliance_control = GenericAttributeControl::MinMax.new
- @compliance_control.build_compliance_control_block
+ def select_type
+ @sti_subclasses = ComplianceControl.subclasses
end
- def update
- path = compliance_control_set_compliance_control_path(parent, resource)
- update!(notice: t('notice.compliance_control.updated')) { path }
+ def new
+ redirect_to(action: :select_type) unless params[:sti_class]
+ @compliance_control_set = parent
+ @compliance_control = params[:sti_class].constantize.new
end
private
diff --git a/app/decorators/compliance_control_set_decorator.rb b/app/decorators/compliance_control_set_decorator.rb
index f9e4de836..6a9040358 100644
--- a/app/decorators/compliance_control_set_decorator.rb
+++ b/app/decorators/compliance_control_set_decorator.rb
@@ -23,7 +23,7 @@ class ComplianceControlSetDecorator < Draper::Decorator
# if h.policy(ComplianceControl).create?
links << Link.new(
content: h.t('compliance_control_sets.actions.add_compliance_control'),
- href: h.new_compliance_control_set_compliance_control_path(object.id)
+ href: h.select_type_compliance_control_set_compliance_controls_path(object.id)
)
# end
links
diff --git a/app/models/compliance_check_resource.rb b/app/models/compliance_check_resource.rb
index 7826f00c3..a5c0c7d27 100644
--- a/app/models/compliance_check_resource.rb
+++ b/app/models/compliance_check_resource.rb
@@ -1,5 +1,8 @@
class ComplianceCheckResource < ActiveRecord::Base
extend Enumerize
+ belongs_to :compliance_check_set
enumerize :status, in: %w[new successful warning failed]
+
+ validates_presence_of :compliance_check_set
end
diff --git a/app/models/compliance_check_set.rb b/app/models/compliance_check_set.rb
index 3c62221f0..f1f4a9f94 100644
--- a/app/models/compliance_check_set.rb
+++ b/app/models/compliance_check_set.rb
@@ -6,6 +6,8 @@ class ComplianceCheckSet < ActiveRecord::Base
belongs_to :workbench
belongs_to :parent, polymorphic: true
+ has_many :compliance_check_set
+
enumerize :status, in: %w[new pending successful warning failed running aborted canceled]
scope :where_created_at_between, ->(start_date, end_date) do
diff --git a/app/models/compliance_control_set.rb b/app/models/compliance_control_set.rb
index f8f491cba..40e269146 100644
--- a/app/models/compliance_control_set.rb
+++ b/app/models/compliance_control_set.rb
@@ -1,5 +1,6 @@
class ComplianceControlSet < ActiveRecord::Base
belongs_to :organisation
+ has_many :compliance_control_blocks, dependent: :destroy
has_many :compliance_controls, dependent: :destroy
validates :name, presence: true
diff --git a/app/models/concerns/stif_netex_attributes_support.rb b/app/models/concerns/stif_netex_attributes_support.rb
index 0d569b613..076acf491 100644
--- a/app/models/concerns/stif_netex_attributes_support.rb
+++ b/app/models/concerns/stif_netex_attributes_support.rb
@@ -49,7 +49,7 @@ module StifNetexAttributesSupport
end
def provider_id
- self.referential.workbench.organisation.name.parameterize.underscore
+ self.referential.workbench.organisation.code.underscore.parameterize
end
def boiv_id
diff --git a/app/views/compliance_control_blocks/_form.html.slim b/app/views/compliance_control_blocks/_form.html.slim
new file mode 100644
index 000000000..b20b5d0cc
--- /dev/null
+++ b/app/views/compliance_control_blocks/_form.html.slim
@@ -0,0 +1,9 @@
+= simple_form_for [@compliance_control_set, @compliance_control_block], html: { class: 'form-horizontal', id: 'compliance_control_block_form' }, wrapper: :horizontal_form do |f|
+ .row
+ .col-lg-12
+ = f.input :transport_mode, as: :select, collection: ComplianceControlBlock.transport_modes
+ / = f.input :sub_transport_mode
+
+ .separator
+
+ = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'compliance_control_block_form'
diff --git a/app/views/compliance_control_blocks/edit.html.slim b/app/views/compliance_control_blocks/edit.html.slim
new file mode 100644
index 000000000..fbd42e7f3
--- /dev/null
+++ b/app/views/compliance_control_blocks/edit.html.slim
@@ -0,0 +1,11 @@
+/ PageHeader
+= pageheader 'modele-calendrier',
+ t('compliance_control_blocks.edit.title')
+
+
+/ PageContent
+.page_content
+ .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' \ No newline at end of file
diff --git a/app/views/compliance_control_blocks/new.html.slim b/app/views/compliance_control_blocks/new.html.slim
new file mode 100644
index 000000000..654a0dc7f
--- /dev/null
+++ b/app/views/compliance_control_blocks/new.html.slim
@@ -0,0 +1,11 @@
+/ PageHeader
+= pageheader 'modele-calendrier',
+ t('compliance_control_blocks.new.title')
+
+
+/ PageContent
+.page_content
+ .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' \ No newline at end of file
diff --git a/app/views/compliance_controls/select_type.html.slim b/app/views/compliance_controls/select_type.html.slim
new file mode 100644
index 000000000..66a38279d
--- /dev/null
+++ b/app/views/compliance_controls/select_type.html.slim
@@ -0,0 +1,8 @@
+= form_tag(new_compliance_control_set_compliance_control_path, method: :get) do
+ - @sti_subclasses.each do |klass|
+ = radio_button_tag(:sti_class, klass)
+ = label_tag(:sti_class, klass)
+ end
+ = submit_tag("suivant")
+end
+