{% load i18n %}

{% if queue_is_empty %}
    <h3>{% trans "Сохраненные и свежеполученные узлы дерева ролей системы совпадают." %}</h3>
{% else %}
    {% with additions=queue.additions additions_count=queue.additions_count %}
    {% if additions %}
        <h3>{% trans "Добавленные в систему, но пока отсутствующие в БД узлы дерева ролей:" %} ({{ additions_count }})</h3>
        <ul>
            {% for addition_name in additions %}
                <li>{{ addition_name }}</li>
            {% endfor %}
        </ul>
    {% endif %}
    {% endwith %}

    {% with removals=queue.removals %}
        {% if removals %}
            <h3>{% trans "Удаленные из системы, но пока существующие в БД узлы дерева ролей:" %} ({{ queue.removals_count }})</h3>
            <ul>
                {% for removal_name, roles_count in removals %}
                    <li>{{ removal_name }} {% blocktrans with roles_count=roles_count %}({{roles_count}} ролей к отзыву){% endblocktrans %}</li>
                {% endfor %}
            </ul>
            <h3>
            {% if queue.roles_count_to_deprive %}
                {% blocktrans with roles_count=queue.roles_count_to_deprive users_count=queue.users_count_to_deprive groups_count=queue.groups_count_to_deprive %}
                    Будет отозвано {{ roles_count }} ролей у {{ users_count }} пользователей и {{ groups_count }} групп.
                {% endblocktrans %}
                </h3>
            {% else %}
                <h3>{% trans "Не будет отозвано ни одной роли в связи с удалением узлов" %}</h3>
            {% endif %}
        {% endif %}
    {% endwith %}

    {% with modifications=queue.modifications %}
        {% if modifications %}
            <h3>{% trans "Измененные узлы дерева ролей:" %} ({{ queue.modifications_count }})</h3>
            <ul>
                {% for item in modifications %}
                    <li>{{ item.node.humanize }}
                        {% with diffset=item.get_diff %}
                            {% with flat_diff=diffset.flat nested=diffset.nested %}
                                {# flat #}
                                {% if flat_diff %}
                                    {% trans "Изменения свойств узла:" %}
                                    <ul>
                                        {% for item in flat_diff %}
                                            <li>{{ item.name }}: {{ item.old }} ⇾ {{ item.new }}
                                        {% endfor %}
                                    </ul>
                                {% endif %}

                                {# aliases #}
                                {% if nested.aliases.additions %}
                                    {% trans "Добавленные синонимы узла:" %}
                                    <ul>
                                        {% for item in nested.aliases.additions %}
                                            <li>{{ item.new.name }} ({{ item.new.type }})</li>
                                        {% endfor %}
                                    </ul>
                                {% endif %}
                                {% if nested.aliases.removals %}
                                    {% trans "Удалённые синонимы узла:" %}
                                    <ul>
                                        {% for item in nested.aliases.removals %}
                                            <li>{{ item.old.name }} ({{ item.old.type }})</li>
                                        {% endfor %}
                                    </ul>
                                {% endif %}

                                {# fields #}
                                {% if nested.fields.additions %}
                                    {% trans "Добавленные поля узла:" %}
                                    <ul>
                                        {% for item in nested.fields.additions %}
                                            <li>{{ item.new.name }} ({% trans "Slug" %}:{{ item.new.slug}}, {% trans "Тип" %}: {{item.new.type }})</li>
                                        {% endfor %}
                                    </ul>
                                {% endif %}

                                {% if nested.fields.removals %}
                                    {% trans "Удалённые поля узла:" %}
                                    <ul>
                                        {% for item in nested.fields.removals %}
                                            <li>{{ item.old.name }} ({% trans "Slug" %}: {{ item.old.slug}}, {% trans "Тип" %}: {{item.old.type }})</li>
                                        {% endfor %}
                                    </ul>
                                {% endif %}

                                {% if nested.fields.modifications %}
                                    {% trans "Изменённые поля узла:" %}
                                    <ul>
                                        {% for diffset in nested.fields.modifications %}
                                            {{ item.modified_value.name }}
                                            {% for item in diffset.flat %}
                                                <li>{{ item.name }}: {{ item.old }} ⇾ {{ item.new }}
                                            {% endfor %}
                                        {% endfor %}
                                    </ul>
                                {% endif %}

                                {# responsibilities #}

                                {% if nested.responsibilities.additions %}
                                    {% trans "Добавленные ответственности:" %}
                                    <ul>
                                        {% for item in nested.responsibilities.additions %}
                                            <li>{{ item.new.user.username }} (notify: {{ item.new.notify|yesno }})</li>
                                        {% endfor %}
                                    </ul>
                                {% endif %}

                                {% if nested.responsibilities.removals %}
                                    {% trans "Удалённые ответственности:" %}
                                    <ul>
                                        {% for item in nested.responsibilities.additions %}
                                            <li>{{ item.old.user.username }} (notify: {{ item.old.notify|yesno }})</li>
                                        {% endfor %}
                                    </ul>
                                {% endif %}

                            {% endwith %}
                        {% endwith %}
                    </li>
                {% endfor %}
            </ul>
        {% endif %}
    {% endwith %}
{% endif %}
