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:
commit
954facdaff
20 changed files with 257 additions and 61 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue