{% extends "sidebar_table_layout.html" %} {% macro change_to_logging_preference(event) %} {% if event.val_after == LoggingMode.DISABLED %} {% if event.val_before == LoggingMode.ENABLED %} {{ _("Disabled Project History") }} {% else %} {{ _("Disabled Project History & IP Address Recording") }} {% endif %} {% elif event.val_after == LoggingMode.ENABLED %} {% if event.val_before == LoggingMode.DISABLED %} {{ _("Enabled Project History") }} {% elif event.val_before == LoggingMode.RECORD_IP %} {{ _("Disabled IP Address Recording") }} {% else %} {{ _("Enabled Project History") }} {% endif %} {% elif event.val_after == LoggingMode.RECORD_IP %} {% if event.val_before == LoggingMode.DISABLED %} {{ _("Enabled Project History & IP Address Recording") }} {% elif event.val_before == LoggingMode.ENABLED %} {{ _("Enabled IP Address Recording") }} {% else %} {{ _("Enabled Project History & IP Address Recording") }} {% endif %} {% else %} {# Should be unreachable #} {{ _("History Settings Changed") }} {% endif %} {% endmacro %} {% macro describe_object(event) %}{{ event.object_type }} {{ event.object_desc }}{% endmacro %} {% macro simple_property_change(event, localized_property_name, from=True) %} {{ describe_object(event) }}: {{ localized_property_name }} {{ _("changed") }} {% if from %}{{ _("from") }} {{ event.val_before }}{% endif %} {{ _("to") }} {{ event.val_after }} {% endmacro %} {% macro clear_history_modals() %} {% endmacro %} {% macro owers_changed(event, add) %} {{ describe_object(event) }}: {% if add %}{{ _("Added") }}{% else %}{{ _("Removed") }}{% endif %} {% if event.val_after|length > 1 %} {% for name in event.val_after %} {{ name }}{% if event.val_after|length > 2 and loop.index != event.val_after|length %},{% endif %} {% if loop.index == event.val_after|length - 1 %} {{ _("and") }} {% endif %} {% endfor %} {% else %} {{ event.val_after[0] }} {% endif %} {% if add %}{{ _("to") }}{% else %}{{ _("from") }}{% endif %} {{ _("owers list") }} {% endmacro %} {% block sidebar %}
{% set balance = g.project.balance %} {% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id]|round(2) != 0 %} {% endfor %}
{{ _("Who?") }} {{ _("Balance") }}
{{ member.name }} {% if balance[member.id]|round(2) > 0 %}+{% endif %}{{ "%.2f" | format(balance[member.id]) }}
{% endblock %} {% block content %} {% if current_log_pref == LoggingMode.DISABLED or (current_log_pref != LoggingMode.RECORD_IP and any_ip_addresses) %}
{% if current_log_pref == LoggingMode.DISABLED %}

{% set url = url_for(".edit_project") %} {% trans %} This project has history disabled. New actions won't appear below. You can enable history on the settings page {% endtrans %}

{% if history %}

{% trans %} The table below reflects actions recorded prior to disabling project history. You can clear project history to remove them.

{% endtrans %} {% endif %} {% endif %} {% if current_log_pref != LoggingMode.RECORD_IP and any_ip_addresses %}

{{ _("Some entries below contain IP addresses, even though this project has IP recording disabled. ") }} {{ _("Delete stored IP addresses") }}

{% endif %}
{% endif %} {{ clear_history_modals() }} {{ static_include("images/x.svg") | safe }} {{ _("Clear Project History") }} {{ static_include("images/x.svg") | safe }} {{ _("Delete Stored IP Addresses") }}
{% if history %} {% for event in history %} {% endfor %}
{{ _("Time") }} {{ _("Event") }} {{ _("From IP") }}
{% if event.operation_type == OperationType.INSERT %} {{ event.object_type }} {{ event.object_desc }} {{ _("added") }} {% elif event.operation_type == OperationType.UPDATE %} {% if event.object_type == _("Project") %} {% if event.prop_changed == "password" %} {{ _("Project private code changed") }} {% elif event.prop_changed == "logging_preference" %} {{ change_to_logging_preference(event) }} {% elif event.prop_changed == "name" %} {{ _("Project renamed to") }} {{ event.val_after }} {% elif event.prop_changed == "contact_email" %} {{ _("Project contact email changed to") }} {{ event.val_after }} {% else %} {{ _("Project settings modified") }} {% endif %} {% elif event.prop_changed == "activated" %} {{ event.object_type }} {{ event.object_desc }} {% if event.val_after == False %}{{ _("deactivated") }}{% else %}{{ _("reactivated") }}{% endif %} {% elif event.prop_changed == "name" or event.prop_changed == "what" %} {{ describe_object(event) }} {{ _("renamed to") }} {{ event.val_after }} {% elif event.prop_changed == "weight" %} {{ simple_property_change(event, _("Weight")) }} {% elif event.prop_changed == "external_link" %} {{ describe_object(event) }}: {{ _("External link changed to") }} {{ event.val_after }} {% elif event.prop_changed == "owers_added" %} {{ owers_changed(event, True)}} {% elif event.prop_changed == "owers_removed" %} {{ owers_changed(event, False)}} {% elif event.prop_changed == "payer" %} {{ simple_property_change(event, _("Payer"))}} {% elif event.prop_changed == "amount" %} {{ simple_property_change(event, _("Amount")) }} {% elif event.prop_changed == "date" %} {{ simple_property_change(event, _("Date")) }} {% else %} {{ describe_object(event) }} {{ _("modified") }} {% endif %} {% elif event.operation_type == OperationType.DELETE %} {{ event.object_type }} {{ event.object_desc }} {{ _("removed") }} {% else %} {# Should be unreachable #} {{ describe_object(event) }} {{ _("changed in a unknown way") }} {% endif %}
{% if event.ip %}{{ event.ip }}{% else %} -- {% endif %}
{% else %}
{{ static_include("images/hand-holding-heart.svg") | safe }}

{{ _('Nothing to list')}}

{{ _("Someone probably cleared the project history.") }}

{% endif %} {% endblock %}