Merge pull request #9798 from demarches-simplifiees/add-new-operators-to-conditional

Etq admin je peux conditionner/router avec les opérateurs "est dans mon département",  "n'est pas dans mon département",  "est dans ma région" et   "n'est pas dans ma région".
This commit is contained in:
Eric Leroy-Terquem 2023-12-19 16:10:59 +00:00 committed by GitHub
commit 954facdaff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 257 additions and 61 deletions

View file

@ -23,7 +23,7 @@
%td.far-left= far_left_tag(row_index)
%td.target= left_operand_tag(targeted_champ, row_index)
%td.operator= operator_tag(operator_name, targeted_champ, row_index)
%td.value= right_operand_tag(targeted_champ, value, row_index)
%td.value= right_operand_tag(targeted_champ, value, row_index, operator_name)
%td.delete-column= delete_condition_tag(row_index)
.flex.justify-end.mt-2= add_condition_tag

View file

@ -97,6 +97,20 @@ class Conditions::ConditionsComponent < ApplicationComponent
[t('is', scope: 'logic'), Eq.name],
[t('is_not', scope: 'logic'), NotEq.name]
]
when ChampValue::CHAMP_VALUE_TYPE.fetch(:commune_enum), ChampValue::CHAMP_VALUE_TYPE.fetch(:epci_enum)
[
[t(InDepartementOperator.name, scope: 'logic.operators'), InDepartementOperator.name],
[t(NotInDepartementOperator.name, scope: 'logic.operators'), NotInDepartementOperator.name],
[t(InRegionOperator.name, scope: 'logic.operators'), InRegionOperator.name],
[t(NotInRegionOperator.name, scope: 'logic.operators'), NotInRegionOperator.name]
]
when ChampValue::CHAMP_VALUE_TYPE.fetch(:departement_enum)
[
[t('is', scope: 'logic'), Eq.name],
[t('is_not', scope: 'logic'), NotEq.name],
[t(InRegionOperator.name, scope: 'logic.operators'), InRegionOperator.name],
[t(NotInRegionOperator.name, scope: 'logic.operators'), NotInRegionOperator.name]
]
when ChampValue::CHAMP_VALUE_TYPE.fetch(:enums)
[
[t(IncludeOperator.name, scope: 'logic.operators'), IncludeOperator.name],
@ -111,7 +125,7 @@ class Conditions::ConditionsComponent < ApplicationComponent
end
end
def right_operand_tag(left, right, row_index)
def right_operand_tag(left, right, row_index, operator_name)
right_invalid = !current_right_valid?(left, right)
case left.type(@source_tdcs)
@ -135,8 +149,8 @@ class Conditions::ConditionsComponent < ApplicationComponent
id: input_id_for('value', row_index),
class: 'fr-select'
)
when :enum, :enums
enums_for_select = left.options(@source_tdcs)
when :enum, :enums, :commune_enum, :epci_enum, :departement_enum
enums_for_select = left.options(@source_tdcs, operator_name)
if right_invalid
enums_for_select = empty_target_for_select + enums_for_select

View file

@ -26,6 +26,6 @@
%td.far-left= far_left_tag(row_index)
%td.target= left_operand_tag(targeted_champ, row_index)
%td.operator= operator_tag(operator_name, targeted_champ, row_index)
%td.value= right_operand_tag(targeted_champ, value, row_index)
%td.value= right_operand_tag(targeted_champ, value, row_index, operator_name)
%td.delete-column= delete_condition_tag(row_index)
.flex.justify-end.mt-2= add_condition_tag