Виджет КЛАДР (ФИАС)
Привет, сообщество Odoo!
Последнее время внимательно присматриваемся к форуму. Видим, что не все готовы делиться своими разработками. Что ж. Наша компания верит в свободные технологии. Посему начинаем цикл небольших статей о том, что удалось.
Сразу предупреждаем, большинство публикуемых модулей писались под конкретные проекты и применялись в альфа 8ой версии. Поэтому сильно на код не ругайтесь, а лучше давайте вместе работать над OpenERP… в смысле Odoo!
Первый пост — о модуле КЛАДР, одной из самых обсуждаемых плюшек средитайных поклонников 1С будущих пользователей корпоративной системы. Наши заказчики, по крайней мере, требуют её в обязательном порядке. Может, и вам пригодится.
Для использования API созданы виджеты (папка web_kladr_widget):
Для правильной работы виджетов, были переделаны классы, в которых встречаются адреса (res_partner — папка partner_kladr_address; crm_lead — папка kladr_crm):
Отображения также были изменены:

Как видно, первым заполняется город, который подставляет район/область (кроме городов федерального значения). По улицам и домам добавляются подсказки, а при их использовании автоматически появляется индекс.

Модули доступны на GitHub
P.S. По последнему скриншоту (2 строка подсказки) можно судить об актуальности базы=)
Последнее время внимательно присматриваемся к форуму. Видим, что не все готовы делиться своими разработками. Что ж. Наша компания верит в свободные технологии. Посему начинаем цикл небольших статей о том, что удалось.
Сразу предупреждаем, большинство публикуемых модулей писались под конкретные проекты и применялись в альфа 8ой версии. Поэтому сильно на код не ругайтесь, а лучше давайте вместе работать над OpenERP… в смысле Odoo!
Первый пост — о модуле КЛАДР, одной из самых обсуждаемых плюшек среди
Что такое модуль КЛАДР и с чем его едят
Ключевая цель модуля — облегчить ввод и снизить количество ошибок при заполнении адресов за счёт автоматизации. Автоматические подсказки и автоматическая подстановка, однако, невозможны без надёжного классификатора. Требования же по актуальности делают прямой импорт в Odoo неразумным. Выход из ситуации — внешний API. Тем более, что добрые люди предлагают такой сервис абсолютно бесплатно. Он и был взят за основу.Для использования API созданы виджеты (папка web_kladr_widget):
- Регион
kladr_region
- Город
kladr_city
- Район
kladr_district
- Улица
kladr_street
- Дом
kladr_house
- Индекс
kladr_zip
Для правильной работы виджетов, были переделаны классы, в которых встречаются адреса (res_partner — папка partner_kladr_address; crm_lead — папка kladr_crm):
- Добавлены поля:
Район
Домdistrict
Квартира/офисhouse
office
- Добавлено поле регион типа char
Здесь нужно быть внимательным, т. к. на стандарном поле state типа many2one виджет работать не будетstate_id_kladr
- Дополнительно добавлены юридический и почтовые адреса (по аналогии с основным адресом)
- Все адреса генерятся функциями в строку
Отображения также были изменены:
- Спрятана вторая улица и стандартный регион. Так что, для применения к действующей базе, данные придётся переносить отдельно
- Поля расположены в порядке, удобном для заполнения с автоматическими подсказками
- Адрес заключен в контейнер класса
для тех случаев, когда на форме несколько однотипных виджетовkladr_address

Как видно, первым заполняется город, который подставляет район/область (кроме городов федерального значения). По улицам и домам добавляются подсказки, а при их использовании автоматически появляется индекс.

Модули доступны на GitHub
P.S. По последнему скриншоту (2 строка подсказки) можно судить об актуальности базы=)