From ab93b3d0f165eb047a741f76dacb915ca1d277b2 Mon Sep 17 00:00:00 2001 From: sudip-khanal Date: Mon, 13 Oct 2025 11:56:42 +0545 Subject: [PATCH 1/7] fix(bulk-upload) update bulk upload logic for XLSX files --- ...ve Bulk Import Template - Local Units.xlsx | Bin 0 -> 76017 bytes ...re Bulk Import Template - Local Units.xlsx | Bin 0 -> 145711 bytes .../local-unit-bulk-upload-template.csv | 1 - ...local-unit-health-bulk-upload-template.csv | 1 - local_units/bulk_upload.py | 309 ++++++++++++------ local_units/models.py | 1 + local_units/serializers.py | 10 +- local_units/test_views.py | 42 +-- local_units/utils.py | 9 +- local_units/views.py | 6 +- main/test_files/local_unit/test-admin.xlsx | Bin 0 -> 76718 bytes main/test_files/local_unit/test-health.csv | 4 - main/test_files/local_unit/test-health.xlsx | Bin 0 -> 144861 bytes main/test_files/local_unit/test.csv | 4 - 14 files changed, 249 insertions(+), 138 deletions(-) create mode 100644 go-static/files/local_units/Administrative Bulk Import Template - Local Units.xlsx create mode 100644 go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsx delete mode 100644 go-static/files/local_units/local-unit-bulk-upload-template.csv delete mode 100644 go-static/files/local_units/local-unit-health-bulk-upload-template.csv create mode 100644 main/test_files/local_unit/test-admin.xlsx delete mode 100644 main/test_files/local_unit/test-health.csv create mode 100644 main/test_files/local_unit/test-health.xlsx delete mode 100644 main/test_files/local_unit/test.csv diff --git a/go-static/files/local_units/Administrative Bulk Import Template - Local Units.xlsx b/go-static/files/local_units/Administrative Bulk Import Template - Local Units.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4beadbb678e8282956e47aa6148f69787466915a GIT binary patch literal 76017 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°ATvx*4)NN=Tu4wbMbyq`C(sGJP6RWImro1b%F#rkt0FW>Oai~F^RuWR0!a|I zR|#VhI%3d-VI-7zgsHf-gn5{hENa9O5qMFDn1sr!7ge`%Q6i327e?|7!iQ;8foDwU zh=F)jwZ$w`39q*HjHIzPhDBy(qr{RTO)|ZjCKf|HAsdU4aJsSx$J4|=dmi`xVgPQnw%@awZAg&0!`)Lp|RNamY9MiC^u z*7nZ3D*RmXM5rKvj)2%jTnvL?kK;)SBIq>yEpZ(a+}znggTXMmFvPCfMhPb(hFKRgQdCt#pi)dwVXlifm z5y-&yj)E*SB3FDiOI#L?Ik3=0#^45#yA1Ks` z5HApg6NqZrLL$aF?s*^!;*p^)aT+9wA!6`OuhU3OsIi1hLQzFN+9XLU(^(=Z5VFMy ztUuHAMC~02sI9YTwXoKNw^_n#j3A=26Ud~|DB8?V&BNMbu_#F+8p#5X-6N6+B985u zdMs@YBrd^bGNHDjG^Qaruzf)i8IR|8)Q5^L)zC4RmRcf`bOI6xy!k>%d83uu;EH_y z{;~&3O4WQdrHxht298!5tu%P>V5Q2*7{`>iwH}R1N=k;xN=g&Jzu*1^c_1-9ZXUkK zK&+4Z4lLGvZjh(PTxrYS``J@&v1P(QC8g(}AI)z%nLj{D3G~ymhri!k9XW9DdvLRx zx{{LCH#Z*#-GQ6^_PTkx{q;FtD#G78SZkMAK^>%|#4%J-0)6!OyR0hfz}GL>!_8OT zt@OjJIpb86lb_H|+ z9@OJ627vg#x4RxVAn$Ir%XY38xN{=_=v&O`00zg^ST8>}FF(wt-~(>HPVzdiE?OVA zz*R|U{3;ctaXlWcq=X;)zl{6tb#wFcMauqJAg`C6y7_G{-GOp@`4|5xKx`@8!<1eC M^u|mFBT@SQ054?KY5)KL literal 0 HcmV?d00001 diff --git a/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsx b/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0ca799bd9d8e96e595ecb3221389d32b2ebaf0be GIT binary patch literal 145711 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 literal 0 HcmV?d00001 diff --git a/go-static/files/local_units/local-unit-bulk-upload-template.csv b/go-static/files/local_units/local-unit-bulk-upload-template.csv deleted file mode 100644 index 58fe39a2f..000000000 --- a/go-static/files/local_units/local-unit-bulk-upload-template.csv +++ /dev/null @@ -1 +0,0 @@ -local_branch_name,english_branch_name,subtype,level,postcode,address_loc,address_en,city_loc,city_en,focal_person_loc,focal_person_en,phone,email,link,source_en,source_loc,date_of_data,visibility,longitude,latitude diff --git a/go-static/files/local_units/local-unit-health-bulk-upload-template.csv b/go-static/files/local_units/local-unit-health-bulk-upload-template.csv deleted file mode 100644 index da9593c64..000000000 --- a/go-static/files/local_units/local-unit-health-bulk-upload-template.csv +++ /dev/null @@ -1 +0,0 @@ -focal_point_email,focal_point_phone_number,focal_point_position,health_facility_type,other_facility_type,affiliation,functionality,primary_health_care_centre,speciality,hospital_type,is_teaching_hospital,is_in_patient_capacity,maximum_capacity,is_isolation_rooms_wards,number_of_isolation_rooms,is_warehousing,is_cold_chain,general_medical_services,specialized_medical_beyond_primary_level,other_services,blood_services,total_number_of_human_resource,general_practitioner,specialist,residents_doctor,nurse,dentist,nursing_aid,midwife,other_medical_heal,other_profiles,feedback,professional_training_facilities,ambulance_type_a,ambulance_type_b,ambulance_type_c,residential_long_term_care_facilities,primary_health_care_center,other_affiliation,local_branch_name,english_branch_name,subtype,level,postcode,address_loc,address_en,city_loc,city_en,focal_person_loc,focal_person_en,phone,email,link,source_en,source_loc,date_of_data,visibility,longitude,latitude diff --git a/local_units/bulk_upload.py b/local_units/bulk_upload.py index eb388c94d..e70c2958c 100644 --- a/local_units/bulk_upload.py +++ b/local_units/bulk_upload.py @@ -1,11 +1,14 @@ -import csv import io import logging from dataclasses import dataclass +from datetime import date, datetime from typing import Any, Dict, Generic, Literal, Optional, Type, TypeVar +import openpyxl from django.core.files.base import ContentFile from django.db import transaction +from openpyxl import Workbook +from openpyxl.styles import PatternFill from rest_framework.exceptions import ErrorDetail from rest_framework.serializers import Serializer @@ -15,7 +18,6 @@ logger = logging.getLogger(__name__) - ContextType = TypeVar("ContextType") @@ -26,74 +28,89 @@ class BulkUploadError(Exception): class ErrorWriter: - def __init__(self, fieldnames: list[str]): - self._fieldnames = ["upload_status"] + fieldnames + ERROR_ROW_FILL = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid") + + def __init__(self, fieldnames: list[str], header_map: dict[str, str]): + """Initialize workbook and header row.""" + self._header_map = header_map or {} + self._reverse_header_map = {v: k for k, v in self._header_map.items()} + # Convert model field names to xlsx template headers + display_header = [self._reverse_header_map.get(field, field) for field in fieldnames] + + self._fieldnames = ["Upload Status"] + display_header + self._workbook = Workbook() + self._ws = self._workbook.active + + self._ws.append(self._fieldnames) + self._existing_error_columns = set() self._rows: list[dict[str, str]] = [] - self._output = io.StringIO() - self._writer = csv.DictWriter(self._output, fieldnames=self._fieldnames) - self._writer.writeheader() self._has_errors = False def _format_errors(self, errors: dict) -> dict[str, list[str]]: - """Format serializer errors into field_name and list of messages.""" - error = {} + """Recursively flatten DRF errors.""" + formatted = {} for key, value in errors.items(): if isinstance(value, dict): - for inner_key, inner_value in self._format_errors(value).items(): - error[inner_key] = inner_value + formatted.update(self._format_errors(value)) elif isinstance(value, list): - error[key] = [self._clean_message(v) for v in value] + header = self._reverse_header_map.get(key, key) + formatted[header] = [self._clean_message(v) for v in value] else: - error[key] = [self._clean_message(value)] - return error + header = self._reverse_header_map.get(key, key) + formatted[header] = [self._clean_message(value)] + return formatted - def _clean_message(self, msg: Any) -> str: - """Convert ErrorDetail or other objects into normal text.""" + def _clean_message(self, msg: any) -> str: if isinstance(msg, ErrorDetail): return str(msg) return str(msg) - def _update_csv_header_with_errors(self): - """Update the CSV with updated headers when new error columns are introduced.""" - self._output.seek(0) - self._output.truncate() - self._writer = csv.DictWriter(self._output, fieldnames=self._fieldnames) - self._writer.writeheader() - for row in self._rows: - self._writer.writerow(row) + def _add_error_columns(self, fields: list[str]): + """Ensure field has a matching _error column.""" + for field in fields: + col_name = f"{field}_error" + if col_name in self._existing_error_columns: + continue + self._existing_error_columns.add(col_name) + + if field in self._fieldnames: + idx = self._fieldnames.index(field) + 1 + self._fieldnames.insert(idx, col_name) + self._ws.insert_cols(idx + 1) + else: + self._fieldnames.append(col_name) + for i, col_name in enumerate(self._fieldnames, start=1): + self._ws.cell(row=1, column=i, value=col_name) def write( self, - row: dict[str, str], + row: dict[str, any], status: Literal[LocalUnitBulkUpload.Status.SUCCESS, LocalUnitBulkUpload.Status.FAILED], error_detail: dict | None = None, - ) -> None: - row_copy = {col: row.get(col, "") for col in self._fieldnames} - row_copy["upload_status"] = status.name - added_error_column = False + ): + row_display = {self._reverse_header_map.get(k, k): v for k, v in row.items()} + row_out = {col: row_display.get(col, "") for col in self._fieldnames} + row_out["Upload Status"] = status.name if status == LocalUnitBulkUpload.Status.FAILED and error_detail: - formatted_errors = self._format_errors(error_detail) - for field, messages in formatted_errors.items(): - error_col = f"{field}_error" - - if error_col not in self._fieldnames: - if field in self._fieldnames: - col_idx = self._fieldnames.index(field) - self._fieldnames.insert(col_idx + 1, error_col) - else: - self._fieldnames.append(error_col) + formatted = self._format_errors(error_detail) + self._add_error_columns(list(formatted.keys())) + for field, msgs in formatted.items(): + row_out[f"{field}_error"] = "; ".join(msgs) + self._has_errors = True - added_error_column = True - row_copy[error_col] = "; ".join(messages) - self._rows.append(row_copy) - if added_error_column: - self._update_csv_header_with_errors() - else: - self._writer.writerow(row_copy) + self._ws.append([row_out.get(col, "") for col in self._fieldnames]) + + if status == LocalUnitBulkUpload.Status.FAILED: + for cell in self._ws[self._ws.max_row]: + cell.fill = self.ERROR_ROW_FILL def to_content_file(self) -> ContentFile: - return ContentFile(self._output.getvalue().encode("utf-8")) + """Export workbook as Content File for Django.""" + buffer = io.BytesIO() + self._workbook.save(buffer) + buffer.seek(0) + return ContentFile(buffer.getvalue()) class BaseBulkUpload(Generic[ContextType]): @@ -116,12 +133,15 @@ def delete_existing_local_unit(self): """Delete existing local units based on the context.""" pass - def _validate_csv(self, fieldnames) -> None: + def _validate_type(self, fieldnames) -> None: pass - def _is_csv_empty(self, csv_reader: csv.DictReader) -> tuple[bool, list[dict]]: - rows = list(csv_reader) - return len(rows) == 0, rows + def is_excel_data_empty(self, sheet, data_start_row=4): + """Check if file is empty or not""" + for row in sheet.iter_rows(values_only=True, min_row=data_start_row): + if any(cell is not None for cell in row): + return False + return True def process_row(self, data: Dict[str, Any]) -> bool: serializer = self.serializer_class(data=data) @@ -132,49 +152,71 @@ def process_row(self, data: Dict[str, Any]) -> bool: return False def run(self) -> None: - with self.bulk_upload.file.open("rb") as csv_file: - file = io.TextIOWrapper(csv_file, encoding="utf-8") - csv_reader = csv.DictReader(file) - fieldnames = csv_reader.fieldnames or [] + with self.bulk_upload.file.open("rb") as f: try: - is_empty, rows = self._is_csv_empty(csv_reader) - if is_empty: - raise BulkUploadError("The uploaded CSV file is empty or contains only blank rows.") - - csv_reader = iter(rows) - - self._validate_csv(fieldnames) - except BulkUploadError as e: + # TODO(sudip): Use read_only while reading xlsx file + workbook = openpyxl.load_workbook(f, data_only=True) + sheet = workbook.active + header_row_index = 2 + data_row_index = header_row_index + 2 + + # Read header row + headers = next(sheet.iter_rows(values_only=True, min_row=header_row_index, max_row=header_row_index)) + raw_fieldnames = [str(h).strip() for h in headers if h and str(h).strip()] + header_map = getattr(self, "HEADER_MAP", {}) or {} + mapped_fieldnames = [header_map.get(h, h) for h in raw_fieldnames] + fieldnames = mapped_fieldnames + + if self.is_excel_data_empty(sheet, data_start_row=data_row_index): + raise BulkUploadError("The uploaded Excel file is empty. Please provide at least one data row.") + + self._validate_type(fieldnames) + data_rows = ( + row + for row in sheet.iter_rows(values_only=True, min_row=4) + if any(cell is not None for cell in row) # skip the empty rows + ) + except Exception as e: self.bulk_upload.status = LocalUnitBulkUpload.Status.FAILED self.bulk_upload.error_message = str(e) self.bulk_upload.save(update_fields=["status", "error_message"]) logger.warning(f"[BulkUpload:{self.bulk_upload.pk}] Validation error: {str(e)}") return - context = self.get_context().__dict__ - self.error_writer = ErrorWriter(fieldnames) - try: - with transaction.atomic(): - self.delete_existing_local_unit() - for row_index, row_data in enumerate(csv_reader, start=2): - data = {**row_data, **context} - if self.process_row(data): - self.success_count += 1 - self.error_writer.write(row_data, status=LocalUnitBulkUpload.Status.SUCCESS) - else: - self.failed_count += 1 - self.error_writer.write( - row_data, status=LocalUnitBulkUpload.Status.FAILED, error_detail=self.error_detail - ) - logger.warning(f"[BulkUpload:{self.bulk_upload.pk}] Row '{row_index}' failed") - - if self.failed_count > 0: - raise BulkUploadError("Bulk upload failed with some errors.") - - self.bulk_manager.done() - self._finalize_success() - except BulkUploadError: - self._finalize_failure() + context = self.get_context().__dict__ + self.error_writer = ErrorWriter(fieldnames=raw_fieldnames, header_map=header_map) + + try: + with transaction.atomic(): + self.delete_existing_local_unit() + + for row_index, row_values in enumerate(data_rows, start=data_row_index): + row_dict = dict(zip(fieldnames, row_values)) + row_dict = {**row_dict, **context} + # Convert datetime objects to strings + for key, value in row_dict.items(): + if isinstance(value, (datetime, date)): + row_dict[key] = value.strftime("%Y-%m-%d") + if self.process_row(row_dict): + self.success_count += 1 + self.error_writer.write(row_dict, status=LocalUnitBulkUpload.Status.SUCCESS) + else: + self.failed_count += 1 + self.error_writer.write( + row_dict, + status=LocalUnitBulkUpload.Status.FAILED, + error_detail=self.error_detail, + ) + logger.warning(f"[BulkUpload:{self.bulk_upload.pk}] Row {row_index} failed") + + if self.failed_count > 0: + raise BulkUploadError("Bulk upload failed with some errors.") + + self.bulk_manager.done() + self._finalize_success() + + except BulkUploadError: + self._finalize_failure() def _finalize_success(self) -> None: self.bulk_upload.success_count = self.success_count @@ -187,7 +229,7 @@ def _finalize_success(self) -> None: def _finalize_failure(self) -> None: if self.error_writer: error_file = self.error_writer.to_content_file() - self.bulk_upload.error_file.save("error_file.csv", error_file, save=True) + self.bulk_upload.error_file.save("error_file.xlsx", error_file, save=True) self.bulk_upload.success_count = self.success_count self.bulk_upload.failed_count = self.failed_count @@ -206,6 +248,28 @@ class LocalUnitUploadContext: class BaseBulkUploadLocalUnit(BaseBulkUpload[LocalUnitUploadContext]): + HEADER_MAP = { + "Date of Update": "date_of_data", + "Local Unit Name (En)": "english_branch_name", + "Local Unit Name (Local)": "local_branch_name", + "Visibility": "visibility", + "Coverage": "level", + "Sub-type": "subtype", + "Focal Person (En)": "focal_person_en", + "Source (En)": "source_en", + "Source (Local)": "source_loc", + "Focal Person (Local)": "focal_person_loc", + "Address (Local)": "address_loc", + "Address (En)": "address_en", + "Locality (Local)": "city_loc", + "Locality (En)": "city_en", + "Local Unit Post Code": "postcode", + "Local Unit Email": "email", + "Local Unit Phone Number": "phone", + "Local Unit Website": "link", + "Latitude": "latitude", + "Longitude": "longitude", + } def __init__(self, bulk_upload: LocalUnitBulkUpload): from local_units.serializers import LocalUnitBulkUploadDetailSerializer @@ -232,19 +296,66 @@ def delete_existing_local_unit(self): else: logger.info("No existing local units found for deletion.") - def _validate_csv(self, fieldnames) -> None: + def _validate_type(self, fieldnames: list[str]) -> None: + health_field_names = set(get_model_field_names(HealthData)) - present_health_fields = health_field_names & set(fieldnames) + present_health_fields = {h for h in health_field_names if h.lower() in [f.lower() for f in fieldnames]} local_unit_type = LocalUnitType.objects.filter(id=self.bulk_upload.local_unit_type_id).first() if not local_unit_type: raise ValueError("Invalid local unit type") if present_health_fields and local_unit_type.name.strip().lower() != "health care": - raise BulkUploadError(f"You cannot upload Healthcare data when the Local Unit type is set to {local_unit_type.name}.") + raise BulkUploadError( + f"You cannot upload Healthcare data when the Local Unit type is set to '{local_unit_type.name}'." + ) class BulkUploadHealthData(BaseBulkUpload[LocalUnitUploadContext]): + # Local Unit headers + Health Data headers + HEADER_MAP = { + **BaseBulkUploadLocalUnit.HEADER_MAP, + **{ + "Focal Person Email": "focal_point_email", + "Focal Person Phone Number": "focal_point_phone_number", + "Focal Person Position": "focal_point_position", + "Health Facility Type": "health_facility_type", + "Other Facility Type": "other_facility_type", + "Affiliation": "affiliation", + "Other Affiliation": "other_affiliation", + "Functionality": "functionality", + "Primary Health Care Center": "primary_health_care_center", + "Specialities": "speciality", + "Hospital Type": "hospital_type", + "Teaching Hospital": "is_teaching_hospital", + "In-patient Capacity": "is_in_patient_capacity", + "Isolation Rooms": "is_isolation_rooms_wards", + "Number of Isolation Beds": "number_of_isolation_rooms", + "Warehousing": "is_warehousing", + "Cold Chain": "is_cold_chain", + "Maximum Bed Capacity": "maximum_capacity", + "General Medical Services": "general_medical_services", + "Specialized Medical Services (beyond primary level)": "specialized_medical_beyond_primary_level", + "Blood Services": "blood_services", + "Other Services": "other_services", + "Total Number of Human Resources": "total_number_of_human_resource", + "General Practitioners": "general_practitioner", + "Resident Doctors": "residents_doctor", + "Specialists": "specialist", + "Nurses": "nurse", + "Nursing Aids": "nursing_aid", + "Dentists": "dentist", + "Midwife": "midwife", + "Pharmacists": "pharmacists", + "Other Profiles": "other_profiles", + "Other Training Facility": "other_training_facilities", + "Professional Training Facilities": "professional_training_facilities", + "Ambulance Type A": "ambulance_type_a", + "Ambulance Type B": "ambulance_type_b", + "Ambulance Type C": "ambulance_type_c", + }, + } + def __init__(self, bulk_upload: LocalUnitBulkUpload): from local_units.serializers import LocalUnitBulkUploadDetailSerializer @@ -277,7 +388,17 @@ def delete_existing_local_unit(self): logger.info("No existing local units found for deletion.") def process_row(self, data: dict[str, any]) -> bool: - health_data = {k: data.get(k) for k in list(data.keys()) if k in self.health_field_names} + from local_units.serializers import HealthDataBulkUploadSerializer + + health_data = {k: data.get(k) for k in data.keys() if k in self.health_field_names} + if health_data: - data["health"] = health_data - return super().process_row(data) + health_serializer = HealthDataBulkUploadSerializer(data=health_data) + if not health_serializer.is_valid(): + self.error_detail = health_serializer.errors + return False + health_instance = health_serializer.save() + for k in health_data.keys(): + data.pop(k, None) + data["health"] = health_instance.pk + return super().process_row(data) diff --git a/local_units/models.py b/local_units/models.py index 158c52beb..bd987df74 100644 --- a/local_units/models.py +++ b/local_units/models.py @@ -203,6 +203,7 @@ class HealthData(models.Model): null=True, blank=True, ) + ambulance_type_a = models.IntegerField(verbose_name=_("Ambulance Type A"), blank=True, null=True) ambulance_type_b = models.IntegerField(verbose_name=_("Ambulance Type B"), blank=True, null=True) ambulance_type_c = models.IntegerField(verbose_name=_("Ambulance Type C"), blank=True, null=True) diff --git a/local_units/serializers.py b/local_units/serializers.py index 4ab84d46a..a1b6b032c 100644 --- a/local_units/serializers.py +++ b/local_units/serializers.py @@ -703,8 +703,8 @@ class Meta: ) def validate_file(self, file): - if not file.name.endswith(".csv"): - raise serializers.ValidationError(gettext("File must be a CSV file.")) + if not file.name.endswith(".xlsx"): + raise serializers.ValidationError(gettext("File must be a xlsx file.")) if file.size > 10 * 1024 * 1024: raise serializers.ValidationError(gettext("File must be less than 10 MB.")) return file @@ -871,7 +871,7 @@ class LocalUnitBulkUploadDetailSerializer(serializers.ModelSerializer): visibility = serializers.CharField(required=True, allow_blank=True) date_of_data = serializers.CharField(required=False, allow_null=True) level = serializers.CharField(required=False, allow_null=True) - health = HealthDataBulkUploadSerializer(required=False) + health = serializers.PrimaryKeyRelatedField(queryset=HealthData.objects.all(), required=False, allow_null=True) class Meta: model = LocalUnit @@ -952,10 +952,6 @@ def validate(self, validated_data): validated_data["status"] = LocalUnit.Status.EXTERNALLY_MANAGED # NOTE: Bulk upload doesn't call create() method - health_data = validated_data.pop("health", None) - if health_data: - health_instance = HealthData.objects.create(**health_data) - validated_data["health"] = health_instance return validated_data diff --git a/local_units/test_views.py b/local_units/test_views.py index f2d0f5b09..61cd014b5 100644 --- a/local_units/test_views.py +++ b/local_units/test_views.py @@ -1177,15 +1177,15 @@ def setUp(self): global_group.permissions.add(global_permission) self.global_validator_user.groups.add(global_group) - file_path = os.path.join(settings.TEST_DIR, "local_unit/test.csv") + file_path = os.path.join(settings.TEST_DIR, "local_unit/test-admin.xlsx") with open(file_path, "rb") as f: self._file_content = f.read() - def create_upload_file(self, filename="test.csv"): + def create_upload_file(self, filename="test-admin.xlsx"): """ Always return a new file instance to prevent stream exhaustion. """ - return SimpleUploadedFile(filename, self._file_content, content_type="text/csv") + return SimpleUploadedFile(filename, self._file_content, content_type="text/xlsx") @mock.patch("local_units.tasks.process_bulk_upload_local_unit.delay") def test_bulk_upload_local_unit(self, mock_delay): @@ -1330,16 +1330,16 @@ def setUpTestData(cls): cls.local_unit_type = LocalUnitType.objects.create(code=1, name="Administrative") cls.local_unit_type2 = LocalUnitType.objects.create(code=2, name="Health Care") cls.level = LocalUnitLevel.objects.create(level=0, name="National") - file_path = os.path.join(settings.TEST_DIR, "local_unit/test.csv") + file_path = os.path.join(settings.TEST_DIR, "local_unit/test-admin.xlsx") with open(file_path, "rb") as f: cls._file_content = f.read() - def create_upload_file(cls, filename="test.csv"): - return SimpleUploadedFile(filename, cls._file_content, content_type="text/csv") + def create_upload_file(cls, filename="test-admin.xlsx"): + return SimpleUploadedFile(filename, cls._file_content, content_type="text/xlsx") def test_bulk_upload_with_incorrect_country(cls): """ - Test bulk upload fails when the country does not match CSV data. + Test bulk upload fails when the country does not match xlsx data. """ cls.bulk_upload = LocalUnitBulkUploadFactory.create( country=cls.country1, @@ -1362,13 +1362,13 @@ def test_bulk_upload_with_incorrect_country(cls): def test_bulk_upload_with_valid_country(cls): """ - Test bulk upload succeeds when the country matches CSV data + Test bulk upload succeeds when the country matches xlsx data """ cls.bulk_upload = LocalUnitBulkUploadFactory.create( country=cls.country2, # Brazil local_unit_type=cls.local_unit_type, triggered_by=cls.user, - file=cls.create_upload_file(), # CSV with Brazil rows + file=cls.create_upload_file(), # xlsx with Brazil rows status=LocalUnitBulkUpload.Status.PENDING, ) runner = BaseBulkUploadLocalUnit(cls.bulk_upload) @@ -1381,7 +1381,7 @@ def test_bulk_upload_with_valid_country(cls): def test_bulk_upload_fails_and_delete(cls): """ - Test bulk upload fails and delete when CSV has incorrect data. + Test bulk upload fails and delete when xlsx has incorrect data. """ LocalUnitFactory.create_batch( 5, @@ -1410,7 +1410,7 @@ def test_bulk_upload_fails_and_delete(cls): def test_bulk_upload_deletes_old_and_creates_new_local_units(cls): """ - Test bulk upload with correct CSV data. + Test bulk upload with correct data. """ old_local_unit = LocalUnitFactory.create( country=cls.country2, @@ -1442,10 +1442,14 @@ def test_empty_administrative_file(cls): Test bulk upload file is empty """ - file_path = os.path.join(settings.STATICFILES_DIRS[0], "files", "local_units", "local-unit-bulk-upload-template.csv") + file_path = os.path.join( + settings.STATICFILES_DIRS[0], "files", "local_units", "Administrative Bulk Import Template - Local Units.xlsx" + ) with open(file_path, "rb") as f: file_content = f.read() - empty_file = SimpleUploadedFile(name="local-unit-bulk-upload-template.csv", content=file_content, content_type="text/csv") + empty_file = SimpleUploadedFile( + name="Administrative Bulk Import Template - Local Units.xlsx", content=file_content, content_type="text/xlsx" + ) LocalUnitFactory.create_batch( 5, country=cls.country2, @@ -1531,16 +1535,16 @@ def setUpTestData(cls): cls.professional_training_facilities = ProfessionalTrainingFacility.objects.create(code=1, name="Nurses") cls.general_medical_services = GeneralMedicalService.objects.create(code=1, name="Minor Trauma") - file_path = os.path.join(settings.TEST_DIR, "local_unit/test-health.csv") + file_path = os.path.join(settings.TEST_DIR, "local_unit/test-health.xlsx") with open(file_path, "rb") as f: cls._file_content = f.read() - def create_upload_file(cls, filename="test-health.csv"): - return SimpleUploadedFile(filename, cls._file_content, content_type="text/csv") + def create_upload_file(cls, filename="test-health.xlsx"): + return SimpleUploadedFile(filename, cls._file_content, content_type="text/xlsx") def test_bulk_upload_health_with_incorrect_country(cls): """ - Should fail when CSV rows are not equal to bulk upload country. + Should fail when rows are not equal to bulk upload country. """ cls.bulk_upload = LocalUnitBulkUploadFactory.create( country=cls.country1, @@ -1640,12 +1644,12 @@ def test_empty_health_template_file(cls): """ file_path = os.path.join( - settings.STATICFILES_DIRS[0], "files", "local_units", "local-unit-health-bulk-upload-template.csv" + settings.STATICFILES_DIRS[0], "files", "local_units", "Health Care Bulk Import Template - Local Units.xlsx" ) with open(file_path, "rb") as f: file_content = f.read() empty_file = SimpleUploadedFile( - name="local-unit-health-bulk-upload-template.csv", content=file_content, content_type="text/csv" + name="Health Care Bulk Import Template - Local Units.xlsx", content=file_content, content_type="text/xlsx" ) health_data = HealthDataFactory.create_batch( 5, diff --git a/local_units/utils.py b/local_units/utils.py index 2f2fabe1a..852d94c07 100644 --- a/local_units/utils.py +++ b/local_units/utils.py @@ -72,16 +72,13 @@ def get_model_field_names( def normalize_bool(value): - if isinstance(value, bool): - return value if not value: return False val = str(value).strip().lower() - if val in ("true", "1", "yes", "y"): + if val in ("yes"): return True - if val in ("false", "0", "no", "n"): + if val in ("no"): return False - return False def wash(string): @@ -91,4 +88,4 @@ def wash(string): def numerize(value): - return value if value.isdigit() else 0 + return value if value else 0 diff --git a/local_units/views.py b/local_units/views.py index 5e88c550c..78bfb6d96 100644 --- a/local_units/views.py +++ b/local_units/views.py @@ -476,8 +476,10 @@ class LocalUnitBulkUploadViewSet( def get_bulk_upload_template(self, request): template_type = request.query_params.get("bulk_upload_template", "local_unit") if template_type == "health_care": - file_url = request.build_absolute_uri(static("files/local_units/local-unit-health-bulk-upload-template.csv")) + file_url = request.build_absolute_uri(static("files/local_units/Health Care Bulk Import Template - Local Units.xlsx")) else: - file_url = request.build_absolute_uri(static("files/local_units/local-unit-bulk-upload-template.csv")) + file_url = request.build_absolute_uri( + static("files/local_units/Administrative Bulk Import Template - Local Units.xlsx") + ) template = {"template_url": file_url} return response.Response(LocalUnitTemplateFilesSerializer(template).data) diff --git a/main/test_files/local_unit/test-admin.xlsx b/main/test_files/local_unit/test-admin.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bfb2b4904c6fd59f6faf9c0d9fe1997052105623 GIT binary patch literal 76718 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 literal 0 HcmV?d00001 diff --git a/main/test_files/local_unit/test-health.csv b/main/test_files/local_unit/test-health.csv deleted file mode 100644 index 199297414..000000000 --- a/main/test_files/local_unit/test-health.csv +++ /dev/null @@ -1,4 +0,0 @@ -focal_point_email,focal_point_phone_number,focal_point_position,health_facility_type,other_facility_type,affiliation,functionality,primary_health_care_centre,speciality,hospital_type,is_teaching_hospital,is_in_patient_capacity,maximum_capacity,is_isolation_rooms_wards,number_of_isolation_rooms,is_warehousing,is_cold_chain,general_medical_services,specialized_medical_beyond_primary_level,other_services,blood_services,total_number_of_human_resource,general_practitioner,specialist,residents_doctor,nurse,dentist,nursing_aid,midwife,other_medical_heal,feedback,professional_training_facilities,ambulance_type_a,ambulance_type_b,ambulance_type_c,residential_long_term_care_facilities,primary_health_care_center,other_affiliation,local_branch_name,english_branch_name,subtype,level,postcode,address_loc,address_en,city_loc,city_en,focal_person_loc,focal_person_en,phone,email,link,source_en,source_loc,date_of_data,visibility,longitude,latitude -jele@redcross1.org.sz,26876088546,Programmes Manager,Ambulance Station,tet,Public Government Facility,Fully Functional,Medical Practices,"Initiate TB treatment, Cervical Cancer Screening and testing and diagnostic and treatment for people living with HIV and follow up care through the ART programme which the government supports very well",Mental Health Hospital,yes,No,2,yes,2,Yes,Yes,Minor Trauma,Anaesthesiology,test,Blood Collection,32,0,0,0,3,0,0,9,Yes,first question of initial question did not provide for the option to write the name of the NS. It is written LRC yet it should allow Baphalali Eswatini Red Cross Society (BERCS) to be inscribed in the box.,Nurses,2,1,1,1,Dental Practices,test,Cruz Vermelha - Órgão Central HQ - Brasília,,Office,National,70300-910,"Setor Comercial Sul (SCS), quadra 6, bloco A, nº 157, salas 502 e 503 - Edifício Bandeirantes, Asa Sul, Brasília-DF ",,Brasília - DF,,Lourenço Braga,,55 (61) 99909-0761,secretario.geral@cvb.org.br,http://www.cruzvermelha.org.br/,Brazilian Red Cross,Brazilian Red Cross Local,2024-02-07,Public,-47.88972222,-15.79638889 -jele@redcross2.org.sz,26876088546,Programmes Manager,Ambulance Station,tet,Public Government Facility,Fully Functional,"Medical Practices,Dental Practices","Initiate TB treatment, Cervical Cancer Screening and testing and diagnostic and treatment for people living with HIV and follow up care through the ART programme which the government supports very well",Mental Health Hospital,No ,No,2,yes,2,Yes,Yes,Minor Trauma,Anaesthesiology,test,Blood Collection,32,0,0,0,3,0,0,9,Yes,first question of initial question did not provide for the option to write the name of the NS. It is written LRC yet it should allow Baphalali Eswatini Red Cross Society (BERCS) to be inscribed in the box.,Nurses,1,2,3,1,Dental Practices,test,Filial Alagoas,,Office,National,57035-530,"Av. Com. Gustavo de Paiva, 2889 - Mangabeiras, Maceió - AL",,Alagoas - AL,,Agarina Mendonça,,55 (82) 3325-2430,diretoria@cvbal.org.br,https://www.cruzvermelha.org.br/pb/filiais/alagoas/,Brazilian Red Cross,Brazilian Red Cross Local,2024-02-07,Public,-35.71611111,-9.64777778 -jele@redcross.org.sz,26876088546,Programmes Manager,Ambulance Station,tet,Public Government Facility,Fully Functional,Medical Practices,"Initiate TB treatment, Cervical Cancer Screening and testing and diagnostic and treatment for people living with HIV and follow up care through the ART programme which the government supports very well",Mental Health Hospital,No ,No,2,no,2,Yes,Yes,Minor Trauma,Anaesthesiology,test,Blood Collection,32,0,0,0,3,0,0,9,Yes,first question of initial question did not provide for the option to write the name of the NS. It is written LRC yet it should allow Baphalali Eswatini Red Cross Society (BERCS) to be inscribed in the box.,Nurses,1,2,2,1,Dental Practices,test,Cruz Vermelha - Órgão Central HQ,,Office,National,20230-130,"Praça Cruz Vermelha N° 10-12, Centro, Rio de Janeiro - RJ",,Rio de Janeiro - RJ,,Thiago Quintaneiro,,55 (21) 2507-3577 / 2507-3392,secretario.cooperacao@cvb.org.br,http://www.cruzvermelha.org.br/,Brazilian Red Cross,Brazilian Red Cross Local,2024-02-07,Public,-43.1875,-22.91111111 diff --git a/main/test_files/local_unit/test-health.xlsx b/main/test_files/local_unit/test-health.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d819ddc7624b4a86d8f074dd030d6193e76b4b20 GIT binary patch literal 144861 zcmeEP2{_bU`>uo{BqW5Q5-O=sws|W{yQEOc)|16qX6Ao>GrgKopOkNY-~V#W`(0OW_0BiPIp=wvbD!tj_w(%C$uygH#+*5G zX2>lyGMGX2k0AK{SxXtCGsi9MWSnfySeV+_Sgbi~Ww{3Wo6PHlr}Ea$SH}&r$>Q~s z@qhCcez>_M*=l6w77>FL$;&j#HHlfLbOc#F+j8xfx9qU%*}T4@<>=y`E>+G?*8Z#J(Tt}`vqvwd*woa2yr7UEu9!7{>83%`b?@IVl^$9X zU>dl5{k0&0x61{@L|Lv#_#Rc^MSnJ0BOXsW{iFotelj z&D{~*Qxkj9uO>czv-X339yM+=cs6Kdb-p!ucJ_{u%q5G4`S|^k=I9I{7NxCJW7!$n zCA}Bpx#-&BOPQpw3(%ajD3xBmJ$51AJn zYHy1ADt&C5-;0|?g`2i)oXb*mvth}GeJhgg=e2x1m|aHnQ!wy3n{ajL5#O2Ak}J2@ znVMsRtkrncu_>?9QXfl%Rd;-9Q-6F|R9r(`u^~3VdRXkts*~pjq zy&u!a;qcb^^`%P#9Q)cg>j&=GXZ*->R?E^J1!3zl`>qvdb?Wh&!`a*!iDDuGS9O*w zdK)lk7#M*HH2-_(Z#z%@`FD1XI#dP`7A!mSu9m}diRI}}7kgHx_2l2#S3bh!v?EZ^ zobV;~O-3d+H=gMDUMRmwJE7d*B4N*>c<)drLJsOi?DdN*+%iqu`!86w?~VHUay9a@ zH!)RnWu;l-+vucDvBRP3uCW&sMSaG0%^A^)EJn_P%*w20o37xj88h-HG%Fs8S=pN( zw>mCE{#6$8!V10OGc`-*XW=9lb#q)FYzn^=+O}cv>pzBfu`}0hS-`P` z>&qod_MePWe2sEVZ&;JQs(-LpCMQSyz+JvG90X~uSyI~r*WQWy6wp(HW1sUpXI)Ol zHG2-+{=AUlbc>92oA`M39isKla@ZYx%eUpOzHFtQ`u2xMcCs%=J=M8&U+t5Gh3@GM z0~w3v7A>>Bb7K<;btP#a>inCq_H15M~c)@b5w$w0DA*PGNRsy?t z29IgvqBB0v)NguoBr`qn*;>Qvvw8ktuP{F6pP)Mbvu^m!m$_Jnmb|>Y^2?{Zg`!tq z3QB}EFB}~x>|N-kcuS{ar(L}NY~sPk zam+71SNGq{?%a9T)YMj#H*c}$b%Eb%F6_C- zw~MG5mQoU7z2)#ZHK*K-==Cmp(B}NXYc}po*8Q@A({UH_PR&yLg#prou`xF#YyBOL z%9sDW%D%Z{y<=Chs&9h&nU%>~6;Ppm+jVv}IoF7d>^YXUlXp{d;hPNeiB<+c+ZVfNTJAk?vXENbid7ek#eTz2-6mcJ9nil>MfT& zKR%>!&|;@r>&E+0jh6{;SL0tgu2JHBxV&QB zg&6}y?ltpuG!3Mzte=*2ysk}+SK%qz%e;{%c~5#x;qjeKr7iVFpAMe05#&;=Q@{I2 zUeat?*ZcSi4Gq00)=1e>#}AJEx7{y!)!PP?g!;a*_TxOb)^TOf0qYeAc*Eb{eGIFHhW>*)wm$&@mhMcDM>JlVHKz=C#Bq*^0xkHD(8*+H z?`(P84)TSr!$vlZ8|Nd@THMW z$LGb@W*hJLn0+Lt)(tTl7e2t}ZM1Oy8BOyg!`VkphY`A+hwW$TTti0+Ec09+xr+I4 zZDMMW**wo>L0crTidmx0l7GDv#=db=+~eH6t4-w-Q;JUDVuukW?kx2qRod+u8@S^~ zndcsxksg-ZH|W@OYh%`thixe_%K{e|o;-sI*G_!8_+os-Jp8ast3syDYO2XSjIlJa>brN_|BD!ZD#y+bRbN8orIcFp z-wrIZ>s@5d|Aarlv6=JXS|`;U*4FjAXFA`_Z(L@vEceBez$1Fx-h_FlIRykR3q@sQ z861yDP%GlwvAe80u+ol2cXR8=S&w_BH@C^OM8?IUIrC7jN8WHAU98T=pYUj4mxVj; z=m(Asm9B_+T>8>`W|hx9eks_g!!As0)7)8hJ7y5?a?}cBZ?czuC;HVR_EMgz_xd$O zYd09ZULSSmtM{2bI<`-52l}rpZasL~Z<7(PFSAtcmpOLLUSGO+O-I$=l9X!fKkzTS z{fw|Fj90-_QtZBz%&kZLEXM>4uSW0RcT-w@NPoizF}G~=O-U^vgkUOC%p~v-(CMQq4SEKQC3X8tCg@QOH_PQ&@;EH z4$javm-2;!GP4cDv*zB4!2W%LEm>ivffJKK6sN)8K3xaV_FBv{*VU9i>+_Y|YI8qK zPJF%9);R8G*(d)#V)GY!z>Kb;{C$`26bEP8tFPaT71a4FFS1i^$qlp>#$WI2^L|p} z!8a#Q9N1C+{H)5{1jEZ!>iuQcuQ%|%FkGJD*x{y=ooHhHoI^UM-Bl;&)aA;Oj)({6 zFxI;*<(g-j_P%80TYbvv@e#%MtD?iWx3WXL1!>hpz3?C};Cm=g9U z|D9QP>ElB*;zLrhRqj!Xm>JKcWHbBgqO1LV+f|;tj?)%S^)mbDe%)n}El2VjmE6VL z4y|46SIqBvI^aK^+qq-|+eXrGgYqhgt~Zt++O6Kyefey? z^oGpF{bGH$eXHf4&wN(9V0p=zFSpkU+)A-j6=+k~*>y%fofWsSf-}<1s$Z)#Q2B=N z4b~L`+pFx(y&?{|m%a{E&Xm8gt8}G!+qsh0L83Q=Gk2}xbkl0uI4|<`#V_U$291y9 z?zZMwe{%isisic;A3TgQu@bSeySUh&sXSQ3Z@!LJaiDp7w1CB%vZfUQ8!H2n-}pDS zbp@Mh_Sr8M&^dQ!?ajzj{lzzPPV8A6va!R;4=*dI&SEb%T;{Kpgs?>;Y-0n4iYxQo z1b8%0MBa%^5l_0Ku~|fYcSCeTeOkOr2uWq_s3;UTrEOo?6KBtuk^R?1fpgJ!glcDg z{J6cH4EbMVJdqJvb6u$Q&hegBN!~Ptd__G6OgAQXDNn)d1($C0m|sd1*c~W%z5jl= zyI=kmfjbr-;)B=9@|Sl%49yNtmCxe+U{pGaMU$`tH8#Zlk-P$ho(4j9%`<)(G@)fM zU9_Gw)KVAjj_XPjAhuv@Y*gLP4R#mk*)*VC2ZbTYwZ@P>_XSh3&wA{~;KDFwFcav(kkR#nqGNOj) zk-kq6;SKIi#Qx?%Cj|Q3KzEHyc(0LY*nmI}a-^-8D*@kw92#t`>QQwYzQ&c%kTqhD z91TFa4-^*UMG?9R%-re&L=6dpL|v}dO^T+ZLWJ{3#2e$a)lnlhH@=Ycejg!cr>;iy}C#AwVPf5DM!?>0g=iy z)Z3zk%tEw$9n=aBQ|&L0LBt!P-3WP6RR|FyJ;F#^7a=H?NE{GtK)a2c7d0Y%ZLdlR zR~7w4?5Ia>>_yjx4>>ht;YW8h)FVIRjZ~59J%cqV;oujrcK3wqki@~}l!nnBJPwiI zes&N`++K(9h$OiaPdf*>yFV(|Ln28Xc}JZ`qr#DfNLLaOsTx@tj_=QTm0r~_YBgAx znOXWV1dSjTT<-ShF70ji(Xt_)A(e$A6Tzq3%JJa{(tuBRe^e<8B7@XW)gw}?tbDh$ z(cO6t!u{PR9-{4K(ohfjUTa7I38$UpR@CPtg51|LIvS3A--;Z1|D@E(eKee_PC)hR zNY=H0C*5*Z4WmPCr8utc(fq;u;jRzE6*mg-l{XU*PL0Iy`f^fc&)ZLEq-6nKMlLvu zSlE$*Yx8MZ{0tvJ>i>$ia09mHk}%qoMl@WXJciUM+QPf zk*a^YE?^2TQ#r-}X2u1zM3?|o3-h<3MiB=Ti_?bX@z?9yrXK?m^LqnpZ&3X3l% z^l3Od5ADIH)}mi!XQd+_2lMomB zmK{Fs@ZqeDctI{~Z@+R?!&^dcI)TmT+*!A<8vHOYf5fO(B+Y&>K*H61R7TS1=zAowJ_>2^f>b)vqiH4+ zFOoHqE`yXG?XTLFpqe>CumQ%^p&*(yn%ezIYqpVpUo+PYt=6Hhy^a}~xq(>^xR9p_ z*I&unCg1`-4mhcpkr1U^LlIEL2d8cie^J~dwJ4LNc{plH<$}O+C z1`_f2nuDA_xRvymXLPEX4OFTY6)qj2i+s}>RMMJ-o=#IWg&5419dy!Beujj_2i@7aE2K}TBI6c5C|zL1*8`V zdla&eMfXI_6zjfxXthr(Ll!M2DRmu)5@N!~?@{pXKT;KH&D*~T{CYFsP80G@dbj=2 zW8vj(uQ2OEt#_>|cP`N>v=1BTY^x6^W}E6cgt;ESQ*y)TW$_#OkCpV%DSMp~v8&z- z$GNdPn05TMC8h3@;`6;uX$vE;$x4P?=w~63h>AB_L&-{K3Kq6!)vPF;`$487+2R!T z-ZetCb-E%KBBcp2tJcwBP3Mg?#h``l?Xk=4t140x_v)D)y&qqa$hK`5iUNPM{ zziab}k+RS=C35fEOub4CzZ?&BTqF0sOc&w3CP2~F-Oa_0(2vDF!OMJzsg!V^OKRzC z&o8bU%$1DxGtf1%Svu>lO zqno!3RgFC7>@6Y6Z)`w_m%C`Za(6VVLl0ge^p>O{`*`qep$?>O2`@r?8j^5hA0h_- zO7J8b@>s=wT)w=s?x~U3_nik@?;`TFD$X4WJE+`bcf0iU`_k93VSy*Z0uLg@pE+xs zz{{+U3tCR>9Ck3etv8a`NldE1>76}j*mvByl3-9syu}xbZ{0ojlf%h7-5m?eRwaZD zSZACoN#_n%nR&;vs53GhDWO!=(~~9C_kle#7H|E2FRt$FU_$*>;Ycuj)vT^=!^1}P zu0({e#Z}jSn>F1=56r5}%oa6RNV6MWUD!?(#_A%X@uyyj*BO0?c{=c%xMXRTU;>e_ zZHOpvr+)o9qEKFpw$53(Q)~$u_=9~Fj~}JA3brXURt&|y|9mjI?b*I(W)E9Rdv%h+ zDiO|ds{e7CdQF2TjjmP^Pj%L2)-Xwd{V)=JAosV9X?${l6>+UHwnH*?-*R;v=oBN;V7xc0Cq>-mW zolzNXiOMzA*E5dI*?0b?f={)w)e^DwEM&u7Vt0-0*v!P)(Y7so>p0d~9Ft#Sa839% zv1P4yIF^0$mgxHxdo8}m@e1AD?IE=14R5ozm%Q5yurVkB`ty~LsaKw2Z+L~}5^N%H4?dctlRw_IfYUdz$dv48(KD$Pdb9vN? zh?Wg%yux?)>~!d8MLJc7lZ4%gR1tT++KYkNS7y6%lN`5P)Y6DA|JWaTVt^o(#{3gCNN z0<0{1sYm0Q_uyBf^<~falhKC3Xq#XgEgy`=4BKdzNL8ClP)sBhs-63AT(8PETDI(> z`Hl_ZcX*v&3`7Ux~jJFVX4k*4eS= zxn_puOU)w9_nNg)*9R^Ue2MRKAIvy;aXYh^@V4~XT^_cLw}#eRvLLnIi?{P|_1Rumz8g_nouyP6^*5J_t#{}MFW=dq3T-I~oV#`n%@56z45 zZr~a89Z_S7SgO5wf7lTxhpWMYJiC1#sjZLLq^YX(xJaS91%HtF1DoZ9+)c{O(z*O#-#uOCSyT>0%h z4r4gRVooyU$1s)unyIk78iZCemB!DnPR7s8jpwV|Yr1M))V!j3Q}bTb$GWJS_sj#% z2KWX92RsgVp|!k~2hUB2_S!!4-JBb2YKqq!=TT6L%ALGk2@xS)Al@iE8nB@ka3$@pkcUoj1cT z-PMq%O!l4Mko#a(Am@W4p4jY-eUDmKE2vyLr{)$hv+UaAB~ms|%@ii{I{D%2=Ua^7 z7>hZHhirza{BQlPGW&%R@N;1rKkq?J#?LwCMf?#9p?ttUBuq^uLbdF?`L_M@Z#iL} z3CYT>xI2IMr4wp)5q{>IpD%mjJi@2Lp=0q#UdslYAU!aKV=U$* z`7sPr`7fD@h4H;i<-RAadHjwV-l#BC7Rm#4AGJk)_@(~}pU_xm{Wal#$o%bp)>&xyFdVcDGta-C{Uz zKOI)jhCFOx3hl7nA15>H?K6KmY>)$a*p4*XVXeC+Gi>GAKNY}6qnLt=|Qm) zu`-rRELXwd|>UNGeRZ?CQ2rF2}fnq z*QV;ea!Yl+^!ZJX`z9^*Que!f`}vlag4{7`u{=-ry*w27w&Y}{FQ0hQ<`@mZ3%dUL zO7EgI&0gL+myX+&?DFOu?NmQ>FaLFjdX??=7)Pzx|GTI@DtqMROdId$;KMnU~dpdsGy~Ti(}XnkClltmLWWm!B`st2;+J zT;Jm5Ye$(6znE#Iploto;pL;deGe?H^wJkFwc55cKq-_#4Ud6_&_J1#COx6 zW6vE+-1WhWgI*jLIlTCC-%5ZNBPn#pUS8|`lzRhatYTMOzt7)qpcu;QlP^3vl=EBzk(*`M3v!0i>N{dmJVc0SGh znroa7>lURXxFA2Kr92nvdBj$~-!Y2B-li*L<;I6rBA{``t-Y~f-_EBMs*tKC$456ZsmS65Vt zO7qQqy>h?c9WOueC*ncMYouFhsxlF$>kO(n9DP)bwe*=|xRl}+fq7y*Gfg;Ry&O;? z^4S_01s78V?ATj$F|5fsSTJ#os?6qq$ORF+5ep+0MF{Tur1PNifv2yZ?{(k1z7f7p zwneq>=ht2&;I%{i*UhtJmwobyLV!5V7OuA%!8+2&d_YJ!PjJNzV9vn~A-(`bax zG{#MfuBLGbM$@o`!!(ZPyW-Pu67eoO({s8}tetaXj0ZvZxd7&Ah*F64NJ4Q|=CNRW zalva9j#}r`vf;DkG48-8zNDp$+V0R zT~p3%OuOv@V51d)4HE5JIbAawT(l92uI>dr6vFgYK5hx=3N{chMnlGSO&M%VyY1Q- z7aUH)HFwmLh`ouX##Ha+L3|fdktP!ndV=_vE^qPu-RE-hSSWqjW(OH+Mi2DI2^l@$ zNxkp4SvE$1Wz)lTnNP)>M=|L-#a7*qR!hsD@6TH4pNHAq8Q#7|g( zfTFPpH=$z_(oA>!K@8_Eu$Txb=i?7MD+>MkDjl*_`5`XQmI4FnAn0d zk|MTvQq=C9aAoGLla_)2gd|h>g})VB`0SrZ7T$f-c~C(uS$O@JELpg7afkTjZ;}P-Q(Ouo ztP3&68Wh?L(&=;=f)Up+wrlEl*J-z1 z0Blr2U?UgG3y)nJ=n6JuU<4cNWTi7aV1srE=?XT`w8=H(Y z3r(Sp$-Nws$1-_p`nJPx>`J5*7u=u5kDWMqco^46RS0jA4_~fz_y*C1(vLE_y{Iy< zk_j#*6XzUq9Aw<7>bNnc23ZJW*IIO`UVRw`N%hDKsA70fT98u52%gtiO69J90~TGm z4wTAW@H|_NTSB_N{8B1+!SlYy*sdvaIHuipl}NYXpjwcWI!6Dx@;6c3L|h_Jv-F|* zQnl{|WGBtWqEzl0i%@iRFG}Suc-)J23F#XR$@*4!q9J3urcBhM)Ww@l+XcV|RIQf6 z?H_Y5z#qMbpYRs(Lv6vy;d&t3MZkDZA2%&Z+3ATcVm}n&ojjwBmIp)ER0o6X$Y2ta zi=Y3Gn8Y;2&&QGh^n6yK6rF-6@M^)Bi)D}%c+?3`JUTM#SfK1jUGIp((LMFaYQ2M=kNq# z_8$u>uqIcW2Zx=DQno*er*oc=@zH0+P@4)H9!u}lDE8Rwc$AQ3zDupFo-8iA7Etdq zO~OxvKrJzdRGC15UdeSd6!-^U$l?gy`|q~#LCpTneoP#>;ygI)Y*;bej-H{Q{e@-n zLC~h6%gVDD#q8+8hv9R)5O+2}sYR+qBp9OJD|D7yJ_9W=YDiQqF_=`00bCp>uPFdI$jJlHp9#i3L#{fjsUs-L=!_N1lLnDOxJzXIrg4f z9kH#9Ozn>aSr;it^zotjsR6l91@OmuPLz1(Y$Z^k9|L~s(_rk`Atvmdv!qedoh$}@ zB2GmIid5F(fGWcV6ZPQ)RJET(RkfeR)$a<8Izo~{?LY8%!#;AKigaa1N}meaX<0#) z^j$)X*IRlVF=lr3sxy|ZZ}Ly|OJ!{Vs*Fw!{DzuXP_-XRrPY6ZUMol*7}IFcJxx`ShaU5vYd12#zX;pp5+X#xY7{V7bHbChyQKxY(rugs;7qH0Y*9k~e%IP9>F=Y>rqFaq+~ zuRuru)o1EgVCESZ^Xq#YF;T$y;a(h#H|_RF1(GM1JXNsBpj!%os$0tcGv`W{Zh@F$ zP#Ha{HN?B+e+8Pki6-W5B%4W{2bsKS0QMGara?O`x|)UzjHUq!EW#Cc0n3T{IH7CY z1w{{Gi@Si=2UpxR0;fG(aTgZnveYXwg4$G#8>~nAQ8=D|qR5NI`?b-ubD9LKp`2ZC znjxH?JZ=f;c}_xXV7N@4v0YP!HPdgq9P>vBKsSq~Me=mLpa8NRTv&qyxRJ2A7wr<# z^-#8f5!W!bYsz=mX}4VfY#<=80eG0yu1rs`frJtB0&XO1H_CBKNLR1{Wz*=M@}giv z#&%5|Y)rfDI*~s*gq8se51dar9}`ugw?TJa3(;$$v=<@S)R?+`ErhXa)QMPz zK~m*?yT12@gDXJ_=gSo63kO#w5$X#^wS;s{#sbO*Y$-R!c1`(NW%_Mbd@#uk5XF$R zb_gC#2teC15gusJ+hz0n-~*zva?xIp=!))r;0qh1Jos)BBpBa|NHAV9$C)8rUw#oV zUT8&Od@zE=y+E=f97=YKdp@UUvSS=ygs!J_A z4vTZu@C`tntI@P)7hO3V46@^tO=GgmFVY7R(~KD;QbzSo&Pe_8_%g}RwBsk_j0EOM z86{_4wF)Mwxwk1T*nx@J?IgL1=^SsIImE*^2r(%?)n6m-=Eh~yLWpN&EChIK^T9M@u#9zxJfDGg6 zu5a>)bUwSUWQd&X=m~l%K)iI@B(mzmf*;ag)R{12&#Rd5_4MV|UQAVJQANoBF$nl+ z00+Ki5*+wwppMu+#)0<-mw13BEB8P>6(C-EJX!T&)kP-SE5&Aupd?}&RSbhe*5Y2( zvSPi8QOChg132*bNpRqSI%3`2F%EngStVLiJs0Y!0P)f*$fsT05r}B-=);F$!d^U( zQNV7;(^4Od&&~pj|5!2y-f9vY_y<5Zvto<`ziEUlel<|a0S!wa(Z`EwG7w5)hluvw zs97%AVJJV`SrhBrS|K}848MHdZSd0o4t&=nIPm*HSCM7k1SUsh5dmNg!MQ-ShJZhM zvXyvYqKQEtnGD7BN7Deu9c-pSJ1zQ}2H=XpWg0*@1A}Q8$ZCRgH#qJrB%oe4kjzPs z{F;>PNY-Eo>l$-mcy#+jWQukNyBzIi!snjABmzSP+9Sdwv`0Wwb%)$=hO9mMLhkfo z)ioRRvVo*xO(4<%)kozTNZ^#7$JRO1C0DAx$t!iPolTLOu@Ml1=z^c-2rhXN+M|6y zICEo6mbMr)cL!K9E)?oz14+dWgGdKX+G?`E$w}Ws#aK%}-z8(Mf=Tz)RIX0;DaKuZ zCE<#@@Hkhxsk<;(LqMvgTEi|JUwH|Eb)o|W`Up*Dmj5J6`@uAfUUb7|8nn}*uW5jX z5V%Z32FADxuq4%SLf5zpL1eh%E)dSZ7Iy)bge&gC<6Izl>H?4AMmI|hYba;eW%$gH1Y?jNw}f;(CuLwXdB%248P-g@?XuJ@LXdhscGQFVrPle` z-|uYSJ zI@~y)V!xAsgiLjZ05hHNB!eQg;plJYQ+h!IR3hr2EHFW;>zI&uC6B&hm+JEsDpvq20~aLI(81F7&Lc!%lwRTwdnjhl=F|HsS} zc*~-?Akp1SxI4h_1N~hhWNg=zGo(;+J=hK}SiB2>jSc`d#wDld3N~O&TS7Gx;M%Wo zOGwvf2xp3vv0YOJ8`E#Q;)Bu9Yb>bGKy`1RE7(B85)SM9pcic$7_mI<64DoJfQlrr zMMK7RP4zhzDj+kxwhMrbRsc4TFlIJDi3_R-MPK&FzeOd65y><7qEjYTz?i&-v`27}0^!O3|L^#s1X2o> z)Z+C5@3Pf(?s^=^;hCqhPad_*BPyJEDDr@<|B8wVTj6=t{FVMtwf?xl3P^K}!7T(zHah?_xN z0S8o8wKY_=KWU~sC(BZ*9DKYX zaSo(d;B;P0soGB#eRR%)m;#)YdNpyNYJakPwgzT)dJbDBr%U#Ui~=4z_7=lnP(~lc zmwW(xf|gUg%||QH@F)Eo*0JBxSV&eZEDgvbSMBE_-)KT1oJ$f$umfg+VsO#BCM)@?q{t&R_zx&NT#LxD05O;Vvz6Ej^2Qf19&VkU1TYakg>R>XB}vX z;iF=_zP{;FDzlvoXdNqxVXJx4HD1f|ATMfL!cY1++yS)o%MdO7^R)t#f4ijshG_{z z$LTP3OR9sqrC2aoUfhimip}muv0A=zQI<_H?)FMm=wvc5F#w+!r)9Ap;%)m`KZj>P z4#W+~ffn~~jQzJ;iUnw}0FiNoV-u1MK(`bttMgY;a~&`6VT7^gi_Zo~v@9&jT#NH| zGnTfD0iQ_grqQx+hKptXte?X|sjI8Va-gjuKIE1d6ojml2d))>!9pkJI*K-RcL&9Q zD5u@n8iEE;N;nyyc>0eM1MMhjwJei24e}ulk7GE-cPv4XUMoD`4sa3YdP6y+-5$rV}9m_k*u4R=9`eX^o!EbfDbv>=_DI}r#*$J5GNCV!0p-NIo5i=eqXP;|i(_s13L^?x`ii!Zk%vr1VD3lAlrop+>cvAy55ic zVT^{1?V56?W7=&O02@sJY*1e4#$1`MV1t!5LebT|U`+0fTSB^m4Op^Z-%=fn?V2*! zn0DI*zy<;W8{;yG^aLA}x2&-UMOXKNGm|)O3F#UQVNAI(wrlFoD${Pe0N8+P5kkGI zsqPJQ1sjw?D`QVMbagLEtr}P|8{?LcuF=p4#;X@&yQT~_rrmY{uz`lah63%qfv#W! z#;bAzjP5mV3F#UQufmtvKr*&#%9)L6w_N~iv;wd}qNOd-6>MzzRFQN-q5~n#^w8xkzB_#P`5y8$^*uF7 zRt2RA43KZZL%N}z7K7|~ai!N|ua(}9y(dRYfx7mQ3@%$4}q#-myBY>MU4>lY|(-=1`x{}NpWXCC!%wZurQb^|XOI{Bo3?XMw zI$IQSMpQ5KF4I#?>Pa8goS)bn;p^8!5|fC2wIfH+Down6&gVkQVk3wu@8Ku@M4ZgF z?*uA#+d6|9=F03tWD$WWSwv86O`%54gLD|okPgG|n-1fG+hsD_zJsdH;g4+lgQd}H zBGx9(xuu~yCRo@6nBqoVnJi2oA;D!rqUlD+O%>~*B!Gm67tN0m|(nspY1&@H5 zqTkn1#|W1@@jCvB^SQ2LQ-wM&5PiIREj1>_kN}74Xx^#(_kh33Qke^>O!#ZaV>@0T zlV?vrT7uP(mO%HLmO!Y}z!DN{P#341XHm>gG4+Q_B zb9)@Py#m#Ne1>gIK11F!)FIhHP)2teu&c1Zof_f7r5f?r6! zXf^(xjetknJpjHA`&9TvgF>4ev0jiSLk1`=z}OR72xPO=)lz>1u+PGDj;NUc?Z?&F zF-?XYpaqvAVs&@9)v;R`uO^F4p4O4aRsd}tOn5B4A-#?#q}R#+rq{{I0+R>gDC$D6 zKgf{o4Bl%OV*{d=lgIeR#3naD?-`;=l4(0A1pBY?cag_V&ml7-*F!?2g^&Aog_zB&u4vlk@2h;A2iUqjGG z9xgL%fV>GNtT=87>4O!&1w#%PO`fq`olJiU?WgN@VWnGeP&h20ab*A`+EYo!6NP#A zBeF@Oq8ZqK!~=buVEU-HUb!>3S$Pz<6_JY!`Thp_KY%a3F#UQLDvJ=zy@Qx zrVKWw-F5-6(Ex#sd>U7#E7*XA(e~}xiyub!qFq9|f(;~$rx#Sb#(iu4DZ`(d4Xn>9jdFiRR)1TO z+5OUh1P{7#01~`0Ai?w4$zVV?4mSnBO&-Vj%o*R^;Xmn3#@N6e#>|yAWP*DfrQ?EE zF-oYD6X-v_;d0-~~#^%(Ie0mln< zCP22}0b~nWMVZE+8wa)yZ0I-#VIJSz;YS8MxZ$)yYxpl@rmSIu-YylKD5c}Vf0!6L zA-FnXe#C+Z-iU<}iy{OkZyKPy5{3T`gK5xCi>{^tG+7j)I1HvS_R>yI(*V6w08tzW z9w|ie*b996XyB%xu0t}p%sroco;6AdQdq483ad-0{GFgtOBV2TAPA#TbA24wRp;lb z4?q+jduew-&FX;M6lCitGS1u+7!F4tph02<8YC52oF~+%#R>TOIIcbK_^vuXm9s$1 zNFaEm5XCuljS0X_L0yMxvXn&+GcP@-8xpBy1Cg3Uiy;b7KJeD$-YGO(`$@-Lt$&k_ zFvMM0oU2o>C;?hSP*03%4M9XW*Nq^Hk2?Ruf#Pm7j$Jxw(-?clg26Osr$txO7<;*e z!8AabG`QmK*yA@0M=~f~23y=6dyuAo+%4K9ZOFw^;`O6=_Ftc`PY}b@w&Gg$Y zP)=+Bz)(0ZC@{j%?}Sen+zZCb5S);gv0YP6YfQWCf@+sSV1pLf&=qXJiFx6?Hqb61 zeZdBd_?od@QwJNradX?nhhNze9}L$@treEf3Pub3F(@7wSn>K#n`SX zgNxw#A+RwTL<&MORE%_D&PLoKed>~6lcU&xBAO)p_xhmUSQ}8`$zKq9#?`f)9LWaM2St7_ zeflrFfof|0g3@ysM_saWax@#L^l8ucQj`BOH$chG3D*&N5;h#As$4j^7b)_leXpYV zEiOWpP=7(|8CPg^a*yVqiYEGdfzW^18&ILuiP;x^ByitrpME=Dp!&7H z;BSnp**Q5*1*m;WB7QIH`i;Q>)eD{I9r1^9q?4m8?E%QX;d{l}f5Sdhj&x$~9N=qF zS6cml=WGCf*ix4J=Zn$7f z3V`koa4{3K%PW`fp66Bclz*mwI@d3(q$IJ;#n?1%ikG%8^bO>Om6K zN_&p>Tx~XOcI|oE9FsesAs#G)?8qQHKDoT|3ROk^Z~8@8$c~G3i+&_X)Afou?U=-X zWL^cuMHWm8*rgY4E?HT~2}MXz5U z2`w|--ne0R;$?gGI=zPNZ|2FGs$|c(u-WwQK9AihgAxML?Sl*ahLGu|s5*mcmSnG_ zjRl-`!Y$ZfrEGr`PiJk-N53*ho8eF2LDK%Se9>~zOTG(!-hCnWVmNgF-8KoR7lS~v zY?^6&W*vThP3FVh#yXgJ@;(PpX(>5;7rN@-EkrH1WH!hX#4rY9EF;4}rsiiErq;mG zTp+(%fs(Xj3CWYvud8X*+qDTNY&p{)R~IE0>tSVVpnut}b8VH0bwDap=NzS+l1w-E z{F^lGT-XxCl2-7k?N__0_Fj!weZRUOxt+^4>HUIj7om18k;)o+MM)_xHc+6LE$>xq zY^Tp0<05oe7Sp}jYND|?;ul%rZj1VV?`-F#7kKCfo0yc?4zW{Weqv9=u96#rJm8bM zYENzqqAe0B-BMkXsQ`WVtdQIjs7`)#M)J#%zn*&dklny_{Q)Tb=trpa!`G&pWnT z8j9o=JSzjr`0Tp6>V?2}%X{oLS&vz)o6`=yX)~LyB_KEzi9r|?OLFEHaUq9dLzIS~ie4lKKB=-e5>9s>V6zU6d z>}J6izf`Pa4+r?}knBe&0ZYypV+Zg}EWj658}G!hC40-EI4s#MZ2g5>6pOlKoz4rJ zNMKSy_>AnT@6Y=VJfnN1_F3%PtTrajeNaYj`12ez{MiFF{8{(*sD1unmvkKT-Eals z@y7VkFUQg5Bs*q7vS*wLhb2=@?xA}}eNs8?T#AH^H8FD?yRA;=o2RFYp8j6pUn;}z z{oVcZwYjwyX!B_EYV)1^O77(nxA)`&9;lbgmHtIXWUK1CGokP1!SKpoC^q4Xg}%u+ zJ>@yGJ3m?S~u5KBTFyK50MGgwv@RgZ)=xBV!pE%lID-&rf^Lu>Bhk=5cuw1p%Ldj)z~PaEQ7(x8SUy z-o_dPslTw8P{ZZafIK^hE#^m$4n%dd)Lq8)Al+S%sfP_!he!Iwt837tghC8n%gCKX zs0-o8CDgln7K-);q~k?Ou+&N7}kd%ke2ak8F^{E`O5mvw(2Jx=bXgu^^pTY&dFTQ%@M!+7qtY+k+N4>OL@9 zPI?HwGrh3N2z`$9sXrERnAqH3S|uamipSQ;unvnFx#21lN)g1WCIl&()EM>DCX0|( zWwXZS*x7d^2`zV*fl;hesLOC)ZDE2naZ$k@2k@m^uUs%%^R>Y# zTni!MGNQT3k?1(=p5R`UBO%JAI^6zAwCQ7ONNcNEK=>%qu|2PNAg^cSL>2ftk~Xo+ zEyLM;^hiM%QW-lMaHeyl#hH-quYy0@`C*V$=Z5Pcx%Q2auvc}B+;fM{b{2&D6I!}L z(n|vf$o_cCmF-6a|2CyqKSJ3a`4P>d$I5_TurGHA~O>? zXk^pidbaP}8C*+V9l-{9^=m$|whkDR+pt$5*Pfm=QHGf>NPQK}T<&hTyk;l-2vRlG zxxX`~NsE+v*aC+pCh=vR85VKh?& zl-+ticG!rh5?ewNY}TM_xNKw)Y5hA%=iU|Cl7_qcZ*(??WVs9)1=$o7pdX|!?(7ai z-%1~4Nl>-72}m$>A8MOL8Y$31wqZXu1!N=Y<#6cHHW?XbdqiF4$u&JK`^pG0g)zg; z>3u;m4Vjsw)1<}9|?qN$m1S=1dbjqZ^_*zKt&Hi-t6qDgup z;cn88dJGB8g+8L9UFEos3d6*%bUjgY6nb<9zQf=Ssee}1+2M8{(KQWG3Zg9u-3=tH z=3s4x>n40a1JSXs27z`PP9!!fym&eIAwdQ`I_NZd3vYxZ`WzwlwWi=m*g_*dSA4_X zovd?S&gv5JNt!uBcnkN8y*rs^^UjzvXU+_{rA7ubsQ%#vzdvg!V`px1=J+uk`!gr4 z&Ft2kwX*CwTxTtm%9qunGe1q=(gTy2`NcFaDKqJ~^c%73d~ZI8>9L>kjx@vl}J&4q`o*u<5E>vV1!dZvn7XT;%qfC6B#~24gMG6q{S_du6#IO_P5<34Inu3;b8eI;o7@LnhBq6~*W z_xhmi_XKbtRIrwYckgLr3%AJbDm~cxbydlW&#z9M8on3EenOJJ<%NY-K)QeD=68!! zh59*)`$e~FZQm(=Il?tY%s6V<=Bw_-k5Q6s<-Y9J{GUA!`9-?w?akrgeEe|{pTMnS zMOUQkU!LB8TBNamOMR=X>y{qFYq;wM>mCS*HyFM}*l2zc{b-K-$6W_eIs5OeYkmY!Hx=XvWvT?9y$nrd~kabsi)|yAGzP80J=JPzn zNIX;eE5XWb16SIaqgQ;t5orM8%bf+lFx4hQY+{C z*7}?add=}TvTy6hY2!3CBj*N7hvujKPt{je4}|BYOvcKe3=y2iW}La9L) zxG%V!f0!-$bjQ%EmD-QQk3L*i%SK{(6#OJNTJ@Bx)}`RD`}UrG-#e4=`k9z`>kOlR z40rgnF1X$tZ@l0E=GFjTp=9zKpHp$dC%3U=78aZ^%JwPX%wXp`=(X(0V6A>eI@?!E zv&E8G?E1>*mPX#(VkjCHP}OTQo3#7QJ--|N70ey>pR^R3dwf{CQ?|{0cqweRmLh@Z zL9z{S5WU`ergmHNrl40UyUkzaN4Or|$7GZD#KWh1d)2cH{@@0-_=6cn%)*(6Kl2~1 z$X9n-`^Eiy_=y7nZ${r~?m4ab*?L9s($Z_|_eR>AWt;OX{Ji;1T0t(t8?#CJ%a!}w zF;17)MHdF_^<~5MhdnMcU1e}wpJ#>sF_lx&%LTVTe><9|AET^`-nqfoW&yCkTf=2$ zvzj$?Ib_4Q)i(YU$hSvk&iQQ|;%E!bq@<&5QrfegTZSti9buKtJfK0Exj$%yR?PL` znK}(8;;(WJm(5i>auDfX5xXb3?#zP$k83+pOD`GiFszIUKkCf&f9+ifSQE*%1{d6k zii#qTQN~?~3xbFcM+I>~gaOe}h^UCl680sKM8}0u#E7FtMTxQt3b;mD5(E)7B0^Ba z0AUS=Ed&VJ)30FeyCUg3pWd14oxC^gXZXI;T~+5lwe(+Ar~25?JnC*aa_+{dzrCq; z@_gA6a`_s$!^!YzE$^Z@JIbD%OD8$RTFM)j>}DRBG<(v0+j1LkU&yW!m(P!Ld~_*8 zhrCjoXjQib-$ZB!)x^2(;aIR zo)$+us>*%dYks8IG>^IbI-a+l7kglzBlm|JRVgj4;fXOH#$Rk&v*<84;D;%xZ}wR; zXo#hD6WpJlD3fYu-eGpXcwEyy5$|_mfnJjB>$J8la(d=Xvz?TyJE|v38&7Xrc?hkQ z5o_rE9JSefbHe$yXj|ybJzL1Zf)soOlIX2kRZ$);q1H~SXsntpe7?GPhlc;K>bktZ z$=W|YG3XjS^#FJKG3TPr>?~=!cvW^lY+Ow#ID`h<5^SUQBb)}K^=`F*j z`CIO>A|##jy}kNb1I4Zzsi%t{u?!!4xHZVu^xC|x^xCqES2LZq?Z2{r+I#NdjVsrV zZsU#L0*$_~H{rsPhz{ds+T&3<0rq;&;$upuH=p*ZL7rddcynq(DDv#Wh09jtB7H`= zN`GR`EV%sca>C-^(R}qGim}O^O@S9kT zEPG{NJa0?YgLd7SlM^>vCK9{5yeflI@*c3^7RkR_Aiq?%Q+ex$oBd9-lf@kyG-X<;XJ3$7kpS% z(DiO<@OlleL*EtQHzm7fZaY45`y;LD3p*PU-khZ$PaM5Nlcw)*C}GEzz*@5Ybt}n! z_gizWW%DQ_pPu*GK}Z|<6P1U*JYmRG+wYDq>e8)WkzUT2nr9F{{Ly}^vJZBTLyr9V zDAw);w&f+t+B&A@_IIPSlCF6VcV^)q9By3R6}sT@6&=P^r`0YWs$1&i)75Nsgi$E{ z&6E<~eL)Yo$0uL8c`-0~$i-@pi#K!Ltg3rUe)ed@C~%5Ml(%E<)b!O6F(!pZvDvAk zgQ-5Nk1tf4L_d7pCSra0jG_49I-V2!XBmVS`d>&kPMkUB`Ws_MQ^AdKT<-ZTH*i|D zOB=_Q9B2&Ln!_O-)ZN+=wPT}PySDa$##OcWmH9U~dp1;#nJAg8gHOD+Xife2gzdlb zJ#HO6J6qe~q8U3c!Q-^K9NEWp=5*dir;b!p%ipN>J6vZB;5ryTH&1_*Vc+lVb5FJu zEFOD;7j|mCaC!CWkvEdEH(O`VFw)Qa-h29klkrcFcJ;2)nm9JOJ{F?gwB-!GhFJK9c9^mX4B_ntT`=a`L`$8zrtNL`%8vU;bP zzs?AHzHxJWc=C#ziR0W(j1H}F!#`%QdFM5!ja_VQGl4vV)A4)?lX_-`{5*qu>5^8~ zV~(HCo*s?joQcO4y9b2X7~ripcTgtlEyHY#{3%w(;Ar)k>G&0+D;>ZHuZR4enI?cI z_F?yK^~3u3qxNF`-1_*Smp$7yfAM&NFk`!f7Pxo!{YtC26LU6fK71fNt$j)A&WigZ zjzTrwdB>i!@MwuM?}KMnM%wNX?`~Q(e}8h%#KTjf9I{@$IAl5oX_Q-n_NZ1>jxcwvnD?atk` zNrHu%9l1Xqz2n77u?b6~6W5?Q8IgqYtz2)%A=c3wo*Wx~CTh`A+^FzHPe!GUm0Um; zF34{<)#}$O{PD1+Q)JE3t<{_b9X=iG1GiUO=!HKU*KvQ;Hp-(sQr?-Nltf{V*v-_S zaIU^h{`Z>9ebdl)UtEe}mZWn7SFf_T_A=l2@VDtN0uXM8G(+4&uvovoQ9bn$q zDhvAf#@q4YqqFlc8|{Zd1a+g@Rg|`hcYCFYX-7*7_18GO4m#lSHbrg0RfizfjS|J} zUDs#M_MTPodQHTc@ujEC-;ioo9ZUFb%H`dABZB6MXFaoP%j?|U^sx9^>F|Od4GX4Z z`#KD9xpryn`(qoNsZ%va-5Rz-vS7UPFATf{<*?E>3*{||FIi<3w%Db6*y;M6AF`hY zW{k}=W>oxa5tebGcAi=OyB4!NY3T6THkPT$r(V5#xh0~`qg2!D$10n#;t1sUQ6>qo zxtljK&TS1RncXqbzE>%`lj?tUgu>_)mUb7@XE*Xps+$B@q-& zSHJ0A-x;01c+&B@>g17?EQb-%W%najm^lc~);v`A$3C}-#D^LD+;JuXX|aWAE?;|V zeC32gk5LQesVy3(IcE`8p15MelNYtS^^aX|(pZ=sRI$ro_%AQiBNu+>VVXSYP~!X7 zwd2U9dkqaNvG%dP_C{x3=U;BCSO0aT!&|$`<67dG;ih7K%X0Z9&3$a1s0KSD%qyPY z&eHC~RrgNqFd1mg2mgN`*Uq(A?*KRN0E|PZkDI@9AFe{jO}1b_qw$;^a^s9ynj>#` zn{}?p|Nhyu<4?T`K74=b-W_>Z)s&-tMlV`D33Q>TTcTp?|QZ`*$9f4p&ZA>khA{*od z)&QXhNEV3+7sjyhB2FZapx`5r1czsB{WZ zA&LZdTZ9z3Xe=aV5gGpBvUV(8QXJ94HzCS61w1;$-$0Xh3bffooR}@|NJEEHDeV-x z%*32cW)t|f6k53)r>LKmgd{eWlmtIM-Yn&$vBRbOY!Y3rXr_xr#kQzLgbOHoh&U~y zn?lc3Kw(J?Ig>0&&LD&&r%PYZ#KrWcG#Mun3rUesC&dCpRj^njKw$9lw?e2(GMw0( zhM`$NL~*Y>UEb2lLx)T01X&j|M#e(X6deW0NNIsKB&q{9Ahx1Y(!ho)NKlhj8&Xl2 zK@dk$^kr!ng7|H+upz>!_Z}84>&03~F@{j6vjrsUMjGOBIgqTS0F4)FLsEADvjKg< z7R4uFi2Q28GpAc@f}kmbE|EvrO5{|cY!pNyK|R4px;KR*3P@HoA!KZ%Mf<}#R)&Hf zOmS(<03}G#=q4dXR=_5TBn4O+)Y*j5>jvhOW}vTi0a(T8aG9i}q_Zgkn6W5>4%ICW zU&(8rvY;OBEU4I>4!M?Ppv{|$&@!KApjsuZNLqObp*IGZ-cHdB$-(#DgZTUg6CxA? zj9^rrJW5fY0Z}U==x>p;jrowA z4DlnSg_vs!P#Zt>WLH2kS5^jHR1i$$_sTgW(C+y$6qk1-UJ2+XT?_=h`A&vAp}P=G z#6?jQ(lj<*Aq-|i3qZ@2clnf^THYh$p#rKySU9{=&%76truDlO)a9J z(V#(vLfq$OXTl#rGI0|ddJdLM!=FZ1NJ}UkkYc@sJfQJcEJZ2+cbdVScTVCiq@OfL z7SI@ZMn-zP7e(PwE>T)Fa1yZqU0a4obE(T#89^4d7;NCX0nM@R}uY&k*3 zI*Xz~^-gqIZv$H1#;V}$LhH*LOkScXy$!*&$PNiLqoIf)3~oYV4uyEtjgj>PLOxXp z`lWD5B45ItMZk3iQ$)7(tX&k)Y|-*g9b(o;tZyj;gXszmk8P&Y=E?&~nHZM$J4ZbEa`C(9YdmPPPHk z*2s61W<{NgB%oC$Ry@|H5z|B1$PR1=a#v3mM_+1YUfNX5x)AcAA;#?Eso?r<6W&2F zKQ5vKYPnpKlk_sOCI@4q?aa>UOpi3gVrRJY^iHX_#Cnr3m*_i?EP3g;hh;~aqR&Z>~-nh5xvF%nVG zN&2{R`uxe}H1Uq;f`W}_U(UgGFH1fi5opoYo*~Wo2!66Ywo`irqMESo08wt}Xr9g4 zo`juU#pG*!&!^78g?Hb}1_{jDB)v`!7Qz?`ubbVqxs{tM*?$~{RG702GAU*?BSHMKu=-r$0@0K-K=R`Pb#8~zdVvRZ%hT=9j2&qkzEto@Nt zZv3XJW?TE8TW%j&ZV*LGq*wK}vpL`aMmGJnpQ&6rpX^a(Jn)%F0#wKK+Vk5ZY#&qk zbWL)^Bd_a|=B=L}eJEkd&GkCk7sNk`%%67V1%{eDMI~>N`9-ocHb(m;OuT7zC>odG zYxmZoy2g9D{v$)4Ra;X)q01Vn+$&*V4uK6!7Jb7R#4d91&Mv=|vr%_u8zfqr+MjeV zcwlW__9#UftIz%|hljOI0b^bEjI;Wz1gd#%@o5pzfZAl3ytiYbhv9Dq`3-1fOB+`V zhVUb;UEX(`x6EP9GT!-F`NuynSz9CfivO`4xAJZJlD9Jl7N5$9We4pDug#*d+$xyP zK~c_A=2^as-k6|s)3PP{nWJ;B>>;CmXoWydtisDE!9|9V=Vvxq&$5pypDD0zNHq*2 zu-y1ZS|#3OXWQV)gB%9OQ?*edmDkD8P zyG?5OpnZQaGPoTfguE&npe)Z@3CfAS$E~=w4zc8Z#)70DBvh zoxZPM6Ll?ud8d2)-Z{$JdFpQ=7q49yqg>G4&=tGWQ4EWF z_i>@p9dF*n;`V^bsy&tK2Gr(+gH}ILgBhHlEKhIca#-1J{$|d`)a}O6_6fQ-*QG}P zl%Rib-IeHf?Q+PZiVvCXQdYayyRr%ZT6EE7V5{n@)-bB4cQS)Bg)w`O5wdc38dI5W z{*i84gQ~T<=HJ6Z$nxw^#v=uI(9Xs}WjylgyN@Y`F=5JZ6abDbx!7D84w35F0pRE> z!=XbX_UJ-dOO$Ob1h)Q0y6FS0_bTJzSKkd?}# zTaOE@x6;|zR@r*Vze@)SG!(->Z%ckxJ0!*Nijf&@NBBxO>{R z-IL$#)-&F%_3)u@c>~g4VrtQB^wZC7+mASIKN|S{u+94q&+JG<8n;<=n0a8-Mc3im zT*tk09ct|AF@3$c;z<&v;a8jZS=&!c-hO=f_K0!skKOjt6^Q0sA)Fx@MGY>1xuXZS zXX^436BZVXzLl?Yt3bmu|DEv}oNU=7i5n1$kd#kIcg_sMGGH+lIv1j zbQV2XdMj`KttTrz^JaT`HKY`wAN2T#dmg+$jFCAcEmNa4Q#~g0K~%gx^r)lC^O5&AI{CO1@Ct z7^_?)D%A{DGd)<%&cJH69#*q>Sj}MDZwIU)gJBK%h3Ya>NT9z>fJLG5Qf7)R05=L2 zoXSg?DJ1~hG+1ydFJ-2n066&9mdZ;DQYuPpwcoa$#9AF6{8A0D%Z;6C6=ga6b0QFH zm|CG#ka8zw5W`_w3i=4hl*ym*gEP3S6c^jE@z3H05ug52UCXyS4B{o+IGp*C(>jr( z2k{|ihm1KV?DpCXqASUfErO?u4=tQOh$g`*ZxiowMwJ){pod?q?!od_eq5I7Fc82% zzgXQUiBC?7KI{u!^`%ibGZzQdVIW{?^2O>V+3~>8sX7b<%znODU89x;z@XQ`@hH`o z8nrM1xHYigR96*0ZU&n3pqwD0xiQc^d@3ctd|0RcNdR(UB{ zf6zmvPKRB8`0uWad<`$@Z@)_FGE;=0ss0sLM!trZ^tWH7g&Z9LKg7-)c6OlpQXK&o zfP-CDQ+=t9Kn%bsRj4i)KUH6b1J`UPU`BV78GrRxB z8p^*SHwViB@%(0cGk=_c^pBIUEl+tXDGCSXyx(kZ<_|NF{#W4_s+(ko1WRH=VPEJf zFHN$;0tWr9_GbP#1L=Ryf1$cYEpo8Q1U`Z00(>>P_W=sUuu<0B=l|7gfE-F@Q>`V{40LoTmDzt zAkq=|{Xy@LZ_7Zw!kGnZa)Di=KjatPC z`-R>i-WjN^c(UE)ddV1^fv=o2CeeaBs&V29%#XWQ+X)> z2WoB^EI5^yCfQ*?&B6O%s=V}s9TJW1^9Z3$n>^TW^shuSbOo?}C|}Ew{&uqcr`Pfq z`;5Tu&3w(u$k*_a{!K0=pWwfpY(KfPf3eRDQQMfPw4tC96^`%j`;GC2W*qT#)X%vnKz`@p>>P!D`yH`s>fbTeL z&8faLN)nKh5)0esRA2h{tXCyxy^C9#iu>JOGX8%YDXP&04w10u9#vjy6JMi`O5F(y zPUWQl9B^edg9WGZQUDH|6Aps~r}9#pcni?yM!& zrGK9;{pUwVV2(w6+okufS z@@&^BQ(Pw-yJ~CJO-iTmQ6m&ABr$}bxKcyFORKRpx#2P*7M(*BOXbNVG|jU+nZ$l4 z7hupmX;h>|xTG5$9wOzF!rnKdFcx@mbp<5qlnLpC%kpkUIfX*ckxRHujYPac(%jrk zLb*eo+!8J$xrEE45Fc-5FD6Pmzz6X8MO0!)O^K*jT2w-mNbd2lA_x;phk9{}4mzd` zWGd_W7$HOx@Zt@0;$w60S^f6nV2TBub_x=hfG_4#iNdbBIuoL_d#@BzO%QV2bMey} zh_qK~Xo4`N1XDwlNm!Ivi4%Gi9WMl-00}bjdT9Y!$W!nb^5Np@?h=za1cjCZK7)>= zgRkF{N|1C5qPU48eM?6Z#S(>(e}vpB5W5{E;-pOo9!68qDU&nq<%-$1LfeX%B6)L@ zwwz4y4qDaaXG0SU{2)&6K`2zbs5gT`qvdQ8y`hqYvL@DAgoz0`CdPysOrlaja7w53 zY@(#+EkZ7|m2~+*Jz^&cn^rZ99tKfRFDq2y&FSAitI@DxR$fKacMMbtyFBZjy{O}e8i3n|IDUm5ytfpdAMXk12o?ODC zJ2PXj86C-vFI&~vh*97|12Icc#Bh88LD(Ncn2Yw z2-RRbR836>{Qdj_0UUk{Bh(khVGkDT(HFg;Kcvv$eB4>q+jKx^mqL&a;~YHE3_ z)zm;91FkC|NCn8iKOof8tv}r3;G_eCNA|_6_;fKr6s3PCJ}`m>tO5hWGW7+T{B&J^ zqTa8-;INZ}^%xkjs4sler|a}f^?|{h1}7XCSf?+b(WmPkLtQz%(ct6*g ZkZj#F95f6ywXxve2++pzmV)M|_CHdTf2#lh literal 0 HcmV?d00001 diff --git a/main/test_files/local_unit/test.csv b/main/test_files/local_unit/test.csv deleted file mode 100644 index 4860fc255..000000000 --- a/main/test_files/local_unit/test.csv +++ /dev/null @@ -1,4 +0,0 @@ -local_branch_name,english_branch_name,subtype,level,postcode,address_loc,address_en,city_loc,city_en,focal_person_loc,focal_person_en,phone,email,link,source_en,source_loc,date_of_data,visibility,longitude,latitude -Cruz Vermelha - Órgão Central HQ,,Office,National,20230-130,"Praça Cruz Vermelha N° 10-12, Centro, Rio de Janeiro - RJ",,Rio de Janeiro - RJ,,Thiago Quintaneiro,,55 (21) 2507-3577 / 2507-3392,secretario.cooperacao@cvb.org.br,http://www.cruzvermelha.org.br/,Brazilian Red Cross,Brazilian Red Cross Local,2024-02-07,Public,-43.1875,-22.91111111 -Cruz Vermelha - Órgão Central HQ - Brasília,,Office,National,70300-910,"Setor Comercial Sul (SCS), quadra 6, bloco A, nº 157, salas 502 e 503 - Edifício Bandeirantes, Asa Sul, Brasília-DF ",,Brasília - DF,,Lourenço Braga,,55 (61) 99909-0761,secretario.geral@cvb.org.br,http://www.cruzvermelha.org.br/,Brazilian Red Cross,Brazilian Red Cross Local,2024-02-07,Public,-47.88972222,-15.79638889 -Filial Alagoas,,Office,National,57035-530,"Av. Com. Gustavo de Paiva, 2889 - Mangabeiras, Maceió - AL",,Alagoas - AL,,Agarina Mendonça,,55 (82) 3325-2430,diretoria@cvbal.org.br,https://www.cruzvermelha.org.br/pb/filiais/alagoas/,Brazilian Red Cross,Brazilian Red Cross Local,2024-02-07,Public,-35.71611111,-9.64777778 From cb7b70453bcfa7538632c15cf07fb9b1955ffecd Mon Sep 17 00:00:00 2001 From: sudip-khanal Date: Tue, 11 Nov 2025 11:37:18 +0545 Subject: [PATCH 2/7] fix(local-unit): update import template --- ...are Bulk Import Template - Local Units.xlsm | Bin 0 -> 249704 bytes main/test_files/local_unit/test-health.xlsm | Bin 0 -> 130302 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsm create mode 100644 main/test_files/local_unit/test-health.xlsm diff --git a/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsm b/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsm new file mode 100644 index 0000000000000000000000000000000000000000..34a4e6d086a7618aa5684c007a79c6b06182685d GIT binary patch literal 249704 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 P{@VgXboOiT2h0Blq`<5V literal 0 HcmV?d00001 diff --git a/main/test_files/local_unit/test-health.xlsm b/main/test_files/local_unit/test-health.xlsm new file mode 100644 index 0000000000000000000000000000000000000000..9950bda6eebfd22f37f7265a97c48205daafc58b GIT binary patch literal 130302 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

4~Yg=*DkG z=c|YyNBAOk%fTKHky*C>nj^OJLqxt{ATj!etfEeNuAOTeJ=ha90REu zp#_E9M$jd9x4(l0wA^Y0SXh=c*qG!7RyJOiKX~b8>uhiUb88&AhlPcoxdHy?#@r77 z7olr+Q`{Z|a@*Yt|DD|Rqo3vC4={cvo2HrRhxr%1-!&tq_kVAz|F?%9jbpY?F3m9M zWxFfbWk>zd-ZI@Wjs5KHm~<&uCkL>Ey^H6M=A=kA&d{D0UorOyX`HwWK$ z@^F&;{d{RRf*&1(2xqV_?qy*yQfFad`uMJmGh<=S?+Xreclw>9|D);mjQ?E%!5{6w zFaHzw_jH24T)_AIy4_y~{Lv1yv;Mw-AAc+G<2t^lp6&AR{%8|;*6&$)KN@~dh59r0 zfL_-Blc)Bh`S*mNUB1*Gt)lNc^MA9aezg9ccJt@VE%bk9{Rf5UM+e_CJO1pTd4QGW qFSt5CI{5yx@#p-#9QqykzodiQ)?web8!0#Qb)8wFxfEuRv-}qr1U3o) literal 0 HcmV?d00001 From 12c8869d60e85882b6380d102f0fb2278bb28ffc Mon Sep 17 00:00:00 2001 From: sudip-khanal Date: Wed, 12 Nov 2025 10:24:05 +0545 Subject: [PATCH 3/7] feat(bulk-upload): add .xlsm file support to bulk upload --- ...re Bulk Import Template - Local Units.xlsx | Bin 145711 -> 0 bytes local_units/bulk_upload.py | 110 +++++++++--------- local_units/serializers.py | 5 +- local_units/test_views.py | 12 +- local_units/views.py | 2 +- main/test_files/local_unit/test-health.xlsx | Bin 144861 -> 0 bytes 6 files changed, 66 insertions(+), 63 deletions(-) delete mode 100644 go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsx delete mode 100644 main/test_files/local_unit/test-health.xlsx diff --git a/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsx b/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsx deleted file mode 100644 index 0ca799bd9d8e96e595ecb3221389d32b2ebaf0be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145711 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 diff --git a/local_units/bulk_upload.py b/local_units/bulk_upload.py index e70c2958c..4f93ad771 100644 --- a/local_units/bulk_upload.py +++ b/local_units/bulk_upload.py @@ -115,6 +115,7 @@ def to_content_file(self) -> ContentFile: class BaseBulkUpload(Generic[ContextType]): serializer_class: Type[Serializer] + HEADER_MAP: dict[str, str] def __init__(self, bulk_upload: LocalUnitBulkUpload): if self.serializer_class is None: @@ -152,70 +153,71 @@ def process_row(self, data: Dict[str, Any]) -> bool: return False def run(self) -> None: - with self.bulk_upload.file.open("rb") as f: - try: - # TODO(sudip): Use read_only while reading xlsx file - workbook = openpyxl.load_workbook(f, data_only=True) + header_row_index = 2 + data_row_index = header_row_index + 2 + + try: + with self.bulk_upload.file.open("rb") as f: + workbook = openpyxl.load_workbook(f, data_only=True, read_only=True) sheet = workbook.active - header_row_index = 2 - data_row_index = header_row_index + 2 - # Read header row headers = next(sheet.iter_rows(values_only=True, min_row=header_row_index, max_row=header_row_index)) raw_fieldnames = [str(h).strip() for h in headers if h and str(h).strip()] - header_map = getattr(self, "HEADER_MAP", {}) or {} + header_map = self.HEADER_MAP or {} mapped_fieldnames = [header_map.get(h, h) for h in raw_fieldnames] fieldnames = mapped_fieldnames if self.is_excel_data_empty(sheet, data_start_row=data_row_index): - raise BulkUploadError("The uploaded Excel file is empty. Please provide at least one data row.") + raise BulkUploadError("The uploaded file is empty. Please provide at least one data row.") self._validate_type(fieldnames) - data_rows = ( - row - for row in sheet.iter_rows(values_only=True, min_row=4) - if any(cell is not None for cell in row) # skip the empty rows - ) - except Exception as e: - self.bulk_upload.status = LocalUnitBulkUpload.Status.FAILED - self.bulk_upload.error_message = str(e) - self.bulk_upload.save(update_fields=["status", "error_message"]) - logger.warning(f"[BulkUpload:{self.bulk_upload.pk}] Validation error: {str(e)}") - return - - context = self.get_context().__dict__ - self.error_writer = ErrorWriter(fieldnames=raw_fieldnames, header_map=header_map) - - try: - with transaction.atomic(): - self.delete_existing_local_unit() - - for row_index, row_values in enumerate(data_rows, start=data_row_index): - row_dict = dict(zip(fieldnames, row_values)) - row_dict = {**row_dict, **context} - # Convert datetime objects to strings - for key, value in row_dict.items(): - if isinstance(value, (datetime, date)): - row_dict[key] = value.strftime("%Y-%m-%d") - if self.process_row(row_dict): - self.success_count += 1 - self.error_writer.write(row_dict, status=LocalUnitBulkUpload.Status.SUCCESS) - else: - self.failed_count += 1 - self.error_writer.write( - row_dict, - status=LocalUnitBulkUpload.Status.FAILED, - error_detail=self.error_detail, - ) - logger.warning(f"[BulkUpload:{self.bulk_upload.pk}] Row {row_index} failed") - - if self.failed_count > 0: - raise BulkUploadError("Bulk upload failed with some errors.") - - self.bulk_manager.done() - self._finalize_success() - - except BulkUploadError: + self.error_writer = ErrorWriter(fieldnames=raw_fieldnames, header_map=header_map) + context = self.get_context().__dict__ + + with transaction.atomic(): + self.delete_existing_local_unit() + + for row_index, row_values in enumerate( + sheet.iter_rows(values_only=True, min_row=data_row_index), + start=data_row_index, + ): + if not any(cell is not None for cell in row_values): + continue # skip empty rows + + row_dict = dict(zip(fieldnames, row_values)) + row_dict = {**row_dict, **context} + + # Convert date/datetime to str + for key, value in row_dict.items(): + if isinstance(value, (datetime, date)): + row_dict[key] = value.strftime("%Y-%m-%d") + + if self.process_row(row_dict): + self.success_count += 1 + self.error_writer.write(row_dict, status=LocalUnitBulkUpload.Status.SUCCESS) + else: + self.failed_count += 1 + self.error_writer.write( + row_dict, + status=LocalUnitBulkUpload.Status.FAILED, + error_detail=self.error_detail, + ) + logger.warning(f"[BulkUpload:{self.bulk_upload.pk}] Row {row_index} failed") + + if self.failed_count > 0: + raise BulkUploadError() + + self.bulk_manager.done() + self._finalize_success() + + workbook.close() + + except Exception as e: + self.bulk_upload.status = LocalUnitBulkUpload.Status.FAILED + self.bulk_upload.error_message = str(e) + self.bulk_upload.save(update_fields=["status", "error_message"]) + if isinstance(e, BulkUploadError): + logger.warning(f"[BulkUpload:{self.bulk_upload.pk}] error: {e}") self._finalize_failure() def _finalize_success(self) -> None: diff --git a/local_units/serializers.py b/local_units/serializers.py index a1b6b032c..07f039a2d 100644 --- a/local_units/serializers.py +++ b/local_units/serializers.py @@ -673,6 +673,7 @@ def update(self, instance, validated_data): class LocalUnitBulkUploadSerializer(serializers.ModelSerializer): + VALID_FILE_EXTENSIONS = (".xlsx", ".xlsm") country = serializers.PrimaryKeyRelatedField( queryset=Country.objects.filter( is_deprecated=False, independent=True, iso3__isnull=False, record_type=CountryType.COUNTRY @@ -703,8 +704,8 @@ class Meta: ) def validate_file(self, file): - if not file.name.endswith(".xlsx"): - raise serializers.ValidationError(gettext("File must be a xlsx file.")) + if not file.name.lower().endswith(self.VALID_FILE_EXTENSIONS): + raise serializers.ValidationError(gettext("The uploaded file must be an Excel document (.xlsx or .xlsm).")) if file.size > 10 * 1024 * 1024: raise serializers.ValidationError(gettext("File must be less than 10 MB.")) return file diff --git a/local_units/test_views.py b/local_units/test_views.py index 61cd014b5..b13c25ec3 100644 --- a/local_units/test_views.py +++ b/local_units/test_views.py @@ -1535,12 +1535,12 @@ def setUpTestData(cls): cls.professional_training_facilities = ProfessionalTrainingFacility.objects.create(code=1, name="Nurses") cls.general_medical_services = GeneralMedicalService.objects.create(code=1, name="Minor Trauma") - file_path = os.path.join(settings.TEST_DIR, "local_unit/test-health.xlsx") + file_path = os.path.join(settings.TEST_DIR, "local_unit/test-health.xlsm") with open(file_path, "rb") as f: cls._file_content = f.read() - def create_upload_file(cls, filename="test-health.xlsx"): - return SimpleUploadedFile(filename, cls._file_content, content_type="text/xlsx") + def create_upload_file(cls, filename="test-health.xlsm"): + return SimpleUploadedFile(filename, cls._file_content, content_type="text/xlsm") def test_bulk_upload_health_with_incorrect_country(cls): """ @@ -1565,7 +1565,7 @@ def test_bulk_upload_health_with_incorrect_country(cls): def test_bulk_upload_health_fails_and_does_not_delete(cls): """ - Should fail and keep existing LocalUnits & HealthData when CSV invalid. + Should fail and keep existing LocalUnits & HealthData when file invalid. """ health_data = HealthDataFactory.create_batch( 5, @@ -1644,12 +1644,12 @@ def test_empty_health_template_file(cls): """ file_path = os.path.join( - settings.STATICFILES_DIRS[0], "files", "local_units", "Health Care Bulk Import Template - Local Units.xlsx" + settings.STATICFILES_DIRS[0], "files", "local_units", "Health Care Bulk Import Template - Local Units.xlsm" ) with open(file_path, "rb") as f: file_content = f.read() empty_file = SimpleUploadedFile( - name="Health Care Bulk Import Template - Local Units.xlsx", content=file_content, content_type="text/xlsx" + name="Health Care Bulk Import Template - Local Units.xlsm", content=file_content, content_type="text/xlsm" ) health_data = HealthDataFactory.create_batch( 5, diff --git a/local_units/views.py b/local_units/views.py index 78bfb6d96..bd9d1b1a4 100644 --- a/local_units/views.py +++ b/local_units/views.py @@ -476,7 +476,7 @@ class LocalUnitBulkUploadViewSet( def get_bulk_upload_template(self, request): template_type = request.query_params.get("bulk_upload_template", "local_unit") if template_type == "health_care": - file_url = request.build_absolute_uri(static("files/local_units/Health Care Bulk Import Template - Local Units.xlsx")) + file_url = request.build_absolute_uri(static("files/local_units/Health Care Bulk Import Template - Local Units.xlsm")) else: file_url = request.build_absolute_uri( static("files/local_units/Administrative Bulk Import Template - Local Units.xlsx") diff --git a/main/test_files/local_unit/test-health.xlsx b/main/test_files/local_unit/test-health.xlsx deleted file mode 100644 index d819ddc7624b4a86d8f074dd030d6193e76b4b20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144861 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 ZkZj#F95f6ywXxve2++pzmV)M|_CHdTf2#lh From 592f538fb7a71bd6d6dae33ff99e2fc5972ac62a Mon Sep 17 00:00:00 2001 From: sudip-khanal Date: Wed, 12 Nov 2025 17:05:58 +0545 Subject: [PATCH 4/7] local-unit(bulk-upload-template): update bulk upload health data template --- ...re Bulk Import Template - Local Units.xlsm | Bin 249704 -> 249715 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsm b/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsm index 34a4e6d086a7618aa5684c007a79c6b06182685d..b2ce45129542711ae40bbbf6bf17e5b40f816408 100644 GIT binary patch literal 249715 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 Tg;vT1{2iyMu3dBD8 literal 249704 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 P{@VgXboOiT2h0Blq`<5V From e820ca7c61882592e48fb7f03bc994b60ac624a0 Mon Sep 17 00:00:00 2001 From: sudip-khanal Date: Wed, 12 Nov 2025 23:44:22 +0545 Subject: [PATCH 5/7] fixup! local-unit(bulk-upload-template): update bulk upload health data template --- ...are Bulk Import Template - Local Units.xlsm | Bin 249715 -> 0 bytes ...-Care-Bulk-Import-Template-Local-Units.xlsm | Bin 0 -> 171245 bytes local_units/test_views.py | 4 ++-- local_units/views.py | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsm create mode 100644 go-static/files/local_units/Health-Care-Bulk-Import-Template-Local-Units.xlsm diff --git a/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsm b/go-static/files/local_units/Health Care Bulk Import Template - Local Units.xlsm deleted file mode 100644 index b2ce45129542711ae40bbbf6bf17e5b40f816408..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249715 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 Tg;vT1{2iyMu3dBD8 diff --git a/go-static/files/local_units/Health-Care-Bulk-Import-Template-Local-Units.xlsm b/go-static/files/local_units/Health-Care-Bulk-Import-Template-Local-Units.xlsm new file mode 100644 index 0000000000000000000000000000000000000000..5b9033fd73a1615a63463c193ce39621b81d67d1 GIT binary patch literal 171245 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 literal 0 HcmV?d00001 diff --git a/local_units/test_views.py b/local_units/test_views.py index b13c25ec3..d68ec8352 100644 --- a/local_units/test_views.py +++ b/local_units/test_views.py @@ -1644,12 +1644,12 @@ def test_empty_health_template_file(cls): """ file_path = os.path.join( - settings.STATICFILES_DIRS[0], "files", "local_units", "Health Care Bulk Import Template - Local Units.xlsm" + settings.STATICFILES_DIRS[0], "files", "local_units", "Health-Care-Bulk-Import-Template-Local-Units.xlsm" ) with open(file_path, "rb") as f: file_content = f.read() empty_file = SimpleUploadedFile( - name="Health Care Bulk Import Template - Local Units.xlsm", content=file_content, content_type="text/xlsm" + name="Health-Care-Bulk-Import-Template-Local-Units.xlsm", content=file_content, content_type="text/xlsm" ) health_data = HealthDataFactory.create_batch( 5, diff --git a/local_units/views.py b/local_units/views.py index bd9d1b1a4..772a3b1ae 100644 --- a/local_units/views.py +++ b/local_units/views.py @@ -476,7 +476,7 @@ class LocalUnitBulkUploadViewSet( def get_bulk_upload_template(self, request): template_type = request.query_params.get("bulk_upload_template", "local_unit") if template_type == "health_care": - file_url = request.build_absolute_uri(static("files/local_units/Health Care Bulk Import Template - Local Units.xlsm")) + file_url = request.build_absolute_uri(static("files/local_units/Health-Care-Bulk-Import-Template-Local-Units.xlsm")) else: file_url = request.build_absolute_uri( static("files/local_units/Administrative Bulk Import Template - Local Units.xlsx") From ab838b3f155fbee18a5db9258ab0debc1429090d Mon Sep 17 00:00:00 2001 From: sudip-khanal Date: Thu, 13 Nov 2025 10:54:29 +0545 Subject: [PATCH 6/7] local-unit(permission): add ifrc admin permission to update local unit --- local_units/permissions.py | 10 +++++----- local_units/test_views.py | 25 +++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/local_units/permissions.py b/local_units/permissions.py index 1fb27e4d3..55381a9db 100644 --- a/local_units/permissions.py +++ b/local_units/permissions.py @@ -25,20 +25,20 @@ def has_object_permission(self, request, view, obj): class IsAuthenticatedForLocalUnit(permissions.BasePermission): - message = "Only Country Admins, Local Unit Validators, Region Admins, or Superusers are allowed to update Local Units." + message = ( + "Only Country Admins, Local Unit Validators, Region Admins, IFRC Admins or Superusers are allowed to update Local Units." + ) def has_object_permission(self, request, view, obj): if request.method not in ["PUT", "PATCH"]: return True # Only restrict update operations user = request.user - - if user.is_superuser: + if user.has_perm("api.ifrc_admin") or user.is_superuser: return True country_id = obj.country_id - country = Country.objects.get(id=country_id) - region_id = country.region_id + region_id = obj.country.region_id # Country admin specific permissions country_admin_ids = [ int(codename.replace("country_admin_", "")) diff --git a/local_units/test_views.py b/local_units/test_views.py index d68ec8352..38e3c2ae3 100644 --- a/local_units/test_views.py +++ b/local_units/test_views.py @@ -120,7 +120,6 @@ def setUp(self): country_codename = f"local_unit_country_validator_{self.type_3.id}_{self.country2.id}" region_codename = f"local_unit_region_validator_{self.type_3.id}_{region.id}" global_codename = f"local_unit_global_validator_{self.type_3.id}" - country_permission = Permission.objects.get(codename=country_codename) region_permission = Permission.objects.get(codename=region_codename) global_permission = Permission.objects.get(codename=global_codename) @@ -882,7 +881,7 @@ def test_create_local_unit_with_externally_managed_country_and_type(self): self.assertEqual(response.status_code, 400) self.assertEqual(LocalUnitChangeRequest.objects.count(), 0) - def test_country_region_admin_permission_for_local_unit_update(self): + def test_local_unit_update(self): region1 = RegionFactory.create(name=2, label="Asia Pacific") region2 = RegionFactory.create(name=0, label="Africa") @@ -898,6 +897,7 @@ def test_country_region_admin_permission_for_local_unit_update(self): self.asia_admin = UserFactory.create(email="asia@admin.com") self.africa_admin = UserFactory.create(email="africa@admin.com") self.india_admin = UserFactory.create(email="india@admin.com") + self.ifrc_admin = UserFactory.create(email="ifrc@admin.test") # India admin setup management.call_command("make_permissions") country_admin_codename = f"country_admin_{country.id}" @@ -922,6 +922,14 @@ def test_country_region_admin_permission_for_local_unit_update(self): africa_admin_group.permissions.add(africa_admin_permission) self.africa_admin.groups.add(africa_admin_group) + # Ifrc admin + ifrc_admin_codename = "ifrc_admin" + ifrc_admin_permission = Permission.objects.get(codename=ifrc_admin_codename) + ifrc_admin_group_name = "IFRC Admins" + ifrc_admin_group = Group.objects.get(name=ifrc_admin_group_name) + ifrc_admin_group.permissions.add(ifrc_admin_permission) + self.ifrc_admin.groups.add(ifrc_admin_group) + local_unit = LocalUnitFactory.create( country=country, type=self.local_unit_type, @@ -936,6 +944,13 @@ def test_country_region_admin_permission_for_local_unit_update(self): status=LocalUnit.Status.VALIDATED, date_of_data="2023-08-08", ) + local_unit3 = LocalUnitFactory.create( + country=country, + type=self.local_unit_type, + draft=False, + status=LocalUnit.Status.VALIDATED, + date_of_data="2023-08-08", + ) url = f"/api/v2/local-units/{local_unit.id}/" data = { "local_branch_name": "Updated local branch name", @@ -968,6 +983,12 @@ def test_country_region_admin_permission_for_local_unit_update(self): response = self.client.patch(url, data=data, format="json") self.assert_200(response) self.assertEqual(response.data["local_branch_name"], "Updated local branch name") + # Test update as ifrc admin + url = f"/api/v2/local-units/{local_unit3.id}/" + self.authenticate(self.ifrc_admin) + response = self.client.patch(url, data=data, format="json") + self.assert_200(response) + self.assertEqual(response.data["local_branch_name"], "Updated local branch name") class TestExternallyManagedLocalUnit(APITestCase): From 86ea0fa6a114094b7766cc23f446de5d1ea136d3 Mon Sep 17 00:00:00 2001 From: sudip-khanal Date: Thu, 27 Nov 2025 14:52:58 +0545 Subject: [PATCH 7/7] feat(permission): add organization type and country check to update local unit --- local_units/permissions.py | 32 ++++++++++++++++++++++++--- local_units/test_views.py | 45 +++++++++++++++++++++++++++++++++++++- 2 files changed, 73 insertions(+), 4 deletions(-) diff --git a/local_units/permissions.py b/local_units/permissions.py index 55381a9db..830a106a9 100644 --- a/local_units/permissions.py +++ b/local_units/permissions.py @@ -1,7 +1,7 @@ from django.contrib.auth.models import Permission from rest_framework import permissions -from api.models import Country +from api.models import Country, Profile from local_units.models import LocalUnitType from local_units.utils import ( get_local_unit_country_validators, @@ -26,15 +26,41 @@ def has_object_permission(self, request, view, obj): class IsAuthenticatedForLocalUnit(permissions.BasePermission): message = ( - "Only Country Admins, Local Unit Validators, Region Admins, IFRC Admins or Superusers are allowed to update Local Units." + "Only users with the correct organization type and country, " + "Region or Country Admins, Local Unit Validators, IFRC Admins, or Superusers " + "can update Local Units." ) + def user_has_permission(self, user_profile, obj) -> bool: + """NOTE: + Requirement: + Users whose profile is associated with the organization types NTLS, DLGN, or SCRT + should be able to update Local Units assigned to their country. + + Purpose: + This permission enforces the requirement that users with specific organization types + (NTLS, DLGN, or SCRT) can update Local Units only within their assigned country. + Implementing it here avoids creating multiple permission groups for each organization + type and assigning them through the admin panel. + """ + return ( + user_profile.org_type + in [ + Profile.OrgTypes.NTLS, + Profile.OrgTypes.DLGN, + Profile.OrgTypes.SCRT, + ] + and obj.country_id == user_profile.country_id + ) + def has_object_permission(self, request, view, obj): if request.method not in ["PUT", "PATCH"]: return True # Only restrict update operations user = request.user - if user.has_perm("api.ifrc_admin") or user.is_superuser: + + # IFRC Admin, Superuser, or org-type permission + if user.has_perm("api.ifrc_admin") or user.is_superuser or self.user_has_permission(user.profile, obj): return True country_id = obj.country_id diff --git a/local_units/test_views.py b/local_units/test_views.py index 38e3c2ae3..203b54bd6 100644 --- a/local_units/test_views.py +++ b/local_units/test_views.py @@ -12,7 +12,7 @@ from api.factories.country import CountryFactory from api.factories.region import RegionFactory -from api.models import Country, CountryGeoms, CountryType, Region +from api.models import Country, CountryGeoms, CountryType, Profile, Region from deployments.factories.user import UserFactory from local_units.bulk_upload import BaseBulkUploadLocalUnit, BulkUploadHealthData from main import settings @@ -894,10 +894,19 @@ def test_local_unit_update(self): independent=True, region=region1, ) + country2 = CountryFactory.create( + name="Nepal", + iso3="NEP", + record_type=CountryType.COUNTRY, + is_deprecated=False, + independent=True, + region=region1, + ) self.asia_admin = UserFactory.create(email="asia@admin.com") self.africa_admin = UserFactory.create(email="africa@admin.com") self.india_admin = UserFactory.create(email="india@admin.com") self.ifrc_admin = UserFactory.create(email="ifrc@admin.test") + self.org_user = UserFactory.create(email="ifrc@admin.test") # India admin setup management.call_command("make_permissions") country_admin_codename = f"country_admin_{country.id}" @@ -930,6 +939,12 @@ def test_local_unit_update(self): ifrc_admin_group.permissions.add(ifrc_admin_permission) self.ifrc_admin.groups.add(ifrc_admin_group) + # Set the user profile as organization type = NTLS for permission checks + profile = self.org_user.profile + profile.org_type = Profile.OrgTypes.NTLS + profile.country = country + profile.save() + local_unit = LocalUnitFactory.create( country=country, type=self.local_unit_type, @@ -951,6 +966,20 @@ def test_local_unit_update(self): status=LocalUnit.Status.VALIDATED, date_of_data="2023-08-08", ) + local_unit_4 = LocalUnitFactory.create( + country=country, + type=self.local_unit_type, + draft=False, + status=LocalUnit.Status.VALIDATED, + date_of_data="2023-08-08", + ) + local_unit_5 = LocalUnitFactory.create( + country=country2, + type=self.local_unit_type, + draft=False, + status=LocalUnit.Status.VALIDATED, + date_of_data="2023-08-08", + ) url = f"/api/v2/local-units/{local_unit.id}/" data = { "local_branch_name": "Updated local branch name", @@ -983,6 +1012,7 @@ def test_local_unit_update(self): response = self.client.patch(url, data=data, format="json") self.assert_200(response) self.assertEqual(response.data["local_branch_name"], "Updated local branch name") + # Test update as ifrc admin url = f"/api/v2/local-units/{local_unit3.id}/" self.authenticate(self.ifrc_admin) @@ -990,6 +1020,19 @@ def test_local_unit_update(self): self.assert_200(response) self.assertEqual(response.data["local_branch_name"], "Updated local branch name") + # Test update as NTLS org type user with same local unit county + url = f"/api/v2/local-units/{local_unit_4.id}/" + self.authenticate(self.org_user) + response = self.client.patch(url, data=data, format="json") + self.assert_200(response) + self.assertEqual(response.data["local_branch_name"], "Updated local branch name") + + # Test update as NTLS org type user with different local unit county + url = f"/api/v2/local-units/{local_unit_5.id}/" + self.authenticate(self.org_user) + response = self.client.patch(url, data=data, format="json") + self.assert_403(response) + class TestExternallyManagedLocalUnit(APITestCase): def setUp(self):