i701 83db42cc60
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Failing after 4m12s
Refactor and enhance device management and authentication features
- Updated the `reverse_dhivehi_string` function to correct the range for combining characters.
- Added new device handling in the health check view and integrated the `add_new_devices_to_omada` task.
- Improved date handling in `CreateTemporaryUserView` to ensure proper string conversion.
- Enhanced OTP sending by converting mobile numbers to strings.
- Implemented MAC address validation in the `Device` model using a custom validator.
- Removed unnecessary fields from the `CreateDeviceSerializer`.
- Normalized MAC address format in the `DeviceListCreateAPIView`.
- Updated the `djangopasswordlessknox` package to improve code consistency and readability.
- Added migration to enforce MAC address validation in the database.
2025-04-25 14:37:27 +05:00

30 lines
955 B
Python

def reverse_dhivehi_string(input_str):
"""
Reverses a Dhivehi string while preserving character composition.
Args:
input_str (str): The Dhivehi string to be reversed
Returns:
str: The reversed Dhivehi string
"""
# Reverse the string and then normalize the character order
reversed_str = input_str[::-1]
# List to store the corrected characters
corrected_chars = []
# Iterate through the reversed string
i = 0
while i < len(reversed_str):
# Check if current character is a combining character
if i + 1 < len(reversed_str) and "\u0300" <= reversed_str[i + 1] <= "\u036f":
# If next character is a combining mark, add it before the base character
corrected_chars.append(reversed_str[i + 1] + reversed_str[i])
i += 2
else:
corrected_chars.append(reversed_str[i])
i += 1
return "".join(corrected_chars)