fix(api): convert PhoneNumber to string in Excel export

Проблема: ValueError при экспорте - PhoneNumber объект нельзя напрямую записать в Excel ячейку.
Ошибка: Cannot convert PhoneNumber(country_code=7, national_number=...) to Excel

Решение:
- Добавлено форматирование PhoneNumber в международный формат (+7 928 826-66-50)
- Использован phonenumbers.format_number() с INTERNATIONAL форматом
- Добавлен fallback на str() в случае ошибки форматирования

Теперь телефоны корректно экспортируются в читаемом виде.
This commit is contained in:
admin i 2025-12-18 15:36:50 +03:00
parent 4da93f80a0
commit 8f273304c3

View File

@ -2073,6 +2073,15 @@ class EmployeeViewSet(viewsets.ModelViewSet):
# Получаем навыки
skills = ", ".join([s.name for s in emp.skills.all()])
# Форматируем телефон (PhoneNumber -> строка)
phone_str = ''
if emp.phone_number:
try:
from phonenumbers import format_number, PhoneNumberFormat
phone_str = format_number(emp.phone_number, PhoneNumberFormat.INTERNATIONAL)
except:
phone_str = str(emp.phone_number)
# Данные строки
row_data = [
emp.id,
@ -2080,7 +2089,7 @@ class EmployeeViewSet(viewsets.ModelViewSet):
emp.first_name or '',
emp.patronymic or '',
emp.email or '',
str(emp.phone_number) if emp.phone_number else '',
phone_str,
emp.position.name if emp.position else '',
dept_names,
emp.birth_date.strftime('%d.%m.%Y') if emp.birth_date else '',