refactor(revision): changes should be domain objects

This commit is contained in:
Paul Chavard 2022-12-23 13:01:18 +01:00
parent 7aa6f172dc
commit 9b3fa4dd3c
7 changed files with 209 additions and 252 deletions

View file

@ -1,49 +1,52 @@
- postfix = change[:private] ? '_private' : ''
- case change[:op]
- postfix = change.private? ? '_private' : ''
- case change.op
- when :add
- list.with_item do
= t("add#{postfix}", label: change[:label], scope: [:administrateurs, :revision_changes])
- if change.mandatory?
= t("add_mandatory", label: change.label, scope: [:administrateurs, :revision_changes])
- else
= t("add#{postfix}", label: change.label, scope: [:administrateurs, :revision_changes])
- when :remove
- list.with_item do
= t("remove#{postfix}", label: change[:label], scope: [:administrateurs, :revision_changes])
= t("remove#{postfix}", label: change.label, scope: [:administrateurs, :revision_changes])
- when :update
- case change[:attribute]
- case change.attribute
- when :libelle
- list.with_item do
= t("update_libelle#{postfix}", label: change[:label], to: change[:to], scope: [:administrateurs, :revision_changes])
= t("update_libelle#{postfix}", label: change.label, to: change.to, scope: [:administrateurs, :revision_changes])
- when :type_champ
- list.with_item do
= t("update_type_champ#{postfix}", label: change[:label], to: t("activerecord.attributes.type_de_champ.type_champs.#{change[:to]}"), scope: [:administrateurs, :revision_changes])
= t("update_type_champ#{postfix}", label: change.label, to: t("activerecord.attributes.type_de_champ.type_champs.#{change.to}"), scope: [:administrateurs, :revision_changes])
- when :description
- list.with_item do
= t("update_description#{postfix}", label: change[:label], to: change[:to], scope: [:administrateurs, :revision_changes])
= t("update_description#{postfix}", label: change.label, to: change.to, scope: [:administrateurs, :revision_changes])
- when :drop_down_secondary_libelle
- list.with_item do
= t("update_drop_down_secondary_libelle#{postfix}", label: change[:label], to: change[:to], scope: [:administrateurs, :revision_changes])
= t("update_drop_down_secondary_libelle#{postfix}", label: change.label, to: change.to, scope: [:administrateurs, :revision_changes])
- when :drop_down_secondary_description
- list.with_item do
= t("update_drop_down_secondary_description#{postfix}", label: change[:label], to: change[:to], scope: [:administrateurs, :revision_changes])
= t("update_drop_down_secondary_description#{postfix}", label: change.label, to: change.to, scope: [:administrateurs, :revision_changes])
- when :mandatory
- if change[:from] == false
- if change.from == false
-# i18n-tasks-use t('administrateurs.revision_changes.update_mandatory.enabled')
-# i18n-tasks-use t('administrateurs.revision_changes.update_mandatory_private.enabled')
- list.with_item do
= t("administrateurs.revision_changes.update_mandatory#{postfix}.enabled", label: change[:label])
= t("administrateurs.revision_changes.update_mandatory#{postfix}.enabled", label: change.label)
- else
-# i18n-tasks-use t('administrateurs.revision_changes.update_mandatory.disabled')
-# i18n-tasks-use t('administrateurs.revision_changes.update_mandatory_private.disabled')
- list.with_item do
= t("administrateurs.revision_changes.update_mandatory#{postfix}.disabled", label: change[:label])
= t("administrateurs.revision_changes.update_mandatory#{postfix}.disabled", label: change.label)
- when :piece_justificative_template
-# i18n-tasks-use t('administrateurs.revision_changes.update_piece_justificative_template')
-# i18n-tasks-use t('administrateurs.revision_changes.update_piece_justificative_template_private')
- list.with_item do
= t("administrateurs.revision_changes.update_piece_justificative_template#{postfix}", label: change[:label])
= t("administrateurs.revision_changes.update_piece_justificative_template#{postfix}", label: change.label)
- when :drop_down_options
- added = change[:to].sort - change[:from].sort
- removed = change[:from].sort - change[:to].sort
- added = change.to.sort - change.from.sort
- removed = change.from.sort - change.to.sort
- list.with_item do
= t("update_drop_down_options#{postfix}", scope: [:administrateurs, :revision_changes], label: change[:label])
= t("update_drop_down_options#{postfix}", scope: [:administrateurs, :revision_changes], label: change.label)
= render Dsfr::ListComponent.new do |list|
- if added.present?
- list.with_item do
@ -52,17 +55,17 @@
- list.with_item do
= t(:remove_option, scope: [:administrateurs, :revision_changes], items: removed.map{ |term| "« #{term.strip} »" }.join(", "))
- when :drop_down_other
- if change[:from] == false
- if change.from == false
- list.with_item do
= t("administrateurs.revision_changes.update_drop_down_other#{postfix}.enabled", label: change[:label])
= t("administrateurs.revision_changes.update_drop_down_other#{postfix}.enabled", label: change.label)
- else
- list.with_item do
= t("administrateurs.revision_changes.update_drop_down_other#{postfix}.disabled", label: change[:label])
= t("administrateurs.revision_changes.update_drop_down_other#{postfix}.disabled", label: change.label)
- when :carte_layers
- added = change[:to].sort - change[:from].sort
- removed = change[:from].sort - change[:to].sort
- added = change.to.sort - change.from.sort
- removed = change.from.sort - change.to.sort
- list.with_item do
= t("update_carte_layers#{postfix}", scope: [:administrateurs, :revision_changes], label: change[:label])
= t("update_carte_layers#{postfix}", scope: [:administrateurs, :revision_changes], label: change.label)
= render Dsfr::ListComponent.new do |list|
- if added.present?
- list.with_item do
@ -71,23 +74,23 @@
- list.with_item do
= t(:remove_option, scope: [:administrateurs, :revision_changes], items: removed.map{ |term| "« #{t(term, scope: [:administrateurs, :carte_layers])} »" }.join(", "))
- when :collapsible_explanation_enabled
- if change[:to]
- if change.to
- list.with_item do
= t("administrateurs.revision_changes.update_collapsible_explanation_enabled#{postfix}.enabled", label: change[:label])
= t("administrateurs.revision_changes.update_collapsible_explanation_enabled#{postfix}.enabled", label: change.label)
- else
- list.with_item do
= t("administrateurs.revision_changes.update_collapsible_explanation_enabled#{postfix}.disabled", label: change[:label])
= t("administrateurs.revision_changes.update_collapsible_explanation_enabled#{postfix}.disabled", label: change.label)
- when :collapsible_explanation_text
- list.with_item do
= t("administrateurs.revision_changes.update_collapsible_explanation_text#{postfix}", label: change[:label], text: change[:to])
= t("administrateurs.revision_changes.update_collapsible_explanation_text#{postfix}", label: change.label, text: change.to)
- when :condition
- if change[:from].nil?
- if change.from.nil?
- list.with_item do
= t(:add_condition, scope: [:administrateurs, :revision_changes], label: change[:label], to: change[:to])
- elsif change[:to].nil?
= t(:add_condition, scope: [:administrateurs, :revision_changes], label: change.label, to: change.to)
- elsif change.to.nil?
- list.with_item do
= t(:remove_condition, scope: [:administrateurs, :revision_changes], label: change[:label])
= t(:remove_condition, scope: [:administrateurs, :revision_changes], label: change.label)
- else
- list.with_item do
= t(:update_condition, scope: [:administrateurs, :revision_changes], label: change[:label], to: change[:to])
= t(:update_condition, scope: [:administrateurs, :revision_changes], label: change.label, to: change.to)

View file

@ -2,8 +2,8 @@
- list.with_empty do
= t(:no_changes, scope: [:administrateurs, :revision_changes])
= render partial: "administrateurs/procedures/revision_change_type_de_champ", collection: changes.filter { |change| change[:model] == :type_de_champ }, as: :change, locals: { list: list }
- move_changes, move_private_changes = changes.filter { |change| change[:op] == :move }.partition { |change| !change[:private] }
= render partial: "administrateurs/procedures/revision_change_type_de_champ", collection: changes, as: :change, locals: { list: list }
- move_changes, move_private_changes = changes.filter { _1.op == :move }.partition { !_1.private? }
- if move_changes.present?
- list.with_item do
= t(:move, scope: [:administrateurs, :revision_changes], count: move_changes.size)