from patch.include import *

import phonenumbers


@app_context(commit=True)
def patch():
    for person in models.CmfPerson.list(fields=['phone', 'phone_assistant', 'phone_mobile']):
        for field_name in ['phone', 'phone_assistant', 'phone_mobile']:
            try:
                setattr(person, field_name, getattr(person, field_name).value)
            except (KeyboardInterrupt, SystemExit):
                raise
            except Exception:
                logging.exception(
                    'Ошибка исправления номера(%s) у %s(%s)',
                    getattr(person, field_name)._value, person.name, person.id)
        person.save(only_data=True)

    for person in models.CmfCompany.list(fields=['phone1', 'phone2']):
        for field_name in ['phone1', 'phone2']:
            try:
                setattr(person, field_name, getattr(person, field_name).value)
            except (KeyboardInterrupt, SystemExit):
                raise
            except Exception:
                logging.exception(
                    'Ошибка исправления номера(%s) у %s(%s)',
                    getattr(person, field_name)._value, person.name, person.id)
        person.save(only_data=True)


if __name__ == "__main__":
    patch()
