From 4b11ae44725c5d22f1215021f5520b7d27bbf5ac Mon Sep 17 00:00:00 2001 From: prafful Date: Mon, 3 Jun 2024 12:07:43 +0530 Subject: [PATCH 01/10] migrating feature to array field --- ...8_rename_features_facility_old_features.py | 51 +++++++++++++++++++ care/facility/models/facility.py | 10 ++-- 2 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 care/facility/migrations/0438_rename_features_facility_old_features.py diff --git a/care/facility/migrations/0438_rename_features_facility_old_features.py b/care/facility/migrations/0438_rename_features_facility_old_features.py new file mode 100644 index 0000000000..14dd2d1007 --- /dev/null +++ b/care/facility/migrations/0438_rename_features_facility_old_features.py @@ -0,0 +1,51 @@ +# Generated by Django 4.2.10 on 2024-06-03 06:24 + +import django.contrib.postgres.fields +from django.db import migrations, models + + +def convert_features_to_array(apps, schema_editor): + Facility = apps.get_model("facility", "Facility") + + for facility in Facility.objects.all(): + if facility.old_features: + facility.features = list(map(int, facility.old_features)) + facility.save() + + +class Migration(migrations.Migration): + dependencies = [ + ("facility", "0437_alter_dailyround_rounds_type"), + ] + + operations = [ + migrations.RenameField( + model_name="facility", + old_name="features", + new_name="old_features", + ), + migrations.AddField( + model_name="facility", + name="features", + field=django.contrib.postgres.fields.ArrayField( + base_field=models.SmallIntegerField( + choices=[ + (1, "CT Scan Facility"), + (2, "Maternity Care"), + (3, "X-Ray facility"), + (4, "Neonatal care"), + (5, "Operation theater"), + (6, "Blood Bank"), + ] + ), + blank=True, + null=True, + size=None, + ), + ), + migrations.RunPython(convert_features_to_array), + migrations.RemoveField( + model_name="facility", + name="old_features", + ), + ] diff --git a/care/facility/models/facility.py b/care/facility/models/facility.py index f5a0013540..ca559159a0 100644 --- a/care/facility/models/facility.py +++ b/care/facility/models/facility.py @@ -1,9 +1,8 @@ from django.conf import settings from django.contrib.auth import get_user_model +from django.contrib.postgres.fields import ArrayField from django.core.validators import MinValueValidator from django.db import models -from multiselectfield import MultiSelectField -from multiselectfield.utils import get_max_length from simple_history.models import HistoricalRecords from care.facility.models import FacilityBaseModel, reverse_choices @@ -160,11 +159,10 @@ class Facility(FacilityBaseModel, FacilityPermissionMixin): verified = models.BooleanField(default=False) facility_type = models.IntegerField(choices=FACILITY_TYPES) kasp_empanelled = models.BooleanField(default=False, blank=False, null=False) - features = MultiSelectField( - choices=FEATURE_CHOICES, - null=True, + features = ArrayField( + models.SmallIntegerField(choices=FEATURE_CHOICES), blank=True, - max_length=get_max_length(FEATURE_CHOICES, None), + null=True, ) longitude = models.DecimalField( From e0e604260ae3fe9652cdfbbd413197e363458bb0 Mon Sep 17 00:00:00 2001 From: prafful Date: Mon, 3 Jun 2024 12:38:13 +0530 Subject: [PATCH 02/10] updated serializer for feature field --- care/facility/api/serializers/facility.py | 10 ++++++++-- care/facility/tests/test_facility_api.py | 20 ++++++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/care/facility/api/serializers/facility.py b/care/facility/api/serializers/facility.py index 73779bdfd9..eed781e08e 100644 --- a/care/facility/api/serializers/facility.py +++ b/care/facility/api/serializers/facility.py @@ -47,7 +47,10 @@ class FacilityBasicInfoSerializer(serializers.ModelSerializer): state_object = StateSerializer(source="state", read_only=True) facility_type = serializers.SerializerMethodField() read_cover_image_url = serializers.CharField(read_only=True) - features = serializers.MultipleChoiceField(choices=FEATURE_CHOICES) + features = serializers.ListField( + child=serializers.ChoiceField(choices=FEATURE_CHOICES), + required=False, + ) patient_count = serializers.SerializerMethodField() bed_count = serializers.SerializerMethodField() @@ -95,7 +98,10 @@ class FacilitySerializer(FacilityBasicInfoSerializer): # } read_cover_image_url = serializers.URLField(read_only=True) # location = PointField(required=False) - features = serializers.MultipleChoiceField(choices=FEATURE_CHOICES) + features = serializers.ListField( + child=serializers.ChoiceField(choices=FEATURE_CHOICES), + required=False, + ) bed_count = serializers.SerializerMethodField() class Meta: diff --git a/care/facility/tests/test_facility_api.py b/care/facility/tests/test_facility_api.py index 60cdb08c36..123c9fc247 100644 --- a/care/facility/tests/test_facility_api.py +++ b/care/facility/tests/test_facility_api.py @@ -23,7 +23,9 @@ def test_listing(self): def test_create(self): dist_admin = self.create_user("dist_admin", self.district, user_type=30) - sample_data = { + self.client.force_authenticate(user=dist_admin) + + sample_data_with_empty_feature_list = { "name": "Hospital X", "district": self.district.pk, "state": self.state.pk, @@ -33,7 +35,21 @@ def test_create(self): "pincode": 390024, "features": [], } - self.client.force_authenticate(user=dist_admin) + response = self.client.post( + "/api/v1/facility/", sample_data_with_empty_feature_list + ) + self.assertIs(response.status_code, status.HTTP_201_CREATED) + + sample_data = { + "name": "Hospital X", + "district": self.district.pk, + "state": self.state.pk, + "local_body": self.local_body.pk, + "facility_type": "Educational Inst", + "address": "Nearby", + "pincode": 390024, + "features": [1, 2], + } response = self.client.post("/api/v1/facility/", sample_data) self.assertIs(response.status_code, status.HTTP_201_CREATED) fac_id = response.data["id"] From 817108ebe6014c4ddcc7bebae87f41956d002ccf Mon Sep 17 00:00:00 2001 From: prafful Date: Tue, 4 Jun 2024 11:22:00 +0530 Subject: [PATCH 03/10] Added validations and tests --- care/facility/api/serializers/facility.py | 7 +++++++ ...8_rename_features_facility_old_features.py | 19 +++++++++++-------- .../migrations/0442_merge_20240603_2159.py | 13 +++++++++++++ care/facility/models/facility.py | 16 +++++++++++++++- 4 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 care/facility/migrations/0442_merge_20240603_2159.py diff --git a/care/facility/api/serializers/facility.py b/care/facility/api/serializers/facility.py index eed781e08e..70174103e1 100644 --- a/care/facility/api/serializers/facility.py +++ b/care/facility/api/serializers/facility.py @@ -153,6 +153,13 @@ def validate_middleware_address(self, value): MiddlewareDomainAddressValidator()(value) return value + def validate_features(self, value): + if len(value) != len(set(value)): + raise serializers.ValidationError( + "Features should not contain duplicate values." + ) + return value + def create(self, validated_data): validated_data["created_by"] = self.context["request"].user return super().create(validated_data) diff --git a/care/facility/migrations/0438_rename_features_facility_old_features.py b/care/facility/migrations/0438_rename_features_facility_old_features.py index 14dd2d1007..61eb21d9bb 100644 --- a/care/facility/migrations/0438_rename_features_facility_old_features.py +++ b/care/facility/migrations/0438_rename_features_facility_old_features.py @@ -2,15 +2,22 @@ import django.contrib.postgres.fields from django.db import migrations, models +from django.db.models import Q def convert_features_to_array(apps, schema_editor): Facility = apps.get_model("facility", "Facility") - for facility in Facility.objects.all(): - if facility.old_features: - facility.features = list(map(int, facility.old_features)) - facility.save() + facilities_to_update = Facility.objects.filter(old_features__isnull=False) + + updated_facilities = [] + + for facility in facilities_to_update: + facility.features = list(map(int, facility.old_features.split(","))) + updated_facilities.append(facility) + + if updated_facilities: + Facility.objects.bulk_update(updated_facilities, ["features"]) class Migration(migrations.Migration): @@ -44,8 +51,4 @@ class Migration(migrations.Migration): ), ), migrations.RunPython(convert_features_to_array), - migrations.RemoveField( - model_name="facility", - name="old_features", - ), ] diff --git a/care/facility/migrations/0442_merge_20240603_2159.py b/care/facility/migrations/0442_merge_20240603_2159.py new file mode 100644 index 0000000000..d36c035324 --- /dev/null +++ b/care/facility/migrations/0442_merge_20240603_2159.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.10 on 2024-06-03 16:29 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("facility", "0438_rename_features_facility_old_features"), + ("facility", "0441_delete_patientteleconsultation"), + ] + + operations = [] diff --git a/care/facility/models/facility.py b/care/facility/models/facility.py index ca559159a0..9ed4e52696 100644 --- a/care/facility/models/facility.py +++ b/care/facility/models/facility.py @@ -3,6 +3,8 @@ from django.contrib.postgres.fields import ArrayField from django.core.validators import MinValueValidator from django.db import models +from multiselectfield import MultiSelectField +from multiselectfield.utils import get_max_length from simple_history.models import HistoricalRecords from care.facility.models import FacilityBaseModel, reverse_choices @@ -49,6 +51,7 @@ ROOM_TYPES.extend(BASE_ROOM_TYPES) REVERSE_ROOM_TYPES = reverse_choices(ROOM_TYPES) +REVERSE_FEATURE_CHOICES = reverse_choices(FEATURE_CHOICES) FACILITY_TYPES = [ (1, "Educational Inst"), @@ -164,7 +167,12 @@ class Facility(FacilityBaseModel, FacilityPermissionMixin): blank=True, null=True, ) - + old_features = MultiSelectField( + choices=FEATURE_CHOICES, + null=True, + blank=True, + max_length=get_max_length(FEATURE_CHOICES, None), + ) longitude = models.DecimalField( max_digits=22, decimal_places=16, null=True, blank=True ) @@ -241,6 +249,12 @@ def save(self, *args, **kwargs) -> None: facility=self, user=self.created_by, created_by=self.created_by ) + @property + def get_features_display(self): + if not self.features: + return [] + return [REVERSE_FEATURE_CHOICES[f] for f in self.features] + CSV_MAPPING = { "name": "Facility Name", "facility_type": "Facility Type", From f61b9c640bec96db204868547a5e0f4392ee0c75 Mon Sep 17 00:00:00 2001 From: prafful Date: Tue, 4 Jun 2024 11:22:27 +0530 Subject: [PATCH 04/10] Added tests --- care/facility/tests/test_facility_api.py | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/care/facility/tests/test_facility_api.py b/care/facility/tests/test_facility_api.py index 123c9fc247..0f6fef256d 100644 --- a/care/facility/tests/test_facility_api.py +++ b/care/facility/tests/test_facility_api.py @@ -40,6 +40,46 @@ def test_create(self): ) self.assertIs(response.status_code, status.HTTP_201_CREATED) + sample_data_with_invalid_choice = { + "name": "Hospital X", + "district": self.district.pk, + "state": self.state.pk, + "local_body": self.local_body.pk, + "facility_type": "Educational Inst", + "address": "Nearby", + "pincode": 390024, + "features": [1020, 2, 4, 5], + } + response = self.client.post( + "/api/v1/facility/", sample_data_with_invalid_choice + ) + + self.assertIs(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual(response.data["features"][0][0].code, "invalid_choice") + self.assertEqual( + response.data["features"][0][0], '"1020" is not a valid choice.' + ) + + sample_data_with_duplicate_choices = { + "name": "Hospital X", + "district": self.district.pk, + "state": self.state.pk, + "local_body": self.local_body.pk, + "facility_type": "Educational Inst", + "address": "Nearby", + "pincode": 390024, + "features": [1, 1], + } + response = self.client.post( + "/api/v1/facility/", sample_data_with_duplicate_choices + ) + + self.assertIs(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + response.data["features"][0], + "Features should not contain duplicate values.", + ) + sample_data = { "name": "Hospital X", "district": self.district.pk, From a8f9aa385d7a17d1187198c3bdfc6909db1d7ee5 Mon Sep 17 00:00:00 2001 From: prafful Date: Fri, 7 Jun 2024 12:59:49 +0530 Subject: [PATCH 05/10] added integer choice enum for features --- .../0438_rename_features_facility_old_features.py | 6 +++--- .../migrations/0444_merge_20240607_1251.py | 13 +++++++++++++ care/facility/models/facility.py | 15 +++++++++++++-- 3 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 care/facility/migrations/0444_merge_20240607_1251.py diff --git a/care/facility/migrations/0438_rename_features_facility_old_features.py b/care/facility/migrations/0438_rename_features_facility_old_features.py index 61eb21d9bb..8c9b894a8e 100644 --- a/care/facility/migrations/0438_rename_features_facility_old_features.py +++ b/care/facility/migrations/0438_rename_features_facility_old_features.py @@ -39,9 +39,9 @@ class Migration(migrations.Migration): choices=[ (1, "CT Scan Facility"), (2, "Maternity Care"), - (3, "X-Ray facility"), - (4, "Neonatal care"), - (5, "Operation theater"), + (3, "X-Ray Facility"), + (4, "Neonatal Care"), + (5, "Operation Theater"), (6, "Blood Bank"), ] ), diff --git a/care/facility/migrations/0444_merge_20240607_1251.py b/care/facility/migrations/0444_merge_20240607_1251.py new file mode 100644 index 0000000000..3a90feaf66 --- /dev/null +++ b/care/facility/migrations/0444_merge_20240607_1251.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.10 on 2024-06-07 07:21 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("facility", "0442_merge_20240603_2159"), + ("facility", "0443_remove_patientconsultation_consent_records_and_more"), + ] + + operations = [] diff --git a/care/facility/models/facility.py b/care/facility/models/facility.py index 9ed4e52696..6d2f25ac3e 100644 --- a/care/facility/models/facility.py +++ b/care/facility/models/facility.py @@ -39,6 +39,7 @@ (70, "KASP Ventilator beds"), ] +# to be removed in further PR FEATURE_CHOICES = [ (1, "CT Scan Facility"), (2, "Maternity Care"), @@ -48,6 +49,16 @@ (6, "Blood Bank"), ] + +class FacilityFeature(models.IntegerChoices): + CT_SCAN_FACILITY = 1, "CT Scan Facility" + MATERNITY_CARE = 2, "Maternity Care" + X_RAY_FACILITY = 3, "X-Ray Facility" + NEONATAL_CARE = 4, "Neonatal Care" + OPERATION_THEATER = 5, "Operation Theater" + BLOOD_BANK = 6, "Blood Bank" + + ROOM_TYPES.extend(BASE_ROOM_TYPES) REVERSE_ROOM_TYPES = reverse_choices(ROOM_TYPES) @@ -163,7 +174,7 @@ class Facility(FacilityBaseModel, FacilityPermissionMixin): facility_type = models.IntegerField(choices=FACILITY_TYPES) kasp_empanelled = models.BooleanField(default=False, blank=False, null=False) features = ArrayField( - models.SmallIntegerField(choices=FEATURE_CHOICES), + models.SmallIntegerField(choices=FacilityFeature.choices), blank=True, null=True, ) @@ -253,7 +264,7 @@ def save(self, *args, **kwargs) -> None: def get_features_display(self): if not self.features: return [] - return [REVERSE_FEATURE_CHOICES[f] for f in self.features] + return [FacilityFeature(f).label for f in self.features] CSV_MAPPING = { "name": "Facility Name", From 8ad1e59d829b957406719fb56f7065677819f617 Mon Sep 17 00:00:00 2001 From: prafful Date: Fri, 12 Jul 2024 14:16:48 +0530 Subject: [PATCH 06/10] fixed migrations --- .../facility/migrations/0442_merge_20240603_2159.py | 13 ------------- .../facility/migrations/0444_merge_20240607_1251.py | 13 ------------- ...> 0445_rename_features_facility_old_features.py} | 8 +++++--- .../facility/migrations/0446_merge_20240712_1357.py | 13 +++++++++++++ 4 files changed, 18 insertions(+), 29 deletions(-) delete mode 100644 care/facility/migrations/0442_merge_20240603_2159.py delete mode 100644 care/facility/migrations/0444_merge_20240607_1251.py rename care/facility/migrations/{0438_rename_features_facility_old_features.py => 0445_rename_features_facility_old_features.py} (86%) create mode 100644 care/facility/migrations/0446_merge_20240712_1357.py diff --git a/care/facility/migrations/0442_merge_20240603_2159.py b/care/facility/migrations/0442_merge_20240603_2159.py deleted file mode 100644 index d36c035324..0000000000 --- a/care/facility/migrations/0442_merge_20240603_2159.py +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Django 4.2.10 on 2024-06-03 16:29 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("facility", "0438_rename_features_facility_old_features"), - ("facility", "0441_delete_patientteleconsultation"), - ] - - operations = [] diff --git a/care/facility/migrations/0444_merge_20240607_1251.py b/care/facility/migrations/0444_merge_20240607_1251.py deleted file mode 100644 index 3a90feaf66..0000000000 --- a/care/facility/migrations/0444_merge_20240607_1251.py +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Django 4.2.10 on 2024-06-07 07:21 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("facility", "0442_merge_20240603_2159"), - ("facility", "0443_remove_patientconsultation_consent_records_and_more"), - ] - - operations = [] diff --git a/care/facility/migrations/0438_rename_features_facility_old_features.py b/care/facility/migrations/0445_rename_features_facility_old_features.py similarity index 86% rename from care/facility/migrations/0438_rename_features_facility_old_features.py rename to care/facility/migrations/0445_rename_features_facility_old_features.py index 8c9b894a8e..af66b8a137 100644 --- a/care/facility/migrations/0438_rename_features_facility_old_features.py +++ b/care/facility/migrations/0445_rename_features_facility_old_features.py @@ -2,7 +2,6 @@ import django.contrib.postgres.fields from django.db import migrations, models -from django.db.models import Q def convert_features_to_array(apps, schema_editor): @@ -13,8 +12,11 @@ def convert_features_to_array(apps, schema_editor): updated_facilities = [] for facility in facilities_to_update: - facility.features = list(map(int, facility.old_features.split(","))) - updated_facilities.append(facility) + try: + facility.features = list(facility.old_features) + updated_facilities.append(facility) + except ValueError: + print(f"facility '{facility.name}' has invalid facility features") if updated_facilities: Facility.objects.bulk_update(updated_facilities, ["features"]) diff --git a/care/facility/migrations/0446_merge_20240712_1357.py b/care/facility/migrations/0446_merge_20240712_1357.py new file mode 100644 index 0000000000..ca48037807 --- /dev/null +++ b/care/facility/migrations/0446_merge_20240712_1357.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.10 on 2024-07-12 08:27 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("facility", "0444_alter_medicineadministration_dosage_and_more"), + ("facility", "0445_rename_features_facility_old_features"), + ] + + operations = [] From a647759105e9d5d0b3e09e10722050aeba0aad7b Mon Sep 17 00:00:00 2001 From: prafful Date: Sat, 13 Jul 2024 22:44:24 +0530 Subject: [PATCH 07/10] deleted merge migration and updated the numbers --- .../0445_rename_features_facility_old_features.py | 2 +- .../facility/migrations/0446_merge_20240712_1357.py | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) delete mode 100644 care/facility/migrations/0446_merge_20240712_1357.py diff --git a/care/facility/migrations/0445_rename_features_facility_old_features.py b/care/facility/migrations/0445_rename_features_facility_old_features.py index af66b8a137..7758478884 100644 --- a/care/facility/migrations/0445_rename_features_facility_old_features.py +++ b/care/facility/migrations/0445_rename_features_facility_old_features.py @@ -24,7 +24,7 @@ def convert_features_to_array(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ("facility", "0437_alter_dailyround_rounds_type"), + ("facility", "0444_alter_medicineadministration_dosage_and_more.py"), ] operations = [ diff --git a/care/facility/migrations/0446_merge_20240712_1357.py b/care/facility/migrations/0446_merge_20240712_1357.py deleted file mode 100644 index ca48037807..0000000000 --- a/care/facility/migrations/0446_merge_20240712_1357.py +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Django 4.2.10 on 2024-07-12 08:27 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("facility", "0444_alter_medicineadministration_dosage_and_more"), - ("facility", "0445_rename_features_facility_old_features"), - ] - - operations = [] From 643562e5b6c7e24c1915eff45ca9e77dd75ba9b2 Mon Sep 17 00:00:00 2001 From: prafful Date: Sat, 20 Jul 2024 13:44:52 +0530 Subject: [PATCH 08/10] fixed dummy data in facility.json --- data/dummy/facility.json | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/data/dummy/facility.json b/data/dummy/facility.json index 7b7485df8c..45f4a12b71 100644 --- a/data/dummy/facility.json +++ b/data/dummy/facility.json @@ -12,7 +12,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "1,2,3,4,5,6", + "features": [1,2,3,4,5,6], "longitude": null, "latitude": null, "pincode": 670000, @@ -49,7 +49,7 @@ "verified": false, "facility_type": 1300, "kasp_empanelled": false, - "features": "1,6", + "features": [1,6], "longitude": null, "latitude": null, "pincode": 670112, @@ -86,7 +86,7 @@ "verified": false, "facility_type": 1500, "kasp_empanelled": false, - "features": "1,4,6", + "features": [1,4,6], "longitude": "78.6757364624373000", "latitude": "21.4009146842158660", "pincode": 670000, @@ -123,7 +123,7 @@ "verified": false, "facility_type": 1510, "kasp_empanelled": false, - "features": "1,3,5", + "features": [1,3,5], "longitude": "75.2139014820876600", "latitude": "18.2774285038890340", "pincode": 670000, @@ -160,7 +160,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -197,7 +197,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -234,7 +234,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -271,7 +271,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -308,7 +308,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -345,7 +345,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -382,7 +382,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -419,7 +419,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -456,7 +456,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -493,7 +493,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -530,7 +530,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -567,7 +567,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -604,7 +604,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -641,7 +641,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -678,7 +678,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, @@ -715,7 +715,7 @@ "verified": false, "facility_type": 2, "kasp_empanelled": false, - "features": "", + "features": [], "longitude": null, "latitude": null, "pincode": 682001, From 5a814c43d78b7c192fca1f57b804635b63a7449d Mon Sep 17 00:00:00 2001 From: prafful Date: Sat, 20 Jul 2024 13:45:02 +0530 Subject: [PATCH 09/10] fixed dummy data in facility.json --- ...eatures.py => 0447_rename_features_facility_old_features.py} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename care/facility/migrations/{0445_rename_features_facility_old_features.py => 0447_rename_features_facility_old_features.py} (95%) diff --git a/care/facility/migrations/0445_rename_features_facility_old_features.py b/care/facility/migrations/0447_rename_features_facility_old_features.py similarity index 95% rename from care/facility/migrations/0445_rename_features_facility_old_features.py rename to care/facility/migrations/0447_rename_features_facility_old_features.py index 7758478884..d6550ff2ec 100644 --- a/care/facility/migrations/0445_rename_features_facility_old_features.py +++ b/care/facility/migrations/0447_rename_features_facility_old_features.py @@ -24,7 +24,7 @@ def convert_features_to_array(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ("facility", "0444_alter_medicineadministration_dosage_and_more.py"), + ("facility", "0446_alter_notification_event"), ] operations = [ From 8c5b4a613c5a4a492347df062c37ebf2f4b40d6c Mon Sep 17 00:00:00 2001 From: prafful Date: Fri, 16 Aug 2024 18:57:44 +0530 Subject: [PATCH 10/10] updated migration number --- ...eatures.py => 0448_rename_features_facility_old_features.py} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename care/facility/migrations/{0447_rename_features_facility_old_features.py => 0448_rename_features_facility_old_features.py} (96%) diff --git a/care/facility/migrations/0447_rename_features_facility_old_features.py b/care/facility/migrations/0448_rename_features_facility_old_features.py similarity index 96% rename from care/facility/migrations/0447_rename_features_facility_old_features.py rename to care/facility/migrations/0448_rename_features_facility_old_features.py index d6550ff2ec..77f3053b83 100644 --- a/care/facility/migrations/0447_rename_features_facility_old_features.py +++ b/care/facility/migrations/0448_rename_features_facility_old_features.py @@ -24,7 +24,7 @@ def convert_features_to_array(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ("facility", "0446_alter_notification_event"), + ("facility", "0447_patientconsultationevent_taken_at"), ] operations = [