Merge pull request #4610 from tchak/demarche-declarative-ui

Laisser les administrateurs déclarer eux-mêmes les démarches comme déclaratives
This commit is contained in:
Paul Chavard 2019-12-04 12:37:14 +01:00 committed by GitHub
commit 04b1879916
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 45 additions and 1 deletions

View file

@ -68,7 +68,7 @@ module NewAdministrateur
end end
def procedure_params def procedure_params
editable_params = [:libelle, :description, :organisation, :direction, :lien_site_web, :cadre_juridique, :deliberation, :notice, :web_hook_url, :euro_flag, :logo, :auto_archive_on, :monavis_embed] editable_params = [:libelle, :description, :organisation, :direction, :lien_site_web, :cadre_juridique, :deliberation, :notice, :web_hook_url, :declarative_with_state, :euro_flag, :logo, :auto_archive_on, :monavis_embed]
permited_params = if @procedure&.locked? permited_params = if @procedure&.locked?
params.require(:procedure).permit(*editable_params) params.require(:procedure).permit(*editable_params)
else else

View file

@ -184,6 +184,11 @@ type Demarche {
""" """
datePublication: ISO8601DateTime! datePublication: ISO8601DateTime!
"""
L'état de dossier pour une démarche déclarative
"""
declarative: DossierDeclarativeState
""" """
Description de la démarche. Description de la démarche.
""" """
@ -428,6 +433,18 @@ type DossierConnection {
pageInfo: PageInfo! pageInfo: PageInfo!
} }
enum DossierDeclarativeState {
"""
Accepté
"""
accepte
"""
En instruction
"""
en_instruction
}
""" """
An edge in a connection. An edge in a connection.
""" """

View file

@ -6,6 +6,14 @@ module Types
end end
end end
class DossierDeclarativeState < Types::BaseEnum
Procedure.declarative_with_states.each do |symbol_name, string_name|
value(string_name,
I18n.t("declarative_with_state/#{string_name}", scope: [:activerecord, :attributes, :procedure]),
value: symbol_name)
end
end
description "Une demarche" description "Une demarche"
global_id_field :id global_id_field :id
@ -13,6 +21,7 @@ module Types
field :title, String, "Le titre de la démarche.", null: false, method: :libelle field :title, String, "Le titre de la démarche.", null: false, method: :libelle
field :description, String, "Description de la démarche.", null: false field :description, String, "Description de la démarche.", null: false
field :state, DemarcheState, "L'état de la démarche.", null: false field :state, DemarcheState, "L'état de la démarche.", null: false
field :declarative, DossierDeclarativeState, "L'état de dossier pour une démarche déclarative", null: true, method: :declarative_with_state
field :date_creation, GraphQL::Types::ISO8601DateTime, "Date de la création.", null: false, method: :created_at field :date_creation, GraphQL::Types::ISO8601DateTime, "Date de la création.", null: false, method: :created_at
field :date_publication, GraphQL::Types::ISO8601DateTime, "Date de la publication.", null: false, method: :published_at field :date_publication, GraphQL::Types::ISO8601DateTime, "Date de la publication.", null: false, method: :published_at

View file

@ -305,6 +305,12 @@ class Procedure < ApplicationRecord
declarative_with_state == Procedure.declarative_with_states.fetch(:accepte) declarative_with_state == Procedure.declarative_with_states.fetch(:accepte)
end end
def self.declarative_attributes_for_select
declarative_with_states.map do |state, _|
[I18n.t("activerecord.attributes.#{model_name.i18n_key}.declarative_with_state/#{state}"), state]
end
end
# Warning: dossier after_save build_default_champs must be removed # Warning: dossier after_save build_default_champs must be removed
# to save a dossier created from this method # to save a dossier created from this method
def new_dossier def new_dossier

View file

@ -113,3 +113,13 @@
%p.explication %p.explication
La clôture automatique suspend la publication de la démarche et entraîne le passage de tous les dossiers "en construction" La clôture automatique suspend la publication de la démarche et entraîne le passage de tous les dossiers "en construction"
(c'est à dire ceux qui ont été déposés), au statut "en instruction", ce qui ne permet plus aux usagers de les modifier. (c'est à dire ceux qui ont été déposés), au statut "en instruction", ce qui ne permet plus aux usagers de les modifier.
= f.label :declarative_with_state do
Démarche déclarative
= f.select :declarative_with_state, Procedure.declarative_attributes_for_select, { include_blank: true }, class: 'form-control'
%p.explication
Par défaut, une démarche n'est pas déclarative; à son dépot, un dossier est «en construction». Vous pouvez choisir de la rendre déclarative, afin que tous les dossiers déposés soient immédiatement au statut "en instruction" en "accepté".
%br
%br
Dans le cadre d'une démarche déclarative, au dépot, seul l'email associé à l'état choisi est envoyé. (ex: démarche déclarative «accepté»: envoi uniquement de l'email d'acceptation)

View file

@ -14,3 +14,5 @@ fr:
aasm_state/publiee: Publiée aasm_state/publiee: Publiée
aasm_state/close: Close aasm_state/close: Close
aasm_state/hidden: Suprimée aasm_state/hidden: Suprimée
declarative_with_state/en_instruction: En instruction
declarative_with_state/accepte: Accepté