test
Title: Fix incorrect toggle dependency logic for Address Sift fields
Issue Type: Bug
Description:
There is an issue with the dependency logic between the address sift toggle fields in the Address Matching section.
Currently, invalid combinations of toggle states are possible, which should not happen based on the business rules.
Current Behaviour
“Send for second sift?” remains enabled/set to Yes when “Send for third sift (RV/U)?” = Yes.
This should not be allowed.“Send for third sift (RV/U)?” remains enabled/set to Yes when “Unmatchable following third sift” = Yes.
This should not be allowed.
Expected Behaviour
The toggle logic should enforce valid progression and prevent conflicting states.
Business Rules
If “Send for third sift (RV/U)?” = Yes, then “Send for second sift?” must automatically be set to No and disabled (or prevented from being selected).
If “Unmatchable following third sift” = Yes, then “Send for third sift (RV/U)?” must automatically be set to No and disabled (or prevented from being selected).
Acceptance Criteria
AC1
Given “Send for third sift (RV/U)?” is set to Yes
When the form is updated
Then “Send for second sift?” is automatically set to No
And the user cannot enable it while third sift remains Yes.
AC2
Given “Unmatchable following third sift” is set to Yes
When the form is updated
Then “Send for third sift (RV/U)?” is automatically set to No
And the user cannot enable it while unmatchable remains Yes.
AC3
Users must not be able to save a record with invalid combinations:
Second sift = Yes AND Third sift = Yes
Third sift = Yes AND Unmatchable following third sift = Yes
AC4
Existing valid combinations continue to function without regression.
Priority / Impact:
Medium – prevents inconsistent address matching workflow states and enforces correct business process progression.
import pyspark.sql.functions as F
spark = ... # initialization
df = spark.table("a").where(F.col("country") == "abc")
df_unique = df.distinct()
users_without_kids = df_unique.where(F.col("kid_count") == 0)
obser = Observation()
observed_df = users_without_kids.observe(observation, F.count(F.lit(1)).alias("row_count"))
observed_df.writeTo("b")
print(observation.get["row_count"]) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
