{% macro change_value(field, value) %} {% if field == 'specialty_codes' %}{% if value is none or not value.manual %}по справочникам{% else %}{{ value.codes|join(', ') or 'связь исключена' }}{% endif %} {% elif field == 'role' %}{{ {'admin': 'Администратор', 'user': 'Пользователь'}.get(value, 'не задано') }} {% elif field == 'is_active' %}{{ 'включён' if value else 'отключён' }} {% else %}{{ value if value else 'не указано' }}{% endif %} {% endmacro %} {% set action_labels = {'login': 'Вход в систему', 'card_edit': 'Редактирование статьи', 'password_change': 'Смена пароля', 'password_reset': 'Сброс пароля администратором', 'user_create': 'Создание пользователя', 'user_update': 'Изменение роли или доступа'} %} {% set field_labels = {'title': 'Название статьи', 'journal': 'Журнал', 'quartile': 'Квартиль', 'specialty_codes': 'Специальности журнала', 'role': 'Роль', 'is_active': 'Доступ'} %}
{% for action in actions %}{% else %}{% endfor %}
КогдаКтоДействиеЧто изменено
{{ action.created_at|admin_datetime }} {{ user_names.get(action.user_id, '—') }} {{ action_labels.get(action.action, action.action) }}{% if action.target_user_id %}
{{ user_names.get(action.target_user_id, '') }}{% endif %}
{% if action.employee_name %}{{ action.employee_name }}
{{ action.article_title }}{% if action.publication_year %} · {{ action.publication_year }}{% endif %}{% endif %} {% for field, change in action.changes.items() %}
{{ field_labels.get(field, field) }}: {{ change_value(field, change.before) }} → {{ change_value(field, change.after) }}
{% endfor %} {% if not action.changes and not action.employee_name %}—{% endif %}
Действий пока нет. Здесь появятся входы, смена пароля и редактирование карточек.
{% if history_total > history_limit %}{% endif %}