can choose multiple zones
This commit is contained in:
parent
6d90f65159
commit
94ca93e130
5 changed files with 10 additions and 20 deletions
|
@ -351,7 +351,7 @@ module Administrateurs
|
||||||
:monavis_embed,
|
:monavis_embed,
|
||||||
:api_entreprise_token,
|
:api_entreprise_token,
|
||||||
:duree_conservation_dossiers_dans_ds,
|
:duree_conservation_dossiers_dans_ds,
|
||||||
:zone_id,
|
{ zone_ids: [] },
|
||||||
:lien_dpo,
|
:lien_dpo,
|
||||||
:opendata,
|
:opendata,
|
||||||
:procedure_expires_when_termine_enabled
|
:procedure_expires_when_termine_enabled
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
module ZoneHelper
|
|
||||||
def grouped_options_for_zone(date)
|
|
||||||
date ||= Time.zone.now
|
|
||||||
collectivite = Zone.find_by(acronym: "COLLECTIVITE")
|
|
||||||
{
|
|
||||||
"--" => [
|
|
||||||
[I18n.t('i_dont_know', scope: 'utils'), nil],
|
|
||||||
[collectivite.label, collectivite.id]
|
|
||||||
],
|
|
||||||
I18n.t('ministeres', scope: 'zones') => (Zone.available_at(date) - [collectivite]).map { |m| [m.label_at(date), m.id] }
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -28,5 +28,8 @@ class Zone < ApplicationRecord
|
||||||
|
|
||||||
def self.available_at(date)
|
def self.available_at(date)
|
||||||
Zone.all.filter { |zone| zone.available_at?(date) }.sort_by { |zone| zone.label_at(date) }
|
Zone.all.filter { |zone| zone.available_at?(date) }.sort_by { |zone| zone.label_at(date) }
|
||||||
|
.map do |zone|
|
||||||
|
OpenStruct.new(id: zone.id, label: zone.label_at(date))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -14,10 +14,10 @@
|
||||||
= f.text_area :description, rows: '6', placeholder: 'Description de la démarche, destinataires, etc. ', class: 'form-control'
|
= f.text_area :description, rows: '6', placeholder: 'Description de la démarche, destinataires, etc. ', class: 'form-control'
|
||||||
|
|
||||||
- if Flipper.enabled? :zonage
|
- if Flipper.enabled? :zonage
|
||||||
= f.label :zone do
|
= f.collection_check_boxes :zone_ids, Zone.available_at(@procedure.published_or_created_at), :id, :label do |b|
|
||||||
= t('zone', scope: 'activerecord.attributes.procedure')
|
.editable-champ.editable-champ-checkbox
|
||||||
%span.mandatory *
|
= b.check_box
|
||||||
= f.select :zone_id, grouped_options_for_zone(@procedure.published_or_created_at)
|
= b.label
|
||||||
|
|
||||||
%h3.header-subsection Logo de la démarche
|
%h3.header-subsection Logo de la démarche
|
||||||
= render Attachment::EditComponent.new(form: f, attached_file: @procedure.logo, direct_upload: true, user_can_destroy: true)
|
= render Attachment::EditComponent.new(form: f, attached_file: @procedure.logo, direct_upload: true, user_can_destroy: true)
|
||||||
|
|
|
@ -114,8 +114,8 @@ describe Zone do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns only available zones at specific date' do
|
it 'returns only available zones at specific date' do
|
||||||
expect(Zone.available_at(start_last_government + 1.day)).to eq [culture]
|
expect(Zone.available_at(start_last_government + 1.day).map(&:label)).to eq ["Ministère de la Culture"]
|
||||||
expect(Zone.available_at(start_previous_government + 1.day)).to eq [culture, om]
|
expect(Zone.available_at(start_previous_government + 1.day).map(&:label)).to eq ["Ministère de la Culture", "Ministère des Outre-mer"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue