diff --git a/src/hope/api/endpoints/rdi/upload.py b/src/hope/api/endpoints/rdi/upload.py index 87bea88899..66002292f3 100644 --- a/src/hope/api/endpoints/rdi/upload.py +++ b/src/hope/api/endpoints/rdi/upload.py @@ -23,7 +23,6 @@ HEAD, IDENTIFICATION_TYPE_CHOICE, ROLE_ALTERNATE, - ROLE_NO_ROLE, ROLE_PRIMARY, PendingDocument, PendingHousehold, @@ -143,10 +142,10 @@ class Meta: ] def validate_role(self, value: str) -> str | None: - if value in (ROLE_NO_ROLE, ROLE_PRIMARY, ROLE_ALTERNATE): + if value in (ROLE_PRIMARY, ROLE_ALTERNATE): return value if not value: - return ROLE_NO_ROLE + return None if value.upper()[0] == "P": return ROLE_PRIMARY if value.upper()[0] == "A": diff --git a/src/hope/apps/core/validators.py b/src/hope/apps/core/validators.py index d25d1222ab..d7f1eb01bd 100644 --- a/src/hope/apps/core/validators.py +++ b/src/hope/apps/core/validators.py @@ -123,7 +123,13 @@ class KoboTemplateValidator: "deviceid": TYPE_STRING, } EXPECTED_REQUIRED_FIELDS = ( - "country_h_csize_h_crelationship_i_crole_i_cfull_name_i_cgender_i_cbirth_date_i_cestimated_birth_date_i_c" + "country_h_c", + "size_h_c", + "relationship_i_c", + "full_name_i_c", + "gender_i_c", + "birth_date_i_c", + "estimated_birth_date_i_c", ) FIELDS_EXCLUDED_FROM_CHOICE_CHECK = ( # temporarily disabled from checking diff --git a/src/hope/apps/grievance/services/data_change/add_individual_service.py b/src/hope/apps/grievance/services/data_change/add_individual_service.py index d38a1b941b..71a76bb146 100644 --- a/src/hope/apps/grievance/services/data_change/add_individual_service.py +++ b/src/hope/apps/grievance/services/data_change/add_individual_service.py @@ -27,7 +27,6 @@ HEAD, NON_BENEFICIARY, RELATIONSHIP_UNKNOWN, - ROLE_NO_ROLE, Document, Household, Individual, @@ -95,7 +94,7 @@ def close(self, user: AbstractUser) -> None: individual_data = details.individual_data documents = individual_data.pop("documents", []) identities = individual_data.pop("identities", []) - role = individual_data.pop("role", ROLE_NO_ROLE) + role = individual_data.pop("role", None) individual_data["flex_fields"] = populate_pdu_with_null_values( household.program, individual_data.get("flex_fields", None) ) diff --git a/src/hope/apps/household/migrations/0025_migration.py b/src/hope/apps/household/migrations/0025_migration.py new file mode 100644 index 0000000000..ee282117b5 --- /dev/null +++ b/src/hope/apps/household/migrations/0025_migration.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.25 on 2025-08-20 14:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("household", "0024_migration"), + ] + + operations = [ + migrations.AlterField( + model_name="individualroleinhousehold", + name="role", + field=models.CharField( + choices=[("ALTERNATE", "Alternate collector"), ("PRIMARY", "Primary collector")], max_length=255 + ), + ), + ] diff --git a/src/hope/apps/household/models.py b/src/hope/apps/household/models.py index 59907ce011..37f2a1024c 100644 --- a/src/hope/apps/household/models.py +++ b/src/hope/apps/household/models.py @@ -189,7 +189,6 @@ ROLE_ALTERNATE = "ALTERNATE" ROLE_NO_ROLE = "NO_ROLE" ROLE_CHOICE = ( - (ROLE_NO_ROLE, "None"), (ROLE_ALTERNATE, "Alternate collector"), (ROLE_PRIMARY, "Primary collector"), ) @@ -1072,7 +1071,6 @@ class IndividualRoleInHousehold(SoftDeletableMergeStatusModel, TimeStampedUUIDMo ) role = models.CharField( max_length=255, - blank=True, choices=ROLE_CHOICE, ) copied_from = models.ForeignKey( diff --git a/tests/unit/apps/core/test_files/kobo-template-invalid.xlsx b/tests/unit/apps/core/test_files/kobo-template-invalid.xlsx index 1df1a40f2a..9fe4e6a621 100644 Binary files a/tests/unit/apps/core/test_files/kobo-template-invalid.xlsx and b/tests/unit/apps/core/test_files/kobo-template-invalid.xlsx differ diff --git a/tests/unit/apps/core/test_files/kobo-template-valid.xlsx b/tests/unit/apps/core/test_files/kobo-template-valid.xlsx index 16d21680d8..26487416dd 100644 Binary files a/tests/unit/apps/core/test_files/kobo-template-valid.xlsx and b/tests/unit/apps/core/test_files/kobo-template-valid.xlsx differ diff --git a/tests/unit/apps/core/test_files/~$kobo-template-valid.xlsx b/tests/unit/apps/core/test_files/~$kobo-template-valid.xlsx new file mode 100644 index 0000000000..450f635ded Binary files /dev/null and b/tests/unit/apps/core/test_files/~$kobo-template-valid.xlsx differ