Это старая версия документа!
Инвентаризация: DEV: Model History
Как нам вести историю изменения моделей.
заводим таблицу, которая
- содержит те же поля что и исходная таблица
- master_id - ID в мастер таблице где хранится актуальная версия модели
- строковые поля, содержащие id ссылок через запятую для many-2-many realtions
- changed_at - время начала периода действия записи (unix epoch)
- changed_by - автор изменений (string login)
- changed_comment - комментарий к изменениям
- changed_attributes - список изменившихся атрибутов (кроме ['id','updated_at','updated_by','changed_attributes','updated_comment'])
после изменения модели добавляем запись в таблицу истории с новыми значениями и автором
Возможно получится это залепить через Behaviour (некогда разбираться)
Также очевидно, что изменение полей относящихся к many2many связям приводит к «изменению» связанных объектов. Почему в кавычках? Потому что в самой таблице модели изменений нет, но если посмотреть many2many атрибуты (из других таблиц), то изменения есть. Таким образом надо внести в класс истории модели
- функцию вытаскивания many2many связанных объектов
- список полей которые надо будет прописывать в журнал связанных объектов из инициатора изменений: udated_at,updated_by,updated_comment придется брать из журнала инициатора, т.к. связанный объект явно не изменялся
- функцию журналирования состояния с возможностью указания инициатора изменений
Кандидаты на аудит
Сервисы (важный узел, нужно видеть кто что меняет)Документы - видеть кто косячит при заведении- Оборудование - косяки при заведении
- Модели оборудования - косяки при заведении