# coding: utf-8

u"""Плагин "Обратная связь с Контингентом".

Для использования в проекте необходимо:

1) Перекрыть пак GetDataSessionPack его наследником, в котором будет
   реализована настройка прав.
2) Реализовать объекты-изменения для каждой модели из проекта, наследуюясь
   от MappedChange. Если одной модели из Datatransfer соответствует
   несколько моделей из проекта, то следует использовать ChangesGroup для
   объединения объектов-изменений.
3) Реализовать на основе BaseSettingsConfig класс для хранения настроек.
4) Реализовать на основе BaseExtensions класс, в котором будут перекрыты
   абстрактные методы:
   - get_change - возвращает обёрнутые в ChangeWrapper объекты-изменения
                  или их группы.
   - apply_changes - применяет изменения для заданного физ. лица.

Остальные методы и свойства, определенные в BaseExtensions можно перекрывать
для кастомизации.

Классы, реализованные в п. 3 и п. 4 указываются в конфигурации ioc-контейнера.


Реализация вкладки истории изменений происходит в проекте. Для этого следует
использовать общую модель ChangesVirtualModel и окно редактирования
ChangesEditWindow.

"""
